diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-03-17 00:02:30 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2002-03-17 00:02:30 +0000 |
commit | cfb773f9109b45c452c5a33602b3c2b141737caa (patch) | |
tree | 0cdb300df53b81b771b5522018c3dcad6f6d5c77 | |
parent | 4dffef52e8c67e18f6ad0251d133a002c4645dc4 (diff) | |
download | gcc-cfb773f9109b45c452c5a33602b3c2b141737caa.zip gcc-cfb773f9109b45c452c5a33602b3c2b141737caa.tar.gz gcc-cfb773f9109b45c452c5a33602b3c2b141737caa.tar.bz2 |
mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp (s8), but rather HARD_FRAME_POINTER_REGNUM.
* config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
(s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses
where appropriate. Make the second reference to
leaf_function_p a function call, as intended. Reindented.
From-SVN: r50899
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.h | 19 |
2 files changed, 16 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf1b7bd..e7c4efa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2002-03-16 Alexandre Oliva <aoliva@redhat.com> + * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp + (s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses + where appropriate. Make the second reference to + leaf_function_p a function call, as intended. Reindented. + * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16. * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'. diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 644592d..d72e851 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2509,14 +2509,17 @@ extern struct mips_frame_info current_frame_info; */ #define CAN_ELIMINATE(FROM, TO) \ - (((FROM) == RETURN_ADDRESS_POINTER_REGNUM && (! leaf_function_p () \ - || (TO == GP_REG_FIRST + 31 && leaf_function_p))) \ - || ((FROM) != RETURN_ADDRESS_POINTER_REGNUM \ - && ((TO) == HARD_FRAME_POINTER_REGNUM \ - || ((TO) == STACK_POINTER_REGNUM && ! frame_pointer_needed \ - && ! (TARGET_MIPS16 && TARGET_64BIT) \ - && (! TARGET_MIPS16 \ - || compute_frame_size (get_frame_size ()) < 32768))))) + (((FROM) == RETURN_ADDRESS_POINTER_REGNUM \ + && ((! leaf_function_p () \ + && ((TO) == STACK_POINTER_REGNUM \ + || (TO) == HARD_FRAME_POINTER_REGNUM)) \ + || ((TO) == GP_REG_FIRST + 31 && leaf_function_p ()))) \ + || ((FROM) != RETURN_ADDRESS_POINTER_REGNUM \ + && ((TO) == HARD_FRAME_POINTER_REGNUM \ + || ((TO) == STACK_POINTER_REGNUM && ! frame_pointer_needed \ + && ! (TARGET_MIPS16 && TARGET_64BIT) \ + && (! TARGET_MIPS16 \ + || compute_frame_size (get_frame_size ()) < 32768))))) /* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It specifies the initial difference between the specified pair of |