]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/config/gmicro/gmicro.h
gmicro.h (TARGET_SWITCHES): Add descriptions and mark them for translation.
[gcc.git] / gcc / config / gmicro / gmicro.h
index 29701f25fd785673a574ac1719238da31f1977b9..10d3d32d8045d45790fa25122342c481ddff98a1 100644 (file)
@@ -1,5 +1,6 @@
 /* Definitions of target machine for GNU compiler.  Gmicro (TRON) version.
-   Copyright (C) 1987, 88, 89, 95, 96, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1987, 1988, 1989, 1995, 1996, 1997, 1998, 1999, 2000
+   Free Software Foundation, Inc.
    Contributed by Masanobu Yuhara, Fujitsu Laboratories LTD.
    (yuhara@flab.fujitsu.co.jp)
 
@@ -85,25 +86,28 @@ extern int target_flags;
    An empty string NAME is used to identify the default VALUE.  */
 
 #define TARGET_SWITCHES  \
-  { { "g300", 1},                              \
-    { "g200", 2},                              \
-    { "g100", 4},                              \
-    { "fpu", 8},                               \
-    { "soft-float", -8},                       \
-    { "rtd", 0x10},                            \
-    { "no-rtd", -0x10},                                \
-    { "regparm", 0x20},                                \
-    { "no-regparm", -0x20},                    \
+  { { "g300", 1, _("Compile for Gmicro/300")},                 \
+    { "g200", 2, _("Compile for Gmicro/200")},                 \
+    { "g100", 4, _("Compile for Gmicro/100")},                 \
+    { "fpu", 8, _("Use floating point co-processor")},         \
+    { "soft-float", -8,                                                \
+      _("Do not use floating point co-processor")},            \
+    { "rtd", 0x10, _("Alternate calling convention")},         \
+    { "no-rtd", -0x10, _("Use normal calling convention")},    \
+    { "regparm", 0x20, NULL},                                  \
+    { "no-regparm", -0x20, NULL},                              \
 #if 0 /* Since we don't define PCC_BITFIELD_TYPE_MATTERS or use a large
         STRUCTURE_SIZE_BOUNDARY, we must have bitfield instructions.  */
-    { "bitfield", 0x40},                       \
-    { "no-bitfield", -0x40},                   \
+    { "bitfield", 0x40, _("Use bitfield instructions")},       \
+    { "no-bitfield", -0x40,                                    \
+      _("Do not use bitfield instructions")},                  \
 #endif
-    { "newreturn", 0x80},                      \
-    { "no-newreturn", -0x80},                  \
-    { "force-smov", 0x100},                    \
-    { "no-force-smov", -0x100},                        \
-    { "", TARGET_DEFAULT}}
+    { "newreturn", 0x80, _("Use alternative return sequence")},        \
+    { "no-newreturn", -0x80, _("Use normal return sequence")}, \
+    { "force-smov", 0x100, _("Always use string instruction")},        \
+    { "no-force-smov", -0x100,                                 \
+      _("Use string instruction when appropriate")},           \
+    { "", TARGET_DEFAULT, NULL}}
 
 
 /* Blow away G100 flag silently off TARGET_fpu (since we can't clear
@@ -168,7 +172,7 @@ extern int target_flags;
    Unaligned data is allowed on Gmicro, though the access is slow. */
 
 #define STRICT_ALIGNMENT 1
-#define SLOW_UNALIGNED_ACCESS 1
+#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) 1
 
 /* Make strings word-aligned so strcpy from constants will be faster.  */
 #define CONSTANT_ALIGNMENT(EXP, ALIGN)  \
@@ -237,12 +241,6 @@ extern int target_flags;
 /*  This Macro is not defined now.
     #define CONDITIONAL_REGISTER_USAGE */
 
-/* The Gmicro has no overlapping register */
-/* #define OVERLAPPING_REGNO_P(REGNO) */
-
-/* #define INSN_CLOBBERS_REGNO_P(INSN,REGNO)  */
-/* #define PRESERVE_DEATH_INFO_REGNO_P(REGNO)  */
-
 /* Return number of consecutive hard regs needed starting at reg REGNO
    to hold something of mode MODE.
    This is ordinarily the length in words of a value of mode MODE
@@ -478,9 +476,10 @@ extern enum reg_class regno_reg_class[];
 /* Define how to find the value returned by a library function
    assuming the value has mode MODE.  */
 
-#define LIBCALL_VALUE(MODE)    \
-  (gen_rtx (REG, (MODE),               \
-    ((TARGET_FPU && ((MODE) == SFmode || (MODE) == DFmode)) ? 16 : 0)))
+#define LIBCALL_VALUE(MODE)                                            \
+  (gen_rtx_REG ((MODE),                                                        \
+               ((TARGET_FPU && ((MODE) == SFmode || (MODE) == DFmode)) \
+                ? 16 : 0)))
 
 
 /* 1 if N is a possible register number for a function value.
@@ -547,7 +546,7 @@ extern enum reg_class regno_reg_class[];
    It exists only to test register calling conventions.  */
 
 #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
