From 5203427b614ba21bbd5d030340b292d20cfaaeda Mon Sep 17 00:00:00 2001 From: James Van Artsdalen Date: Fri, 27 Mar 1992 00:24:06 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r593 --- gcc/config/i386/i386.md | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index f532bb7a52e..ed6d27d8fce 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -999,11 +999,12 @@ ;; part. (define_expand "fixuns_truncdfsi2" - [(parallel [(set (match_dup 3) - (fix:DI - (fix:DF (match_operand:DF 1 "register_operand" "")))) + [(set (match_dup 5) + (match_operand:DF 1 "register_operand" "")) + (parallel [(set (match_dup 3) + (fix:DI (fix:DF (match_dup 5)))) (clobber (match_scratch:HI 2 "")) - (clobber (match_dup 1))]) + (clobber (match_dup 5))]) (set (match_operand:SI 0 "general_operand" "") (match_dup 4))] "TARGET_80387" @@ -1011,14 +1012,16 @@ { operands[3] = gen_reg_rtx (DImode); operands[4] = gen_lowpart (SImode, operands[3]); + operands[5] = gen_reg_rtx (DFmode); }") (define_expand "fixuns_truncsfsi2" - [(parallel [(set (match_dup 3) - (fix:DI - (fix:SF (match_operand:SF 1 "register_operand" "")))) + [(set (match_dup 5) + (match_operand:SF 1 "register_operand" "")) + (parallel [(set (match_dup 3) + (fix:DI (fix:SF (match_dup 5)))) (clobber (match_scratch:HI 2 "")) - (clobber (match_dup 1))]) + (clobber (match_dup 5))]) (set (match_operand:SI 0 "general_operand" "") (match_dup 4))] "TARGET_80387" @@ -1026,32 +1029,37 @@ { operands[3] = gen_reg_rtx (DImode); operands[4] = gen_lowpart (SImode, operands[3]); + operands[5] = gen_reg_rtx (SFmode); }") ;; Signed conversion to DImode. (define_expand "fix_truncdfdi2" - [(parallel [(set (match_operand:DI 0 "general_operand" "") - (fix:DI - (fix:DF (match_operand:DF 1 "register_operand" "")))) + [(set (match_dup 3) + (match_operand:DF 1 "register_operand" "")) + (parallel [(set (match_operand:DI 0 "general_operand" "") + (fix:DI (fix:DF (match_dup 3)))) (clobber (match_scratch:HI 2 "")) - (clobber (match_dup 1))])] + (clobber (match_dup 3))])] "TARGET_80387" " { operands[1] = copy_to_mode_reg (DFmode, operands[1]); + operands[3] = gen_reg_rtx (DFmode); }") (define_expand "fix_truncsfdi2" - [(parallel [(set (match_operand:DI 0 "general_operand" "") - (fix:DI - (fix:SF (match_operand:SF 1 "register_operand" "")))) + [(set (match_dup 3) + (match_operand:SF 1 "register_operand" "")) + (parallel [(set (match_operand:DI 0 "general_operand" "") + (fix:DI (fix:SF (match_dup 3)))) (clobber (match_scratch:HI 2 "")) - (clobber (match_dup 1))])] + (clobber (match_dup 3))])] "TARGET_80387" " { operands[1] = copy_to_mode_reg (SFmode, operands[1]); + operands[3] = gen_reg_rtx (SFmode); }") ;; These match a signed conversion of either DFmode or SFmode to DImode.