diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-12-31 14:23:00 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-12-31 14:23:00 -0800 |
commit | eff864abc33227ebe24ec5b89c744311e2aff332 (patch) | |
tree | 3b90cb2e89bc3e3d3387978dce1d896c017ccc57 /gcc | |
parent | 3412b298a26d6c8d2fd24d9875e37be0c8c4d136 (diff) | |
download | gcc-eff864abc33227ebe24ec5b89c744311e2aff332.zip gcc-eff864abc33227ebe24ec5b89c744311e2aff332.tar.gz gcc-eff864abc33227ebe24ec5b89c744311e2aff332.tar.bz2 |
(call_internal, call_value_internal): Use 'l' for
match_scratch constraint not 'd'.
From-SVN: r3026
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i960/i960.md | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/config/i960/i960.md b/gcc/config/i960/i960.md index 59ead2b..5b5bdb6 100644 --- a/gcc/config/i960/i960.md +++ b/gcc/config/i960/i960.md @@ -2091,11 +2091,14 @@ 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);" @@ -2113,12 +2116,15 @@ 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);" |