]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it rejects (mem (lo_sum ...
authorJeff Law <law@redhat.com>
Wed, 5 Jun 2002 19:31:48 +0000 (13:31 -0600)
committerJeff Law <law@gcc.gnu.org>
Wed, 5 Jun 2002 19:31:48 +0000 (13:31 -0600)
        * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
        rejects (mem (lo_sum (reg) (unspec))), but will allow
        (mem (lo_sum (reg) (symbol_ref)) for PA2.0.

From-SVN: r54290

gcc/ChangeLog
gcc/config/pa/pa.h

index 0ddf3a1136997f654313d4c20f3678a2841f37c8..0cef113d52d30294a531a90024e60eead4501f5e 100644 (file)
@@ -1,3 +1,9 @@
+2002-06-05  Jeff Law  <law@redhat.com>
+
+       * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
+       rejects (mem (lo_sum (reg) (unspec))), but will allow
+       (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
+
 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
index 93a63f8eca90863133b353df536f982d423644bd..f311d6b1ef6384889f2ed0e96f90c00cb76a400c 100644 (file)
@@ -1239,7 +1239,11 @@ extern int may_call_alloca;
                             ? GET_MODE (OP)            \
                             : DFmode),                 \
                            XEXP (OP, 0))               \
-       && GET_CODE (XEXP (OP, 0)) != LO_SUM            \
+       && !(GET_CODE (XEXP (OP, 0)) == LO_SUM          \
+           && GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \
+           && REG_OK_FOR_BASE_P (XEXP (XEXP (OP, 0), 0))\
+           && GET_CODE (XEXP (XEXP (OP, 0), 1)) == UNSPEC\
+           && GET_MODE (XEXP (OP, 0)) == Pmode)        \
        && !(GET_CODE (XEXP (OP, 0)) == PLUS            \
            && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\
                || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\