*** empty log message ***
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 3 Mar 1992 23:36:58 +0000 (18:36 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 3 Mar 1992 23:36:58 +0000 (18:36 -0500)
From-SVN: r387

gcc/config/vax/vax.h
gcc/config/vax/vax.md

index a26f286b459f955c6d6af8f97e7658e5f332bbd0..9b8cf5c23b475b0c7d1116f3a67b774e2e54e6ef 100644 (file)
@@ -283,6 +283,16 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
                 || (VALUE) == CONST0_RTX (SFmode))     \
    : 0)
 
+/* Optional extra constraints for this machine.
+
+   For the VAX, `Q' means that OP is a MEM that does not have a mode-dependent
+   address.  */
+
+#define EXTRA_CONSTRAINT(OP, C) \
+  ((C) == 'Q'                                                          \
+   ? GET_CODE (OP) == MEM && ! mode_dependent_address_p (XEXP (OP, 0)) \
+   : 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
index be1b3b0ff23d8bc28b1f162e2aeac4fd6928bf6f..e17c8cadb91830cb4b1d7f246faafe1a343b0958 100644 (file)
   "j%C0 %l1") ; %C0 negates condition
 \f
 ;; Recognize jbs, jlbs, jbc and jlbc instructions.  Note that the operand
-;; if this insn is SImode in the hardware.  However, if it is memory,
-;; we use QImode.  So we can't allow the memory address to be indexed.
+;; of jlbs and jlbc insns are SImode in the hardware.  However, if it is
+;; memory, we use QImode in the insn.  So we can't use those instructions
+;; for mode-dependent addresses.
 
 (define_insn ""
   [(set (pc)
        (if_then_else
-        (ne (zero_extract:SI (match_operand:QI 0 "reg_or_nxmem_operand" "g,g")
+        (ne (zero_extract:SI (match_operand:QI 0 "nonimmediate_operand" "rQ,g")
                              (const_int 1)
                              (match_operand:SI 1 "general_operand" "I,g"))
             (const_int 0))
 (define_insn ""
   [(set (pc)
        (if_then_else
-        (eq (zero_extract:SI (match_operand:QI 0 "reg_or_nxmem_operand" "g,g")
+        (eq (zero_extract:SI (match_operand:QI 0 "nonimmediate_operand" "rQ,g")
                              (const_int 1)
                              (match_operand:SI 1 "general_operand" "I,g"))
             (const_int 0))