aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mmix/mmix.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mmix/mmix.h')
-rw-r--r--gcc/config/mmix/mmix.h33
1 files changed, 12 insertions, 21 deletions
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index 74229acd6a4..7c61405f359 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -119,13 +119,15 @@ struct machine_function
/* Pass on -mset-program-start=N and -mset-data-start=M to the linker.
Provide default program start 0x100 unless -mno-set-program-start.
- Link to ELF if requested. */
+ Don't do this if linking relocatably, with -r. For a final link,
+ produce mmo, unless ELF is requested or when linking relocatably. */
#define LINK_SPEC \
"%{mset-program-start=*:--defsym __.MMIX.start..text=%*}\
%{mset-data-start=*:--defsym __.MMIX.start..data=%*}\
%{!mset-program-start=*:\
- %{!mno-set-program-start:--defsym __.MMIX.start..text=0x100}}\
- %{!melf:-m mmo}%{melf:-m elf64mmix}"
+ %{!mno-set-program-start:\
+ %{!r:--defsym __.MMIX.start..text=0x100}}}\
+ %{!melf:%{!r:-m mmo}}%{melf|r:-m elf64mmix}"
/* Put unused option values here. */
extern const char *mmix_cc1_ignored_option;
@@ -346,10 +348,6 @@ extern int target_flags;
#define DEFAULT_SIGNED_CHAR 1
-/* I have no rationale for this other than pointing at Alpha. */
-#define WCHAR_TYPE "unsigned int"
-#define WCHAR_TYPE_SIZE 32
-
/* Node: Register Basics */
/* We tell GCC about all 256 general registers, and we also include
@@ -483,7 +481,7 @@ extern int target_flags;
assuming it is referenced a very limited number of times. Other global
and fixed registers come next; they are never allocated. */
#define MMIX_GNU_ABI_REG_ALLOC_ORDER \
-{ 252, 251, 250, 249, 248, 247, 246, \
+ { 252, 251, 250, 249, 248, 247, 246, \
245, 244, 243, 242, 241, 240, 239, 238, \
237, 236, 235, 234, 233, 232, 231, \
\
@@ -549,10 +547,10 @@ extern int target_flags;
/* Node: Register Classes */
enum reg_class
-{
- NO_REGS, GENERAL_REGS, REMAINDER_REG, HIMULT_REG,
- SYSTEM_REGS, ALL_REGS, LIM_REG_CLASSES
-};
+ {
+ NO_REGS, GENERAL_REGS, REMAINDER_REG, HIMULT_REG,
+ SYSTEM_REGS, ALL_REGS, LIM_REG_CLASSES
+ };
#define N_REG_CLASSES (int) LIM_REG_CLASSES
@@ -626,10 +624,7 @@ enum reg_class
#define STARTING_FRAME_OFFSET \
mmix_starting_frame_offset ()
-/* There is a stack slot between the frame-pointer and the first
- parameter, where the return address is sometimes stored. FIXME:
- Unnecessary. */
-#define FIRST_PARM_OFFSET(FUNDECL) 8
+#define FIRST_PARM_OFFSET(FUNDECL) 0
#define DYNAMIC_CHAIN_ADDRESS(FRAMEADDR) \
mmix_dynamic_chain_address (FRAMEADDR)
@@ -703,7 +698,7 @@ enum reg_class
#define CAN_ELIMINATE(FROM, TO) 1
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
- (OFFSET) = mmix_initial_elimination_offset (FROM, TO);
+ (OFFSET) = mmix_initial_elimination_offset (FROM, TO)
/* Node: Stack Arguments */
@@ -1104,10 +1099,6 @@ const_section () \
#define PRINT_OPERAND_ADDRESS(STREAM, X) \
mmix_print_operand_address (STREAM, X)
-#if 0
-#define USER_LABEL_PREFIX "_"
-#endif
-
#define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \
mmix_asm_output_reg_push (STREAM, REGNO)