aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1997-05-18 08:58:39 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1997-05-18 08:58:39 -0400
commit02385fc5632dcd8666f9fb323e7d13d10c5bf735 (patch)
tree38e94e3ebd7c757c8e627e27a028fd540f19c994 /gcc
parent6e848450718f16cd67bb8677205034c22a130cbb (diff)
downloadgcc-02385fc5632dcd8666f9fb323e7d13d10c5bf735.zip
gcc-02385fc5632dcd8666f9fb323e7d13d10c5bf735.tar.gz
gcc-02385fc5632dcd8666f9fb323e7d13d10c5bf735.tar.bz2
(EXTRA_CONSTRAINT): New macro.
From-SVN: r14089
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 91708f4..7481dc7 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -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