diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2015-10-04 16:09:23 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2015-10-04 16:09:23 +0200 |
commit | beabed99977d3b905ea304a8049a7891574f158f (patch) | |
tree | d65873224d7131c363bf3ba8536adcafc29944a1 /gcc | |
parent | 51daf35866a68b9c082f90bafd45d5a307257ab4 (diff) | |
download | gcc-beabed99977d3b905ea304a8049a7891574f158f.zip gcc-beabed99977d3b905ea304a8049a7891574f158f.tar.gz gcc-beabed99977d3b905ea304a8049a7891574f158f.tar.bz2 |
i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to check for general register.
* config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
check for general register.
(ix86_emit_save_regs): Ditto.
(ix86_emit_save_regs_using_mov): Ditto.
(ix86_emit_restore_regs_using_pop): Ditto.
(ix86_emit_restore_regs_using_mov): Ditto.
From-SVN: r228460
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 14 |
2 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1b57eea..4ba93a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-10-04 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to + check for general register. + (ix86_emit_save_regs): Ditto. + (ix86_emit_save_regs_using_mov): Ditto. + (ix86_emit_restore_regs_using_pop): Ditto. + (ix86_emit_restore_regs_using_mov): Ditto. + 2015-10-03 Marek Polacek <polacek@redhat.com> * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f5c9657..9c4cfbd 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11083,7 +11083,7 @@ ix86_nsaved_regs (void) int regno; for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true)) + if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, true)) nregs ++; return nregs; } @@ -11493,7 +11493,7 @@ ix86_emit_save_regs (void) rtx_insn *insn; for (regno = FIRST_PSEUDO_REGISTER - 1; regno-- > 0; ) - if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true)) + if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, true)) { insn = emit_insn (gen_push (gen_rtx_REG (word_mode, regno))); RTX_FRAME_RELATED_P (insn) = 1; @@ -11573,7 +11573,7 @@ ix86_emit_save_regs_using_mov (HOST_WIDE_INT cfa_offset) unsigned int regno; for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true)) + if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, true)) { ix86_emit_save_reg_using_mov (word_mode, regno, cfa_offset); cfa_offset -= UNITS_PER_WORD; @@ -11591,7 +11591,7 @@ ix86_emit_save_sse_regs_using_mov (HOST_WIDE_INT cfa_offset) if (SSE_REGNO_P (regno) && ix86_save_reg (regno, true)) { ix86_emit_save_reg_using_mov (V4SFmode, regno, cfa_offset); - cfa_offset -= 16; + cfa_offset -= GET_MODE_SIZE (V4SFmode); } } @@ -12991,7 +12991,7 @@ ix86_emit_restore_regs_using_pop (void) unsigned int regno; for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, false)) + if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, false)) ix86_emit_restore_reg_using_pop (gen_rtx_REG (word_mode, regno)); } @@ -13034,7 +13034,7 @@ ix86_emit_restore_regs_using_mov (HOST_WIDE_INT cfa_offset, unsigned int regno; for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, maybe_eh_return)) + if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, maybe_eh_return)) { rtx reg = gen_rtx_REG (word_mode, regno); rtx mem; @@ -13085,7 +13085,7 @@ ix86_emit_restore_sse_regs_using_mov (HOST_WIDE_INT cfa_offset, ix86_add_cfa_restore_note (NULL, reg, cfa_offset); - cfa_offset -= 16; + cfa_offset -= GET_MODE_SIZE (V4SFmode); } } |