diff options
author | Hans-Peter Nilsson <hp@bitrange.com> | 2002-06-10 22:23:03 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2002-06-10 22:23:03 +0000 |
commit | 38e186196316a1ddea765d5a1bff2815999597b8 (patch) | |
tree | 7028ed87fdb81aa2436b5b29cb90257b79094c0d /gcc/config/mmix/mmix.h | |
parent | ac17cd8f7d5ec49b47ed17ffdf5ad1aeb8024cdb (diff) | |
download | gcc-38e186196316a1ddea765d5a1bff2815999597b8.zip gcc-38e186196316a1ddea765d5a1bff2815999597b8.tar.gz gcc-38e186196316a1ddea765d5a1bff2815999597b8.tar.bz2 |
mmix.h: Improve comments.
* config/mmix/mmix.h: Improve comments.
(CPP_SPEC, CPP_PREDEFINES): Don't define.
(TARGET_CPU_CPP_BUILTINS): Define.
(CANONICALIZE_COMPARISON): Don't define, replace with comment.
(PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
unused predicate.
* config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
compiler warning.
(mmix_constant_address_p): Remove another
redundant test before case.
(mmix_canonicalize_comparison): Remove unused function.
(mmix_print_operand_address): Don't test and adjust for operand in
non-canonical format.
(mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
(mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
From-SVN: r54474
Diffstat (limited to 'gcc/config/mmix/mmix.h')
-rw-r--r-- | gcc/config/mmix/mmix.h | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h index d553aea..4ac2c2f 100644 --- a/gcc/config/mmix/mmix.h +++ b/gcc/config/mmix/mmix.h @@ -105,14 +105,6 @@ struct machine_function GTY(()) /* Node: Driver */ -/* When both ABI:s work, this is how we tell them apart in code. The - GNU abi is implied the default. Also implied in TARGET_DEFAULT. */ -#define CPP_SPEC \ - "%{mabi=gnu:-D__MMIX_ABI_GNU__\ - %{mabi=mmixware:\ - %eoptions -mabi=mmixware and -mabi=gnu are mutually exclusive}}\ - %{!mabi=gnu:-D__MMIX_ABI_MMIXWARE__}" - /* User symbols are in the same name-space as built-in symbols, but we don't need the built-in symbols, so remove those and instead apply stricter operand checking. Don't warn when expanding insns. */ @@ -148,7 +140,18 @@ extern const char *mmix_cc1_ignored_option; /* Node: Run-time Target */ /* Define __LONG_MAX__, since we're advised not to change glimits.h. */ -#define CPP_PREDEFINES "-D__mmix__ -D__MMIX__ -D__LONG_MAX__=9223372036854775807L" +#define TARGET_CPU_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__mmix__"); \ + builtin_define ("__MMIX__"); \ + builtin_define ("__LONG_MAX__=9223372036854775807L"); \ + if (TARGET_ABI_GNU) \ + builtin_define ("__MMIX_ABI_GNU__"); \ + else \ + builtin_define ("__MMIX_ABI_MMIXWARE__"); \ + } \ + while (0) extern int target_flags; @@ -167,7 +170,9 @@ extern int target_flags; a constant pool in global registers, code offseting from those registers (automatically causing a request for a suitable constant base address register) without having to know the specific register or the - specific offset. */ + specific offset. The setback is that there's a limited number of + registers, and you'll not find out until link time whether you + should've compiled with -mno-base-addresses. */ #define TARGET_MASK_BASE_ADDRESSES 128 /* FIXME: Get rid of this one. */ @@ -855,8 +860,13 @@ typedef struct { int regs; int lib; int now_varargs; } CUMULATIVE_ARGS; #define SELECT_CC_MODE(OP, X, Y) \ mmix_select_cc_mode (OP, X, Y) -#define CANONICALIZE_COMPARISON(CODE, OP0, OP1) \ - mmix_canonicalize_comparison (&(CODE), &(OP0), &(OP1)); +/* A definition of CANONICALIZE_COMPARISON that changed LE and GT + comparisons with -1 to LT and GE respectively, and LT, LTU, GE or GEU + comparisons with 256 to 255 and LE, LEU, GT and GTU has been + ineffective; the code path for performing the changes did not trig for + neither the GCC test-suite nor ghostscript-6.52 nor Knuth's mmix.tar.gz + itself (core GCC functionality supposedly handling it) with sources + from 2002-06-06. */ #define REVERSIBLE_CC_MODE(MODE) \ mmix_reversible_cc_mode (MODE) @@ -999,8 +1009,8 @@ typedef struct { int regs; int lib; int now_varargs; } CUMULATIVE_ARGS; /* Node: Macros for Initialization */ -/* We're compiling to ELF and linking to MMO; all ELF features that GCC - care for are there. FIXME: Are they? */ +/* We're compiling to ELF and linking to MMO; fundamental ELF features + that GCC depend on are there. */ /* These must be constant strings, since they're used in crtstuff.c. */ #define INIT_SECTION_ASM_OP "\t.section .init,\"ax\" ! mmixal-incompatible" @@ -1127,8 +1137,6 @@ typedef struct { int regs; int lib; int now_varargs; } CUMULATIVE_ARGS; SUBREG, REG, PLUS}}, \ {"mmix_reg_or_constant_operand", \ {CONST_INT, CONST_DOUBLE, SUBREG, REG}}, \ - {"mmix_reg_or_8bit_or_256_operand", \ - {CONST_INT, CONST_DOUBLE, SUBREG, REG}}, \ {"mmix_reg_or_8bit_operand", \ {CONST_INT, CONST_DOUBLE, SUBREG, REG}}, \ {"mmix_reg_or_0_operand", \ |