aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames Van Artsdalen <jrv@gnu.org>1992-03-27 00:24:06 +0000
committerJames Van Artsdalen <jrv@gnu.org>1992-03-27 00:24:06 +0000
commit5203427b614ba21bbd5d030340b292d20cfaaeda (patch)
tree85aa7e62a12a4a28e51155ab572af35793c41962 /gcc
parent526fef40af059bfd6e45ccdb66fbae12f49ed032 (diff)
downloadgcc-5203427b614ba21bbd5d030340b292d20cfaaeda.zip
gcc-5203427b614ba21bbd5d030340b292d20cfaaeda.tar.gz
gcc-5203427b614ba21bbd5d030340b292d20cfaaeda.tar.bz2
*** empty log message ***
From-SVN: r593
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.md40
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.