diff options
author | James Van Artsdalen <jrv@gnu.org> | 1992-03-27 00:24:06 +0000 |
---|---|---|
committer | James Van Artsdalen <jrv@gnu.org> | 1992-03-27 00:24:06 +0000 |
commit | 5203427b614ba21bbd5d030340b292d20cfaaeda (patch) | |
tree | 85aa7e62a12a4a28e51155ab572af35793c41962 /gcc/config/i386 | |
parent | 526fef40af059bfd6e45ccdb66fbae12f49ed032 (diff) | |
download | gcc-5203427b614ba21bbd5d030340b292d20cfaaeda.zip gcc-5203427b614ba21bbd5d030340b292d20cfaaeda.tar.gz gcc-5203427b614ba21bbd5d030340b292d20cfaaeda.tar.bz2 |
*** empty log message ***
From-SVN: r593
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/i386.md | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index f532bb7..ed6d27d 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. |