(EXTRA_CONSTRAINT): New macro.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 18 May 1997 12:58:39 +0000 (08:58 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 18 May 1997 12:58:39 +0000 (08:58 -0400)
From-SVN: r14089

gcc/config/m68k/m68k.h

index 91708f4a88ddb639da0eaf8a4766086145a6e255..7481dc7660812031f68e5930a3e99647c2a46818 100644 (file)
@@ -738,6 +738,19 @@ extern enum reg_class regno_reg_class[];
    (C) == 'H' ? (TARGET_FPA && standard_sun_fpa_constant_p (VALUE)) : 0)
 #endif /* defined SUPPORT_SUN_FPA */
 
+/* A C expression that defines the optional machine-dependent constraint
+   letters that can be used to segregate specific types of operands,  
+   usually memory references, for the target machine.  It should return 1 if
+   VALUE corresponds to the operand type represented by the constraint letter
+   C.  If C is not defined as an extra constraint, the value returned should 
+   be 0 regardless of VALUE.  */
+
+/* For the m68k, `Q' means address register indirect addressing mode. */
+
+#define EXTRA_CONSTRAINT(OP, C)        \
+  ((C) == 'Q' ? (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == REG) : \
+   0 )
+
 /* Given an rtx X being reloaded into a reg required to be
    in class CLASS, return the class of reg to actually use.
    In general this is just CLASS; but on some machines