diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2005-01-14 16:52:44 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2005-01-14 16:52:44 +0000 |
commit | 403a75eb3fa8412dac1fe55f7ce09c2cd3e53ad5 (patch) | |
tree | 144e6d5df6b19a28fc93bbb33685dbb169afde3b | |
parent | 1b18c30f6eb93a8c1a69b254b8eadc505c225eef (diff) |
* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
64-bit register usage.
(spe_func_has_64bit_regs_p): Add FIXME note.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-3_4-e500-branch@93649 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index b4acc33ce66..986693aac06 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -10937,10 +10937,9 @@ rs6000_stack_info (void) { /* Cache value so we don't rescan instruction chain over and over. */ if (cfun->machine->insn_chain_scanned_p == 0) - { - cfun->machine->insn_chain_scanned_p = 1; - info_ptr->spe_64bit_regs_used = (int) spe_func_has_64bit_regs_p (); - } + cfun->machine->insn_chain_scanned_p + = spe_func_has_64bit_regs_p () + 1; + info_ptr->spe_64bit_regs_used = cfun->machine->insn_chain_scanned_p - 1; } /* Select which calling sequence. */ @@ -11247,6 +11246,13 @@ spe_func_has_64bit_regs_p (void) { rtx i; + /* FIXME: This should be implemented with attributes... + + (set_attr "spe64" "true")....then, + if (get_spe64(insn)) return true; + + It's the only reliable way to do the stuff below. */ + i = PATTERN (insn); if (GET_CODE (i) == SET) { |