-((TARGET_REGPARM && (CUM) < 8) ? gen_rtx (REG, (MODE), (CUM) / 4) : 0)
+((TARGET_REGPARM && (CUM) < 8) ? gen_rtx_REG ((MODE), (CUM) / 4) : 0)
 
 /* For an arg passed partly in registers and partly in memory,
    this is the number of registers used.
@@ -635,7 +634,7 @@ extern enum reg_class regno_reg_class[];
 { register int regno;                                          \
   register int mask = 0;                                       \
   register int nregs = 0;                                      \
-  static char *reg_names[] = REGISTER_NAMES;                   \
+  static const char * const reg_names[] = REGISTER_NAMES;      \
   extern char call_used_regs[];                                        \
   int fsize = ((SIZE) + 3) & -4;                               \
   for (regno = 0; regno < 16; regno++)                         \
@@ -737,7 +736,7 @@ extern enum reg_class regno_reg_class[];
   register int nregs, nfregs;                                  \
   int offset, foffset;                                         \
   extern char call_used_regs[];                                        \
-  static char *reg_names[] = REGISTER_NAMES;                   \
+  static const char * const reg_names[] = REGISTER_NAMES;      \
   int fsize = ((SIZE) + 3) & -4;                               \
   FUNCTION_EXTRA_EPILOGUE (FILE, SIZE);                                \
   nfregs = 0;  fmask = 0;                                      \
@@ -831,25 +830,25 @@ extern enum reg_class regno_reg_class[];
   else if (GET_CODE (ADDR) == PLUS && XEXP (ADDR, 0) == frame_pointer_rtx) \
     { rtx other_reg = XEXP (ADDR, 1);                                  \
       offset = 0;                                                      \
-      regs = gen_rtx (PLUS, Pmode, stack_pointer_rtx, other_reg); }    \
+      regs = gen_rtx_PLUS (Pmode, stack_pointer_rtx, other_reg); }     \
   else if (GET_CODE (ADDR) == PLUS && XEXP (ADDR, 1) == frame_pointer_rtx) \
     { rtx other_reg = XEXP (ADDR, 0);                                  \
       offset = 0;                                                      \
-      regs = gen_rtx (PLUS, Pmode, stack_pointer_rtx, other_reg); }    \
+      regs = gen_rtx_PLUS (Pmode, stack_pointer_rtx, other_reg); }     \
   else if (GET_CODE (ADDR) == PLUS                                     \
           && GET_CODE (XEXP (ADDR, 0)) == PLUS                         \
           && XEXP (XEXP (ADDR, 0), 0) == frame_pointer_rtx             \
           && GET_CODE (XEXP (ADDR, 1)) == CONST_INT)                   \
     { rtx other_reg = XEXP (XEXP (ADDR, 0), 1);                                \
       offset = INTVAL (XEXP (ADDR, 1));                                        \
-      regs = gen_rtx (PLUS, Pmode, stack_pointer_rtx, other_reg); }    \
+      regs = gen_rtx_PLUS (Pmode, stack_pointer_rtx, other_reg); }     \
   else if (GET_CODE (ADDR) == PLUS                                     \
           && GET_CODE (XEXP (ADDR, 0)) == PLUS                         \
           && XEXP (XEXP (ADDR, 0), 1) == frame_pointer_rtx             \
           && GET_CODE (XEXP (ADDR, 1)) == CONST_INT)                   \
     { rtx other_reg = XEXP (XEXP (ADDR, 0), 0);                                \
       offset = INTVAL (XEXP (ADDR, 1));                                        \
-      regs = gen_rtx (PLUS, Pmode, stack_pointer_rtx, other_reg); }    \
+      regs = gen_rtx_PLUS (Pmode, stack_pointer_rtx, other_reg); }     \
   if (offset >= 0)                                                     \
     { int regno;                                                       \
       extern char call_used_regs[];                                    \
@@ -864,11 +863,11 @@ extern enum reg_class regno_reg_class[];
 \f
 /* Addressing modes, and classification of registers for them.  */
 
-/* #define HAVE_POST_INCREMENT */
-/* #define HAVE_POST_DECREMENT */
+/* #define HAVE_POST_INCREMENT */
+/* #define HAVE_POST_DECREMENT */
 
-/* #define HAVE_PRE_DECREMENT */
-/* #define HAVE_PRE_INCREMENT */
+/* #define HAVE_PRE_DECREMENT */
+/* #define HAVE_PRE_INCREMENT */
 
 /* Macros to check register numbers against specific register classes.  */
 
@@ -1121,10 +1120,11 @@ extern enum reg_class regno_reg_class[];
 /* #define CASE_VECTOR_MODE HImode */
 #define CASE_VECTOR_MODE SImode
 
-/* Define this if the tablejump instruction expects the table
-   to contain offsets from the address of the table.
-   Do not define this if the table should contain absolute addresses.  */
-#define CASE_VECTOR_PC_RELATIVE
+/* Define as C expression which evaluates to nonzero if the tablejump
+   instruction expects the table to contain offsets from the address of the
+   table.
+   Do not define this if the table should contain absolute addresses. */
+#define CASE_VECTOR_PC_RELATIVE 1
 
 /* Specify the tree operation to be used to convert reals to integers.  */
 #define IMPLICIT_FIX_EXPR FIX_ROUND_EXPR
@@ -1157,10 +1157,10 @@ extern enum reg_class regno_reg_class[];
 /* We assume that the store-condition-codes instructions store 0 for false
    and some other value for true.  This is the value stored for true.  */
 
-/* #define STORE_FLAG_VALUE -1 */
+/* #define STORE_FLAG_VALUE (-1) */
 
 /* When a prototype says `char' or `short', really pass an `int'.  */
-#define PROMOTE_PROTOTYPES
+#define PROMOTE_PROTOTYPES 1
 
 /* Specify the machine mode that pointers have.
    After generation of rtl, the compiler makes no further distinction
@@ -1443,7 +1443,7 @@ do { union { float f; long l;} tem;                       \
 
 /* This is how to output an element of a case-vector that is relative.  */
 
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL)  \
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL)  \
   fprintf (FILE, "\t.data.w L%d-L%d\n", VALUE, REL)
 
 
This page took 0.038614 seconds and 5 git commands to generate.