aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh/sh.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/sh/sh.h')
-rw-r--r--gcc/config/sh/sh.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 8b4f6c0..f870ba6 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -98,8 +98,15 @@ do { \
? "__LITTLE_ENDIAN__" : "__BIG_ENDIAN__"); \
} while (0)
-/* We can not debug without a frame pointer. */
-/* #define CAN_DEBUG_WITHOUT_FP */
+#define CAN_DEBUG_WITHOUT_FP
+
+/* Value should be nonzero if functions must have frame pointers.
+ Zero means the frame pointer need not be set up (and parms may be accessed
+ via the stack pointer) in functions that seem suitable. */
+
+#ifndef SUBTARGET_FRAME_POINTER_REQUIRED
+#define SUBTARGET_FRAME_POINTER_REQUIRED 0
+#endif
#define CONDITIONAL_REGISTER_USAGE do \
{ \
@@ -2633,11 +2640,9 @@ extern int current_function_interrupt;
#define SIDI_OFF (TARGET_LITTLE_ENDIAN ? 0 : 4)
-/* ??? Define ACCUMULATE_OUTGOING_ARGS? This is more efficient than pushing
- and popping arguments. However, we do have push/pop instructions, and
- rather limited offsets (4 bits) in load/store instructions, so it isn't
- clear if this would give better code. If implemented, should check for
- compatibility problems. */
+/* Better to allocate once the maximum space for outgoing args in the
+ prologue rather than duplicate around each call. */
+#define ACCUMULATE_OUTGOING_ARGS TARGET_ACCUMULATE_OUTGOING_ARGS
#define SH_DYNAMIC_SHIFT_COST \
(TARGET_HARD_SH4 ? 1 : TARGET_SH3 ? (TARGET_SMALLCODE ? 1 : 2) : 20)