diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2011-10-21 09:30:24 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2011-10-21 09:30:24 +0200 |
commit | efc1540576e349fec25d62529a8de11740b204b3 (patch) | |
tree | e9432ffae68a611ee4eb71602de8a2c349672e89 /gcc | |
parent | 3147591f604b6ce925c1e7d39e62ec973472af58 (diff) | |
download | gcc-efc1540576e349fec25d62529a8de11740b204b3.zip gcc-efc1540576e349fec25d62529a8de11740b204b3.tar.gz gcc-efc1540576e349fec25d62529a8de11740b204b3.tar.bz2 |
i386.c (ix86_emit_swdivsf): Force b into register.
* config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
(ix86_emit_swsqrtsf): Force a into register.
From-SVN: r180287
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a76979d..e44cf96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-21 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_emit_swdivsf): Force b into register. + (ix86_emit_swsqrtsf): Force a into register. + 2011-10-20 Mike Stump <mikestump@comcast.net> * regcprop.c (copyprop_hardreg_forward_1): Update recog_data diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2d44c00..35222c0 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -33638,6 +33638,8 @@ void ix86_emit_swdivsf (rtx res, rtx a, rtx b, enum machine_mode mode) /* a / b = a * ((rcp(b) + rcp(b)) - (b * rcp(b) * rcp (b))) */ + b = force_reg (mode, b); + /* x0 = rcp(b) estimate */ emit_insn (gen_rtx_SET (VOIDmode, x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, b), @@ -33693,6 +33695,8 @@ void ix86_emit_swsqrtsf (rtx res, rtx a, enum machine_mode mode, /* sqrt(a) = -0.5 * a * rsqrtss(a) * (a * rsqrtss(a) * rsqrtss(a) - 3.0) rsqrt(a) = -0.5 * rsqrtss(a) * (a * rsqrtss(a) * rsqrtss(a) - 3.0) */ + a = force_reg (mode, a); + /* x0 = rsqrt(a) estimate */ emit_insn (gen_rtx_SET (VOIDmode, x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, a), |