comparison gcc/config/mmix/mmix.h @ 14:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents b7f97abdc517
children 04ced10e8804
comparison
equal deleted inserted replaced
13:65488c3d617d 14:f6334be47118
138 else \ 138 else \
139 builtin_define ("__MMIX_ABI_MMIXWARE__"); \ 139 builtin_define ("__MMIX_ABI_MMIXWARE__"); \
140 } \ 140 } \
141 while (0) 141 while (0)
142 142
143 extern int target_flags;
144
145 #define TARGET_DEFAULT \ 143 #define TARGET_DEFAULT \
146 (MASK_BRANCH_PREDICT | MASK_BASE_ADDRESSES | MASK_USE_RETURN_INSN) 144 (MASK_BRANCH_PREDICT | MASK_BASE_ADDRESSES | MASK_USE_RETURN_INSN)
147 145
148 /* Unfortunately, this must not reference anything in "mmix.c". */ 146 /* Unfortunately, this must not reference anything in "mmix.c". */
149 #define TARGET_VERSION \ 147 #define TARGET_VERSION \
150 fprintf (stderr, " (MMIX)") 148 fprintf (stderr, " (MMIX)")
151
152 #define OVERRIDE_OPTIONS mmix_override_options ()
153
154 #define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
155 do \
156 { \
157 if (LEVEL >= 1) \
158 flag_regmove = TRUE; \
159 \
160 if (SIZE || LEVEL > 1) \
161 { \
162 flag_omit_frame_pointer = TRUE; \
163 } \
164 } \
165 while (0)
166
167 /* This one will have to wait a little bit; right now we can't debug
168 neither with or without a frame-pointer. */
169 /* #define CAN_DEBUG_WITHOUT_FP */
170 149
171 150
172 /* Node: Per-Function Data */ 151 /* Node: Per-Function Data */
173 #define INIT_EXPANDERS mmix_init_expanders () 152 #define INIT_EXPANDERS mmix_init_expanders ()
174 153
293 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 272 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
294 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 273 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
295 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, \ 274 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, \
296 1, 1, 1, 1, 1, 1, 1 \ 275 1, 1, 1, 1, 1, 1, 1 \
297 } 276 }
298
299 #define CONDITIONAL_REGISTER_USAGE mmix_conditional_register_usage ()
300 277
301 #define INCOMING_REGNO(OUT) mmix_opposite_regno (OUT, 0) 278 #define INCOMING_REGNO(OUT) mmix_opposite_regno (OUT, 0)
302 279
303 #define OUTGOING_REGNO(IN) mmix_opposite_regno (IN, 1) 280 #define OUTGOING_REGNO(IN) mmix_opposite_regno (IN, 1)
304 281
584 561
585 /* Node: Stack Arguments */ 562 /* Node: Stack Arguments */
586 563
587 #define ACCUMULATE_OUTGOING_ARGS 1 564 #define ACCUMULATE_OUTGOING_ARGS 1
588 565
589 #define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACKSIZE) 0
590
591 566
592 /* Node: Register Arguments */ 567 /* Node: Register Arguments */
593 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
594 mmix_function_arg (&(CUM), MODE, TYPE, NAMED, 0)
595
596 #define FUNCTION_INCOMING_ARG(CUM, MODE, TYPE, NAMED) \
597 mmix_function_arg (&(CUM), MODE, TYPE, NAMED, 1)
598 568
599 typedef struct { int regs; int lib; } CUMULATIVE_ARGS; 569 typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
600 570
601 #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ 571 #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
602 ((CUM).regs = 0, (CUM).lib = ((LIBNAME) != 0)) 572 ((CUM).regs = 0, (CUM).lib = ((LIBNAME) != 0))
603
604 #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
605 ((CUM).regs \
606 = ((targetm.calls.must_pass_in_stack (MODE, TYPE)) \
607 || (MMIX_FUNCTION_ARG_SIZE (MODE, TYPE) > 8 \
608 && !TARGET_LIBFUNC && !(CUM).lib)) \
609 ? (MMIX_MAX_ARGS_IN_REGS) + 1 \
610 : (CUM).regs + (7 + (MMIX_FUNCTION_ARG_SIZE (MODE, TYPE))) / 8)
611 573
612 #define FUNCTION_ARG_REGNO_P(REGNO) \ 574 #define FUNCTION_ARG_REGNO_P(REGNO) \
613 mmix_function_arg_regno_p (REGNO, 0) 575 mmix_function_arg_regno_p (REGNO, 0)
614 576
615 577
725 #define ASM_COMMENT_START "!#" 687 #define ASM_COMMENT_START "!#"
726 688
727 /* These aren't currently functional. We just keep them as markers. */ 689 /* These aren't currently functional. We just keep them as markers. */
728 #define ASM_APP_ON "%APP\n" 690 #define ASM_APP_ON "%APP\n"
729 #define ASM_APP_OFF "%NO_APP\n" 691 #define ASM_APP_OFF "%NO_APP\n"
730
731 #define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
732 mmix_asm_output_source_filename (STREAM, NAME)
733 692
734 #define OUTPUT_QUOTED_STRING(STREAM, STRING) \ 693 #define OUTPUT_QUOTED_STRING(STREAM, STRING) \
735 mmix_output_quoted_string (STREAM, STRING, strlen (STRING)) 694 mmix_output_quoted_string (STREAM, STRING, strlen (STRING))
736 695
737 #define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section 696 #define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
924 883
925 #define FUNCTION_MODE QImode 884 #define FUNCTION_MODE QImode
926 885
927 #define NO_IMPLICIT_EXTERN_C 886 #define NO_IMPLICIT_EXTERN_C
928 887
929 #define HANDLE_SYSV_PRAGMA 1
930
931 /* These are checked. */ 888 /* These are checked. */
932 #define DOLLARS_IN_IDENTIFIERS 0 889 #define DOLLARS_IN_IDENTIFIERS 0
933 #define NO_DOLLAR_IN_LABEL 890 #define NO_DOLLAR_IN_LABEL
934 #define NO_DOT_IN_LABEL 891 #define NO_DOT_IN_LABEL
935 892