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 ""
- [(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"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m"))
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 ""
- [(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"))))
(clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))
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 ""
- [(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"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m"))
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 ""
- [(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"))))
(clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))
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 ""
- [(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"))))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))
(clobber (match_operand:HI 3 "memory_operand" "m,m"))
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 ""
- [(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"))))
(clobber (match_dup 1))
(clobber (match_operand:HI 2 "memory_operand" "m,m"))