From: kazu Date: Thu, 17 Mar 2005 15:38:58 +0000 (+0000) Subject: * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1 X-Git-Tag: upstream/4.9.2~62929 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3f21adc80aa8ea8c1e21fe0e4bffec305a3d601a;p=platform%2Fupstream%2Flinaro-gcc.git * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eeecc6b..182567d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2005-03-17 Kazu Hirata + + * 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. + 2005-03-17 Ian Lance Taylor * gmon.c: Remove. diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index b781035..36734b2 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 85886dd..7730519 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 0000000..bab46e3 --- /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