aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2011-11-29 20:03:08 +0100
committerUros Bizjak <uros@gcc.gnu.org>2011-11-29 20:03:08 +0100
commit09ad58e618b0145ed98ee081ffc8117824390972 (patch)
treecc34bf6d161d58958ce9721f6d62f6c089845c4c /gcc/reg-stack.c
parentc6b4cec7ea9fbf702e1037b820feb595dbbe8646 (diff)
downloadgcc-09ad58e618b0145ed98ee081ffc8117824390972.zip
gcc-09ad58e618b0145ed98ee081ffc8117824390972.tar.gz
gcc-09ad58e618b0145ed98ee081ffc8117824390972.tar.bz2
sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
* config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs. (movdi_via_fpu): Remove. (loaddi_via_fpu): New insn pattern. (storedi_via_fpu): Ditto. (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu. (atomic_storedi_fpu): Ditto. * reg-stack.c (get_true_reg): Handle UNSPEC_LDA. (subst_stack_regs_pat): Handle UNSPEC_STA. From-SVN: r181812
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 896a68f..da7fe72 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -434,7 +434,8 @@ get_true_reg (rtx *pat)
break;
case UNSPEC:
- if (XINT (*pat, 1) == UNSPEC_TRUNC_NOOP)
+ if (XINT (*pat, 1) == UNSPEC_TRUNC_NOOP
+ || XINT (*pat, 1) == UNSPEC_LDA)
pat = & XVECEXP (*pat, 0, 0);
return pat;
@@ -1677,6 +1678,7 @@ subst_stack_regs_pat (rtx insn, stack regstack, rtx pat)
case UNSPEC:
switch (XINT (pat_src, 1))
{
+ case UNSPEC_STA:
case UNSPEC_FIST:
case UNSPEC_FIST_FLOOR: