picochip.md (lea_add): Allow any nonimmediate in the lea_add.
authorHariharan Sandanagobalane <hariharan@picochip.com>
Mon, 16 Feb 2009 13:46:51 +0000 (13:46 +0000)
committerHariharan Sandanagobalane <hariharans@gcc.gnu.org>
Mon, 16 Feb 2009 13:46:51 +0000 (13:46 +0000)
        * config/picochip/picochip.md (lea_add): Allow any nonimmediate
        in the lea_add. Reload eventually constraints it properly.
        * config/picochip/constraints.md : Remove the target constraint
        "b", since it is not needed anymore.

From-SVN: r144202

gcc/ChangeLog
gcc/config/picochip/constraints.md
gcc/config/picochip/picochip.md

index d4b7860060811345bbc3d92c9a448dc17e1fe112..a881d27fa49e1b081eca33dd3478356f8273a937 100644 (file)
@@ -1,3 +1,10 @@
+2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
+
+       * config/picochip/picochip.md (lea_add): Allow any nonimmediate
+       in the lea_add. Reload eventually constraints it properly.
+       * config/picochip/constraints.md : Remove the target constraint
+       "b", since it is not needed anymore.
+
 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
 
        * gthr-dce.h: Uglify function parameter and local variable names.
index 2b100b6c79e8babaa3a363c758097d6cd8aabffe..8178bc211a842f6256bb606992108043bc444050 100644 (file)
   (and (match_code "mem")
        (match_test "picochip_absolute_memory_operand(op,mode) == 1")))
 
-(define_constraint "b"
- "See if this is an address in memory, non-strict version"
-  (match_test "picochip_legitimate_address_p(mode,op,0) == 1"))
-
 (define_register_constraint "k" "FRAME_REGS"
   "Frame regs")
 (define_register_constraint "f" "PTR_REGS"
index fbe2280e12369b6644aba07b28d915ad9bd0ba36..b1c643216fc339082f041b50adad926611ccca22 100644 (file)
 ;; ALU 1 where it cannot modify CC.
 
 (define_insn "*lea_add"
- [(set (match_operand:HI 0 "register_operand" "=r")
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r")
        (plus:HI (match_operand:HI 1 "register_operand" "r")
                (match_operand:HI 2 "immediate_operand" "i")))]
  ""
 ;; "p" constraint cannot be specified for operands other than 
 ;; address_operand, hence the extra pattern below.
 (define_insn "*lea_move"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r")
-        (match_operand:HI 1 "address_operand" "p,b"))]
+  [(set (match_operand:HI 0 "nonimmediate_operand" "=r")
+        (match_operand:HI 1 "address_operand" "p"))]
   ""
   {
     if (REG == GET_CODE(operands[1]))