diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-17 15:38:58 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-17 15:38:58 +0000 |
commit | 3f21adc80aa8ea8c1e21fe0e4bffec305a3d601a (patch) | |
tree | 136e44ea598067115a537dbe172963ba89b6937e /gcc/config/h8300 | |
parent | 8e8fd5664c55eb03b523accbe4e22e526556c71b (diff) | |
download | gcc-3f21adc80aa8ea8c1e21fe0e4bffec305a3d601a.tar.gz |
* config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
instead of MASK_H8300S.
* config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
TARGET_SWITCHES): Remove.
(TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
TARGET_H8300SX.
* config/h8300/h8300.opt: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96616 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/h8300')
-rw-r--r-- | gcc/config/h8300/h8300.c | 2 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.h | 73 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.opt | 42 |
3 files changed, 44 insertions, 73 deletions
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index b7810358456..36734b2bf37 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -356,7 +356,7 @@ h8300_init_once (void) if (!TARGET_H8300S && TARGET_MAC) { error ("-ms2600 is used without -ms"); - target_flags |= MASK_H8300S; + target_flags |= MASK_H8300S_1; } if (TARGET_H8300 && TARGET_NORMAL_MODE) diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index 85886dd066f..7730519aed5 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -96,86 +96,15 @@ extern const char * const *h8_reg_names; #define TARGET_VERSION fprintf (stderr, " (Renesas H8/300)"); -/* Run-time compilation parameters selecting different hardware subsets. */ - -extern int target_flags; - -/* Masks for the -m switches. */ -#define MASK_H8300S 0x00000001 -#define MASK_MAC 0x00000002 -#define MASK_INT32 0x00000008 -#define MASK_ADDRESSES 0x00000040 -#define MASK_QUICKCALL 0x00000080 -#define MASK_SLOWBYTE 0x00000100 -#define MASK_NORMAL_MODE 0x00000200 -#define MASK_RELAX 0x00000400 -#define MASK_H8300H 0x00001000 -#define MASK_ALIGN_300 0x00002000 -#define MASK_H8300SX 0x00004000 - /* Macros used in the machine description to test the flags. */ -/* Make int's 32 bits. */ -#define TARGET_INT32 (target_flags & MASK_INT32) - -/* Dump recorded insn lengths into the output file. This helps debug the - md file. */ -#define TARGET_ADDRESSES (target_flags & MASK_ADDRESSES) - -/* Pass the first few arguments in registers. */ -#define TARGET_QUICKCALL (target_flags & MASK_QUICKCALL) - -/* Pretend byte accesses are slow. */ -#define TARGET_SLOWBYTE (target_flags & MASK_SLOWBYTE) - /* Select between the H8/300 and H8/300H CPUs. */ #define TARGET_H8300 (! TARGET_H8300H && ! TARGET_H8300S) -#define TARGET_H8300H (target_flags & MASK_H8300H) -#define TARGET_H8300S (target_flags & (MASK_H8300S | MASK_H8300SX)) -#define TARGET_H8300SX (target_flags & MASK_H8300SX) +#define TARGET_H8300S (TARGET_H8300S_1 || TARGET_H8300SX) /* Some multiply instructions are not available in all H8SX variants. Use this macro instead of TARGET_H8300SX to indicate this, even though we don't actually generate different code for now. */ #define TARGET_H8300SXMUL TARGET_H8300SX -#define TARGET_NORMAL_MODE (target_flags & MASK_NORMAL_MODE) - -/* mac register and relevant instructions are available. */ -#define TARGET_MAC (target_flags & MASK_MAC) - -/* Align all values on the H8/300H the same way as the H8/300. Specifically, - 32 bit and larger values are aligned on 16 bit boundaries. - This is all the hardware requires, but the default is 32 bits for the H8/300H. - ??? Now watch someone add hardware floating point requiring 32 bit - alignment. */ -#define TARGET_ALIGN_300 (target_flags & MASK_ALIGN_300) - -/* Macro to define tables used to set the flags. - This is a list in braces of pairs in braces, - each pair being { "NAME", VALUE } - where VALUE is the bits to set or minus the bits to clear. - An empty string NAME is used to identify the default VALUE. */ - -#define TARGET_SWITCHES \ -{ {"s", MASK_H8300S, N_("Generate H8S code")}, \ - {"no-s", -MASK_H8300S, N_("Do not generate H8S code")}, \ - {"sx", MASK_H8300SX, N_("Generate H8SX code")}, \ - {"no-sx", -MASK_H8300SX, N_("Do not generate H8SX code")}, \ - {"s2600", MASK_MAC, N_("Generate H8S/2600 code")}, \ - {"no-s2600", -MASK_MAC, N_("Do not generate H8S/2600 code")}, \ - {"int32", MASK_INT32, N_("Make integers 32 bits wide")}, \ - {"addresses", MASK_ADDRESSES, NULL}, \ - {"quickcall", MASK_QUICKCALL, \ - N_("Use registers for argument passing")}, \ - {"no-quickcall", -MASK_QUICKCALL, \ - N_("Do not use registers for argument passing")}, \ - {"slowbyte", MASK_SLOWBYTE, \ - N_("Consider access to byte sized memory slow")}, \ - {"relax", MASK_RELAX, N_("Enable linker relaxing")}, \ - {"h", MASK_H8300H, N_("Generate H8/300H code")}, \ - {"n", MASK_NORMAL_MODE, N_("Enable the normal mode")}, \ - {"no-h", -MASK_H8300H, N_("Do not generate H8/300H code")}, \ - {"align-300", MASK_ALIGN_300, N_("Use H8/300 alignment rules")}, \ - { "", TARGET_DEFAULT, NULL}} #ifdef IN_LIBGCC2 #undef TARGET_H8300H diff --git a/gcc/config/h8300/h8300.opt b/gcc/config/h8300/h8300.opt new file mode 100644 index 00000000000..bab46e3aa15 --- /dev/null +++ b/gcc/config/h8300/h8300.opt @@ -0,0 +1,42 @@ +ms +Target Mask(H8300S_1) +Generate H8S code + +msx +Target Mask(H8300SX) +Generate H8SX code + +ms2600 +Target Mask(MAC) +Generate H8S/2600 code + +mint32 +Target RejectNegative Mask(INT32) +Make integers 32 bits wide + +maddresses +Target Undocumented RejectNegative Mask(ADDRESSES) + +mquickcall +Target Mask(QUICKCALL) +Use registers for argument passing + +mslowbyte +Target RejectNegative Mask(SLOWBYTE) +Consider access to byte sized memory slow + +mrelax +Target RejectNegative Mask(RELAX) +Enable linker relaxing + +mh +Target Mask(H8300H) +Generate H8/300H code + +mn +Target Mask(NORMAL_MODE) +Enable the normal mode + +malign-300 +Target RejectNegative Mask(ALIGN_300) +Use H8/300 alignment rules |