Commit 7759f25b by Jim Kingdon Committed by Jeff Law

i386.md: In the 6 insns which call output_fix_trunc, earlyclobber operands[0].

        * i386.md: In the 6 insns which call output_fix_trunc,
        earlyclobber operands[0].

From-SVN: r28921
parent 5ca8e6f7
Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
with much help from Jeffrey A Law and Richard Henderson
* i386.md: In the 6 insns which call output_fix_trunc,
earlyclobber operands[0].
Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk> Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
* jump.c (duplicate_loop_exit_test): Call reg_scan_update after * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
......
...@@ -2710,8 +2710,10 @@ ...@@ -2710,8 +2710,10 @@
operands[4] = (rtx) assign_386_stack_local (SImode, 0); operands[4] = (rtx) assign_386_stack_local (SImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:SI 0 "nonimmediate_operand" "=m,!&r")
(fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f,f")))) (fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f,f"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m")) (clobber (match_operand:HI 3 "memory_operand" "m,m"))
...@@ -2738,8 +2740,10 @@ ...@@ -2738,8 +2740,10 @@
operands[4] = (rtx) assign_386_stack_local (DImode, 0); operands[4] = (rtx) assign_386_stack_local (DImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:DI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:DI 0 "nonimmediate_operand" "=m,!&r")
(fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f,f")))) (fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f,f"))))
(clobber (match_dup 1)) (clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
...@@ -2765,8 +2769,10 @@ ...@@ -2765,8 +2769,10 @@
operands[4] = (rtx) assign_386_stack_local (SImode, 0); operands[4] = (rtx) assign_386_stack_local (SImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:SI 0 "nonimmediate_operand" "=m,!&r")
(fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f,f")))) (fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f,f"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m")) (clobber (match_operand:HI 3 "memory_operand" "m,m"))
...@@ -2793,8 +2799,10 @@ ...@@ -2793,8 +2799,10 @@
operands[4] = (rtx) assign_386_stack_local (DImode, 0); operands[4] = (rtx) assign_386_stack_local (DImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:DI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:DI 0 "nonimmediate_operand" "=m,!&r")
(fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f,f")))) (fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f,f"))))
(clobber (match_dup 1)) (clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
...@@ -2820,8 +2828,10 @@ ...@@ -2820,8 +2828,10 @@
operands[4] = (rtx) assign_386_stack_local (SImode, 0); operands[4] = (rtx) assign_386_stack_local (SImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:SI 0 "nonimmediate_operand" "=m,!&r")
(fix:SI (fix:XF (match_operand:XF 1 "register_operand" "f,f")))) (fix:SI (fix:XF (match_operand:XF 1 "register_operand" "f,f"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m")) (clobber (match_operand:HI 3 "memory_operand" "m,m"))
...@@ -2848,8 +2858,10 @@ ...@@ -2848,8 +2858,10 @@
operands[4] = (rtx) assign_386_stack_local (DImode, 0); operands[4] = (rtx) assign_386_stack_local (DImode, 0);
}") }")
;; We have to earlyclobber the register output to prevent it from overlapping
;; with the address for one of the scratch memory operands.
(define_insn "" (define_insn ""
[(set (match_operand:DI 0 "nonimmediate_operand" "=m,!r") [(set (match_operand:DI 0 "nonimmediate_operand" "=m,!&r")
(fix:DI (fix:XF (match_operand:XF 1 "register_operand" "f,f")))) (fix:DI (fix:XF (match_operand:XF 1 "register_operand" "f,f"))))
(clobber (match_dup 1)) (clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m")) (clobber (match_operand:HI 2 "memory_operand" "m,m"))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment