i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to check for general register.
authorUros Bizjak <ubizjak@gmail.com>
Sun, 4 Oct 2015 14:09:23 +0000 (16:09 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 4 Oct 2015 14:09:23 +0000 (16:09 +0200)
* 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

gcc/ChangeLog
gcc/config/i386/i386.c

index 1b57eeab61d2ff342483d8b9e46aa7a5a92b3b20..4ba93a24d652019fde3d086329329c2b90f9d6e5 100644 (file)
@@ -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.
index f5c96572cedd866dba8e7118ab4f4d5f868e043a..9c4cfbdc3f34bae946efcc23a1e3318753a18045 100644 (file)
@@ -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);
       }
 }