aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2002-03-17 00:02:30 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2002-03-17 00:02:30 +0000
commitcfb773f9109b45c452c5a33602b3c2b141737caa (patch)
tree0cdb300df53b81b771b5522018c3dcad6f6d5c77
parent4dffef52e8c67e18f6ad0251d133a002c4645dc4 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/mips/mips.h19
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