From: Jim Kingdon Date: Fri, 27 Aug 1999 07:07:06 +0000 (-0600) Subject: i386.md: In the 6 insns which call output_fix_trunc, earlyclobber operands[0]. X-Git-Tag: prereleases/libstdc++-2.92~10992 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7759f25bfb7d11de6542524026017178bda96be1;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 066ed4192f0d..6191b48cee77 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Aug 27 01:03:48 1999 Jim Kingdon + 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 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index fb3e1b2ad0b0..62dff2633fb1 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -2710,8 +2710,10 @@ 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")) @@ -2738,8 +2740,10 @@ 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")) @@ -2765,8 +2769,10 @@ 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")) @@ -2793,8 +2799,10 @@ 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")) @@ -2820,8 +2828,10 @@ 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")) @@ -2848,8 +2858,10 @@ 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"))