#define AFTER_TEXT_END 3
#if !defined (CALL_DUMMY_LOCATION)
-#if defined (CANNOT_EXECUTE_STACK)
-#define CALL_DUMMY_LOCATION BEFORE_TEXT_END
-#else /* Can execute stack. */
#define CALL_DUMMY_LOCATION ON_STACK
-#endif /* Can execute stack. */
#endif /* No CALL_DUMMY_LOCATION. */
/* Are we in a call dummy? The code below which allows DECR_PC_AFTER_BREAK
macros, it doesn't really matter exactly how we
do it. However, note that FRAME_FP is used in two ways in GDB:
(1) as a "magic cookie" which uniquely identifies frames (even over
- calls to the inferior), (2) (in PC_IN_CALL_DUMMY [!CANNOT_EXECUTE_STACK])
+ calls to the inferior), (2) (in PC_IN_CALL_DUMMY [ON_STACK])
as the value of SP_REGNUM before the dummy frame was pushed. These
- two meanings would be incompatible for the 29k if we didn't define
- CANNOT_EXECUTE_STACK (but we do, so don't worry about it).
+ two meanings would be incompatible for the 29k if we defined
+ CALL_DUMMY_LOCATION == ON_STACK (but we don't, so don't worry about it).
Also note that "lr1" below, while called a frame pointer
in the user's guide, has only one function: To determine whether
registers need to be filled in the function epilogue.
STUFF_I16((char *)dummyname + CONST_INSN + 4, fun >> 16);\
}
-/* At least our 29k board has separate data & instruction memories and can't
- execute the data memory. Also, there should be space after text_end;
+/* 29k architecture has separate data & instruction memories -- wired to
+ different pins on the chip -- and can't execute the data memory.
+ Also, there should be space after text_end;
we won't get a SIGSEGV or scribble on data space. */
#define CALL_DUMMY_LOCATION AFTER_TEXT_END
+/* Because of this, we need (as a kludge) to know the addresses of the
+ text section. */
+
+#define NEED_TEXT_START_END
+
/* How to translate register numbers in the .stab's into gdb's internal register
numbers. We don't translate them, but we warn if an invalid register
number is seen. Note that FIXME, we use the value "sym" as an implicit
/* Pcc occaisionally puts an SO where there should be an SOL. */
#define PCC_SOL_BROKEN
-
-/* Cannot execute with pc on the stack. */
-#define CANNOT_EXECUTE_STACK
\f
/* Describe the pointer in each stack frame to the previous stack frame
(its caller). */
/* Define other aspects of the stack frame. */
+/* We need the boundaries of the text in the exec file, as a kludge,
+ for FRAMELESS_FUNCTION_INVOCATION and CALL_DUMMY_LOCATION. */
+
+#define NEED_TEXT_START_END
+
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0.
\f
/* Things needed for making the inferior call functions. */
+#define CALL_DUMMY_LOCATION BEFORE_TEXT_END
+
/* Push an empty stack frame, to record the current PC, etc. */
#define PUSH_DUMMY_FRAME \
\f
/* Things needed for making the inferior call functions. */
-#define CANNOT_EXECUTE_STACK
+#define CALL_DUMMY_LOCATION BEFORE_TEXT_END
+#define NEED_TEXT_START_END
/* Push an empty stack frame, to record the current PC, etc. */