i386.md: In the 6 insns which call output_fix_trunc, earlyclobber operands[0].
authorJim Kingdon <kingdon@redhat.com>
Fri, 27 Aug 1999 07:07:06 +0000 (01:07 -0600)
committerJeff Law <law@gcc.gnu.org>
Fri, 27 Aug 1999 07:07:06 +0000 (01:07 -0600)
        * i386.md: In the 6 insns which call output_fix_trunc,
        earlyclobber operands[0].

From-SVN: r28921

gcc/ChangeLog
gcc/config/i386/i386.md

index 066ed4192f0d763517572c3dc1a620929b486879..6191b48cee7732278d3016689cdae0c6d55944a9 100644 (file)
@@ -1,3 +1,9 @@
+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>  
 
        * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
index fb3e1b2ad0b03cd852610f846aea42cf43d85a3b..62dff2633fb19f747300f21ce76924f5edf0635f 100644 (file)
   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"))