(call_internal, call_value_internal): Use 'l' for
authorJim Wilson <wilson@gcc.gnu.org>
Thu, 31 Dec 1992 22:23:00 +0000 (14:23 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 31 Dec 1992 22:23:00 +0000 (14:23 -0800)
match_scratch constraint not 'd'.

From-SVN: r3026

gcc/config/i960/i960.md

index 59ead2b103d5d375341c0c01afa1ec1c3f63c518..5b5bdb65feae86ede47adb17bd6e824b654595f8 100644 (file)
   DONE;
 }")
 
+;; We need a call saved register allocated for the match_scratch, so we use
+;; 'l' because all local registers are call saved.
+
 (define_insn "call_internal"
   [(call (match_operand:SI 0 "general_operand" "g")
         (match_operand:SI 1 "immediate_operand" "i"))
    (use (match_operand:SI 2 "address_operand" "p"))
-   (clobber (match_scratch:SI 3 "=&d"))]
+   (clobber (match_scratch:SI 3 "=&l"))]
   ""
   "* return i960_output_call_insn (operands[0], operands[1], operands[2],
                                   operands[3], insn);"
   DONE;
 }")
 
+;; We need a call saved register allocated for the match_scratch, so we use
+;; 'l' because all local registers are call saved.
+
 (define_insn "call_value_internal"
   [(set (match_operand 0 "register_operand" "=d")
        (call (match_operand:SI 1 "general_operand" "g")
              (match_operand:SI 2 "immediate_operand" "i")))
    (use (match_operand:SI 3 "address_operand" "p"))
-   (clobber (match_scratch:SI 4 "=&d"))]
+   (clobber (match_scratch:SI 4 "=&l"))]
   ""
   "* return i960_output_call_insn (operands[1], operands[2], operands[3],
                                   operands[4], insn);"