diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2011-11-29 20:03:08 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2011-11-29 20:03:08 +0100 |
commit | 09ad58e618b0145ed98ee081ffc8117824390972 (patch) | |
tree | cc34bf6d161d58958ce9721f6d62f6c089845c4c /gcc/reg-stack.c | |
parent | c6b4cec7ea9fbf702e1037b820feb595dbbe8646 (diff) | |
download | gcc-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.c | 4 |
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: |