Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/mmix/mmix.h @ 67: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
65:65488c3d617d | 67: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 |