aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2006-11-30 11:57:34 +0100
committerUros Bizjak <uros@gcc.gnu.org>2006-11-30 11:57:34 +0100
commit3c4ace25d7f3d08c0c080ec0bf4d90cd403989a7 (patch)
tree7496b1040b99fa3310eb7f131d4e15f0e4db4e9c /gcc
parentac3768f69a29b98a3db963b3cc17cc1d721572d8 (diff)
downloadgcc-3c4ace25d7f3d08c0c080ec0bf4d90cd403989a7.zip
gcc-3c4ace25d7f3d08c0c080ec0bf4d90cd403989a7.tar.gz
gcc-3c4ace25d7f3d08c0c080ec0bf4d90cd403989a7.tar.bz2
i386.md (R10_REG): New constant.
* 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. From-SVN: r119360
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.c12
-rw-r--r--gcc/config/i386/i386.md1
3 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9a5419e..e12b3ff 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 0e172db..fa1a1e6 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 e6a3d7b..a4be7e1 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)
])