From 7759f25bfb7d11de6542524026017178bda96be1 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Fri, 27 Aug 1999 01:07:06 -0600 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.md | 24 ++++++++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 066ed4192f0..6191b48cee7 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 fb3e1b2ad0b..62dff2633fb 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"))