diff options
| author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-30 10:57:34 +0000 |
|---|---|---|
| committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-30 10:57:34 +0000 |
| commit | 8a355d81c3be6ea2e6f9cfae2d5b5ff1a28349b2 (patch) | |
| tree | 7496b1040b99fa3310eb7f131d4e15f0e4db4e9c | |
| parent | 6783717070cc6674a23bf22af4fb1bc3baa3d2ad (diff) | |
| download | ppe42-gcc-8a355d81c3be6ea2e6f9cfae2d5b5ff1a28349b2.tar.gz ppe42-gcc-8a355d81c3be6ea2e6f9cfae2d5b5ff1a28349b2.zip | |
* config/i386/i386.md (R10_REG): New constant.
* config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
(ix86_emit_restore_regs_using_mov): Ditto.
(ix86_expand_call): Ditto.
(x86_output_mi_thunk): Ditto. Also use R10_REG.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119360 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 8 | ||||
| -rw-r--r-- | gcc/config/i386/i386.c | 12 | ||||
| -rw-r--r-- | gcc/config/i386/i386.md | 1 |
3 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a5419e9f77..e12b3ff77b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2006-11-30 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (R10_REG): New constant. + * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG. + (ix86_emit_restore_regs_using_mov): Ditto. + (ix86_expand_call): Ditto. + (x86_output_mi_thunk): Ditto. Also use R10_REG. + 2006-11-30 Steven Bosscher <steven@gcc.gnu.org> * cselib.c (cselib_init): Use special MEM rtx form for callmem. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 0e172dbf286..fa1a1e64e00 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -5581,7 +5581,7 @@ pro_epilogue_adjust_stack (rtx dest, rtx src, rtx offset, int style) shouldn't be used together with huge frame sizes in one function because of the frame_size check in sibcall.c. */ gcc_assert (style); - r11 = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 3 /* R11 */); + r11 = gen_rtx_REG (DImode, R11_REG); insn = emit_insn (gen_rtx_SET (DImode, r11, offset)); if (style < 0) RTX_FRAME_RELATED_P (insn) = 1; @@ -5838,7 +5838,7 @@ ix86_emit_restore_regs_using_mov (rtx pointer, HOST_WIDE_INT offset, { rtx r11; - r11 = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 3 /* R11 */); + r11 = gen_rtx_REG (DImode, R11_REG); emit_move_insn (r11, GEN_INT (offset)); emit_insn (gen_adddi3 (r11, r11, pointer)); base_address = gen_rtx_MEM (Pmode, r11); @@ -14417,7 +14417,7 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, { rtx addr; addr = copy_to_mode_reg (Pmode, XEXP (fnaddr, 0)); - fnaddr = gen_rtx_REG (Pmode, FIRST_REX_INT_REG + 3 /* R11 */); + fnaddr = gen_rtx_REG (Pmode, R11_REG); emit_move_insn (fnaddr, addr); fnaddr = gen_rtx_MEM (QImode, fnaddr); } @@ -18762,7 +18762,7 @@ x86_output_mi_thunk (FILE *file ATTRIBUTE_UNUSED, { if (!x86_64_general_operand (xops[0], DImode)) { - tmp = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 2 /* R10 */); + tmp = gen_rtx_REG (DImode, R10_REG); xops[1] = tmp; output_asm_insn ("mov{q}\t{%1, %0|%0, %1}", xops); xops[0] = tmp; @@ -18778,7 +18778,7 @@ x86_output_mi_thunk (FILE *file ATTRIBUTE_UNUSED, if (vcall_offset) { if (TARGET_64BIT) - tmp = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 2 /* R10 */); + tmp = gen_rtx_REG (DImode, R10_REG); else { int tmp_regno = 2 /* ECX */; @@ -18799,7 +18799,7 @@ x86_output_mi_thunk (FILE *file ATTRIBUTE_UNUSED, xops[0] = gen_rtx_MEM (Pmode, plus_constant (tmp, vcall_offset)); if (TARGET_64BIT && !memory_operand (xops[0], Pmode)) { - rtx tmp2 = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 3 /* R11 */); + rtx tmp2 = gen_rtx_REG (DImode, R11_REG); xops[0] = GEN_INT (vcall_offset); xops[1] = tmp2; output_asm_insn ("mov{q}\t{%0, %1|%1, %0}", xops); diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index e6a3d7b973f..a4be7e1ef2d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -181,6 +181,7 @@ (FPSR_REG 18) (FPCR_REG 19) (DIRFLAG_REG 20) + (R10_REG 40) (R11_REG 41) ]) |

