This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
i386 patches
- To: egcs at cygnus dot com
- Subject: i386 patches
- From: John Carr <jfc at mit dot edu>
- Date: Mon, 09 Feb 1998 18:58:25 -0500
This fixes some type problems on i386 and changes the machine description
to use the new gen_rtx_XXX interface.
Mon Feb 9 18:51:23 1998 John F. Carr <jfc@mit.edu>
* i386.c, i386.h, i386.md: Change gen_rtx (X, ...) to gen_rtx_X (...).
Use GEN_INT instead of gen_rtx (CONST_INT). Make printf arguments
and format string match.
Index: i386.md
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.8
diff -c -3 -p -r1.8 i386.md
*** i386.md 1998/01/19 21:54:09 1.8
--- i386.md 1998/02/09 23:48:51
***************
*** 1068,1074 ****
""
"*
{
! operands[1] = gen_rtx (REG, HImode, REGNO (operands[1]));
return AS1 (push%W0,%1);
}")
--- 1068,1074 ----
""
"*
{
! operands[1] = gen_rtx_REG (HImode, REGNO (operands[1]));
return AS1 (push%W0,%1);
}")
***************
*** 1214,1226 ****
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx (SET, SFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
--- 1214,1226 ----
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx_SET (SFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
***************
*** 1409,1421 ****
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx (SET, DFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
--- 1409,1421 ----
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx_SET (DFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
***************
*** 1596,1608 ****
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx (SET, XFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
--- 1596,1608 ----
if (flag_pic)
current_function_uses_pic_offset_table = 1;
! insn = emit_insn (gen_rtx_SET (XFmode, operands[0], fp_const));
note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
if (note)
XEXP (note, 0) = operands[1];
else
! REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
***************
*** 1807,1813 ****
if (TARGET_ZERO_EXTEND_WITH_AND)
{
xops[0] = operands[0];
! xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xffff);
if (i386_aligned_p (operands[1]))
output_asm_insn (AS2 (mov%L0,%k1,%k0),operands);
else
--- 1807,1813 ----
if (TARGET_ZERO_EXTEND_WITH_AND)
{
xops[0] = operands[0];
! xops[1] = GEN_INT (0xffff);
if (i386_aligned_p (operands[1]))
output_asm_insn (AS2 (mov%L0,%k1,%k0),operands);
else
***************
*** 1831,1837 ****
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
(define_split
--- 1831,1837 ----
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx_REG (HImode, true_regnum (operands[0]));")
(define_split
***************
*** 1843,1849 ****
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 65535)))]
! "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
(define_insn "zero_extendqihi2"
[(set (match_operand:HI 0 "register_operand" "=q,&q,?r")
--- 1843,1849 ----
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 65535)))]
! "operands[2] = gen_rtx_REG (HImode, true_regnum (operands[0]));")
(define_insn "zero_extendqihi2"
[(set (match_operand:HI 0 "register_operand" "=q,&q,?r")
***************
*** 1872,1878 ****
else
{
xops[0] = operands[0];
! xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0),operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
--- 1872,1878 ----
else
{
xops[0] = operands[0];
! xops[1] = GEN_INT (0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0),operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
***************
*** 1895,1901 ****
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
(define_split
--- 1895,1901 ----
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
***************
*** 1908,1914 ****
(set (match_dup 0)
(and:HI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:HI 0 "register_operand" "")
--- 1908,1914 ----
(set (match_dup 0)
(and:HI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:HI 0 "register_operand" "")
***************
*** 1924,1930 ****
if (GET_CODE (operands[0]) != REG || GET_CODE (operands[1]) != REG
|| REGNO (operands[0]) == REGNO (operands[1]))
FAIL;
! operands[2] = gen_rtx (REG, HImode, REGNO (operands[1]));")
(define_insn "zero_extendqisi2"
[(set (match_operand:SI 0 "register_operand" "=q,&q,?r")
--- 1924,1930 ----
if (GET_CODE (operands[0]) != REG || GET_CODE (operands[1]) != REG
|| REGNO (operands[0]) == REGNO (operands[1]))
FAIL;
! operands[2] = gen_rtx_REG (HImode, REGNO (operands[1]));")
(define_insn "zero_extendqisi2"
[(set (match_operand:SI 0 "register_operand" "=q,&q,?r")
***************
*** 1953,1959 ****
else
{
xops[0] = operands[0];
! xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0), operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
--- 1953,1959 ----
else
{
xops[0] = operands[0];
! xops[1] = GEN_INT (0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0), operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
***************
*** 1963,1970 ****
if (TARGET_ZERO_EXTEND_WITH_AND && GET_CODE (operands[1]) == REG)
{
xops[0] = operands[0];
! xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xff);
! operands[1] = gen_rtx (REG, SImode, REGNO (operands[1]));
output_asm_insn (AS2 (mov%L0,%1,%0), operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
RET;
--- 1963,1970 ----
if (TARGET_ZERO_EXTEND_WITH_AND && GET_CODE (operands[1]) == REG)
{
xops[0] = operands[0];
! xops[1] = GEN_INT (0xff);
! operands[1] = gen_rtx_REG (SImode, REGNO (operands[1]));
output_asm_insn (AS2 (mov%L0,%1,%0), operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
RET;
***************
*** 1986,1992 ****
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
(define_split
--- 1986,1992 ----
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
! "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
***************
*** 1999,2005 ****
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:SI 0 "register_operand" "")
--- 1999,2005 ----
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:SI 0 "register_operand" "")
***************
*** 2011,2017 ****
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx (REG, SImode, true_regnum (operands[1]));")
(define_insn "zero_extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,?r,?m")
--- 2011,2017 ----
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
! "operands[2] = gen_rtx_REG (SImode, true_regnum (operands[1]));")
(define_insn "zero_extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,?r,?m")
***************
*** 2024,2030 ****
if (REG_P (operands[0]) && REG_P (operands[1])
&& REGNO (operands[0]) == REGNO (operands[1]))
{
! operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
return AS2 (xor%L0,%0,%0);
}
--- 2024,2030 ----
if (REG_P (operands[0]) && REG_P (operands[1])
&& REGNO (operands[0]) == REGNO (operands[1]))
{
! operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
return AS2 (xor%L0,%0,%0);
}
***************
*** 2061,2067 ****
#endif
}
! operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
output_asm_insn (AS2 (mov%L0,%0,%1), operands);
operands[0] = GEN_INT (31);
--- 2061,2067 ----
#endif
}
! operands[1] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
output_asm_insn (AS2 (mov%L0,%0,%1), operands);
operands[0] = GEN_INT (31);
***************
*** 3180,3186 ****
; xops[0] = operands[0];
; xops[1] = operands[1];
; xops[2] = operands[2];
! ; xops[3] = gen_rtx (MEM, SImode, stack_pointer_rtx);
; output_asm_insn (\"push%z1 %1\", xops);
; output_asm_insn (AS2 (add%z3,%2,%3), xops);
; RET;
--- 3180,3186 ----
; xops[0] = operands[0];
; xops[1] = operands[1];
; xops[2] = operands[2];
! ; xops[3] = gen_rtx_MEM (SImode, stack_pointer_rtx);
; output_asm_insn (\"push%z1 %1\", xops);
; output_asm_insn (AS2 (add%z3,%2,%3), xops);
; RET;
*************** byte_xor_operation:
*** 4595,4602 ****
output_asm_insn (AS2 (mov%L0,%1,%0), operands);
operands[1] = operands[0];
}
! operands[1] = gen_rtx (MULT, SImode, operands[1],
! GEN_INT (1 << INTVAL (operands[2])));
return AS2 (lea%L0,%a1,%0);
}
}
--- 4595,4602 ----
output_asm_insn (AS2 (mov%L0,%1,%0), operands);
operands[1] = operands[0];
}
! operands[1] = gen_rtx_MULT (SImode, operands[1],
! GEN_INT (1 << INTVAL (operands[2])));
return AS2 (lea%L0,%a1,%0);
}
}
*************** byte_xor_operation:
*** 5056,5062 ****
}
else
{
! operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]));
if (INTVAL (operands[2]))
output_asm_insn (AS2 (ror%L0,%2,%0), operands);
output_asm_insn (AS3 (shrd%L0,%1,%3,%0), operands);
--- 5056,5062 ----
}
else
{
! operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]));
if (INTVAL (operands[2]))
output_asm_insn (AS2 (ror%L0,%2,%0), operands);
output_asm_insn (AS3 (shrd%L0,%1,%3,%0), operands);
*************** byte_xor_operation:
*** 5489,5495 ****
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5489,5495 ----
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5529,5535 ****
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5529,5535 ----
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 5563,5569 ****
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5563,5569 ----
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 5615,5621 ****
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5615,5621 ----
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5666,5672 ****
return AS1 (je,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5666,5672 ----
return AS1 (je,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 5717,5723 ****
return AS1 (jb,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5717,5723 ----
return AS1 (jb,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5761,5767 ****
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5761,5767 ----
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 5783,5789 ****
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5783,5789 ----
else
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5805,5811 ****
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5805,5811 ----
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5836,5842 ****
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5836,5842 ----
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 5868,5874 ****
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
--- 5868,5874 ----
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
*************** byte_xor_operation:
*** 5900,5906 ****
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx (REG, SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
--- 5900,5906 ----
if (cc_prev_status.flags & CC_TEST_AX)
{
! operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
*************** byte_xor_operation:
*** 6446,6453 ****
value. */
emit_call_insn (TARGET_80387
! ? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
! operands[0], const0_rtx)
: gen_call (operands[0], const0_rtx));
for (i = 0; i < XVECLEN (operands[2], 0); i++)
--- 6446,6453 ----
value. */
emit_call_insn (TARGET_80387
! ? gen_call_value (gen_rtx_REG (XCmode, FIRST_FLOAT_REG),
! operands[0], const0_rtx)
: gen_call (operands[0], const0_rtx));
for (i = 0; i < XVECLEN (operands[2], 0); i++)
*************** byte_xor_operation:
*** 6710,6716 ****
operands[3] = gen_reg_rtx (SImode);
operands[5] = addr0;
! operands[0] = gen_rtx (MEM, BLKmode, addr0);
}")
;; It might seem that operand 0 could use predicate register_operand.
--- 6710,6716 ----
operands[3] = gen_reg_rtx (SImode);
operands[5] = addr0;
! operands[0] = gen_rtx_MEM (BLKmode, addr0);
}")
;; It might seem that operand 0 could use predicate register_operand.
*************** byte_xor_operation:
*** 6776,6783 ****
operands[5] = addr1;
operands[6] = addr2;
! operands[1] = gen_rtx (MEM, BLKmode, addr1);
! operands[2] = gen_rtx (MEM, BLKmode, addr2);
}")
--- 6776,6783 ----
operands[5] = addr1;
operands[6] = addr2;
! operands[1] = gen_rtx_MEM (BLKmode, addr1);
! operands[2] = gen_rtx_MEM (BLKmode, addr2);
}")
*************** byte_xor_operation:
*** 6841,6847 ****
cc_status.flags |= CC_NOT_SIGNED;
! xops[0] = gen_rtx (REG, QImode, 0);
xops[1] = CONST0_RTX (QImode);
output_asm_insn (\"cld\", operands);
--- 6841,6847 ----
cc_status.flags |= CC_NOT_SIGNED;
! xops[0] = gen_rtx_REG (QImode, 0);
xops[1] = CONST0_RTX (QImode);
output_asm_insn (\"cld\", operands);
Index: i386.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.9
diff -c -3 -p -r1.9 i386.c
*** i386.c 1998/01/26 22:59:56 1.9
--- i386.c 1998/02/09 23:49:26
*************** struct processor_costs pentiumpro_cost =
*** 100,106 ****
struct processor_costs *ix86_cost = &pentium_cost;
! #define AT_BP(mode) (gen_rtx (MEM, (mode), frame_pointer_rtx))
extern FILE *asm_out_file;
extern char *strcat ();
--- 100,106 ----
struct processor_costs *ix86_cost = &pentium_cost;
! #define AT_BP(mode) (gen_rtx_MEM ((mode), frame_pointer_rtx))
extern FILE *asm_out_file;
extern char *strcat ();
*************** function_arg (cum, mode, type, named)
*** 762,768 ****
case HImode:
case QImode:
if (words <= cum->nregs)
! ret = gen_rtx (REG, mode, cum->regno);
break;
}
--- 762,768 ----
case HImode:
case QImode:
if (words <= cum->nregs)
! ret = gen_rtx_REG (mode, cum->regno);
break;
}
*************** output_op_from_reg (src, template)
*** 832,842 ****
if (size > 2 * UNITS_PER_WORD)
{
! high = gen_rtx (REG, SImode, REGNO (src) + 2);
output_asm_insn (AS1 (push%L0,%0), &high);
}
! high = gen_rtx (REG, SImode, REGNO (src) + 1);
output_asm_insn (AS1 (push%L0,%0), &high);
}
--- 832,842 ----
if (size > 2 * UNITS_PER_WORD)
{
! high = gen_rtx_REG (SImode, REGNO (src) + 2);
output_asm_insn (AS1 (push%L0,%0), &high);
}
! high = gen_rtx_REG (SImode, REGNO (src) + 1);
output_asm_insn (AS1 (push%L0,%0), &high);
}
*************** output_to_reg (dest, dies, scratch_mem)
*** 906,912 ****
if (size > UNITS_PER_WORD)
{
! dest = gen_rtx (REG, SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
--- 906,912 ----
if (size > UNITS_PER_WORD)
{
! dest = gen_rtx_REG (SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
*************** output_to_reg (dest, dies, scratch_mem)
*** 918,924 ****
if (size > 2 * UNITS_PER_WORD)
{
! dest = gen_rtx (REG, SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
--- 918,924 ----
if (size > 2 * UNITS_PER_WORD)
{
! dest = gen_rtx_REG (SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
*************** output_move_double (operands)
*** 1072,1082 ****
operands[0] = XEXP (XEXP (operands[0], 0), 0);
asm_add (-size, operands[0]);
if (GET_MODE (operands[1]) == XFmode)
! operands[0] = gen_rtx (MEM, XFmode, operands[0]);
else if (GET_MODE (operands[0]) == DFmode)
! operands[0] = gen_rtx (MEM, DFmode, operands[0]);
else
! operands[0] = gen_rtx (MEM, DImode, operands[0]);
optype0 = OFFSOP;
}
--- 1072,1082 ----
operands[0] = XEXP (XEXP (operands[0], 0), 0);
asm_add (-size, operands[0]);
if (GET_MODE (operands[1]) == XFmode)
! operands[0] = gen_rtx_MEM (XFmode, operands[0]);
else if (GET_MODE (operands[0]) == DFmode)
! operands[0] = gen_rtx_MEM (DFmode, operands[0]);
else
! operands[0] = gen_rtx_MEM (DImode, operands[0]);
optype0 = OFFSOP;
}
*************** output_move_double (operands)
*** 1086,1096 ****
operands[1] = XEXP (XEXP (operands[1], 0), 0);
asm_add (-size, operands[1]);
if (GET_MODE (operands[1]) == XFmode)
! operands[1] = gen_rtx (MEM, XFmode, operands[1]);
else if (GET_MODE (operands[1]) == DFmode)
! operands[1] = gen_rtx (MEM, DFmode, operands[1]);
else
! operands[1] = gen_rtx (MEM, DImode, operands[1]);
optype1 = OFFSOP;
}
--- 1086,1096 ----
operands[1] = XEXP (XEXP (operands[1], 0), 0);
asm_add (-size, operands[1]);
if (GET_MODE (operands[1]) == XFmode)
! operands[1] = gen_rtx_MEM (XFmode, operands[1]);
else if (GET_MODE (operands[1]) == DFmode)
! operands[1] = gen_rtx_MEM (DFmode, operands[1]);
else
! operands[1] = gen_rtx_MEM (DImode, operands[1]);
optype1 = OFFSOP;
}
*************** output_move_double (operands)
*** 1116,1123 ****
{
if (optype0 == REGOP)
{
! middlehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
! latehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 2);
}
else if (optype0 == OFFSOP)
{
--- 1116,1123 ----
{
if (optype0 == REGOP)
{
! middlehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
! latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 2);
}
else if (optype0 == OFFSOP)
{
*************** output_move_double (operands)
*** 1132,1139 ****
if (optype1 == REGOP)
{
! middlehalf[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
! latehalf[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 2);
}
else if (optype1 == OFFSOP)
{
--- 1132,1139 ----
if (optype1 == REGOP)
{
! middlehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1);
! latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 2);
}
else if (optype1 == OFFSOP)
{
*************** output_move_double (operands)
*** 1168,1181 ****
/* Size is not 12. */
if (optype0 == REGOP)
! latehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
else if (optype0 == OFFSOP)
latehalf[0] = adj_offsettable_operand (operands[0], 4);
else
latehalf[0] = operands[0];
if (optype1 == REGOP)
! latehalf[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
else if (optype1 == OFFSOP)
latehalf[1] = adj_offsettable_operand (operands[1], 4);
else if (optype1 == CNSTOP)
--- 1168,1181 ----
/* Size is not 12. */
if (optype0 == REGOP)
! latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
else if (optype0 == OFFSOP)
latehalf[0] = adj_offsettable_operand (operands[0], 4);
else
latehalf[0] = operands[0];
if (optype1 == REGOP)
! latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1);
else if (optype1 == OFFSOP)
latehalf[1] = adj_offsettable_operand (operands[1], 4);
else if (optype1 == CNSTOP)
*************** output_move_double (operands)
*** 1213,1225 ****
output_asm_insn (AS2 (lea%L0,%a1,%0), xops);
if (GET_MODE (operands[1]) == XFmode)
{
! operands[1] = gen_rtx (MEM, XFmode, latehalf[0]);
middlehalf[1] = adj_offsettable_operand (operands[1], size-8);
latehalf[1] = adj_offsettable_operand (operands[1], size-4);
}
else
{
! operands[1] = gen_rtx (MEM, DImode, latehalf[0]);
latehalf[1] = adj_offsettable_operand (operands[1], size-4);
}
}
--- 1213,1225 ----
output_asm_insn (AS2 (lea%L0,%a1,%0), xops);
if (GET_MODE (operands[1]) == XFmode)
{
! operands[1] = gen_rtx_MEM (XFmode, latehalf[0]);
middlehalf[1] = adj_offsettable_operand (operands[1], size-8);
latehalf[1] = adj_offsettable_operand (operands[1], size-4);
}
else
{
! operands[1] = gen_rtx_MEM (DImode, latehalf[0]);
latehalf[1] = adj_offsettable_operand (operands[1], size-4);
}
}
*************** load_pic_register (do_rtl)
*** 1946,1952 ****
LABEL_NAME (pic_label_rtx) = pic_label_name;
}
! xops[1] = gen_rtx (MEM, QImode,
gen_rtx (SYMBOL_REF, Pmode,
LABEL_NAME (pic_label_rtx)));
--- 1946,1952 ----
LABEL_NAME (pic_label_rtx) = pic_label_name;
}
! xops[1] = gen_rtx_MEM (QImode,
gen_rtx (SYMBOL_REF, Pmode,
LABEL_NAME (pic_label_rtx)));
*************** ix86_prologue (do_rtl)
*** 2018,2024 ****
if (do_rtl)
{
insn = emit_insn (gen_rtx (SET, VOIDmode,
! gen_rtx (MEM, SImode,
gen_rtx (PRE_DEC, SImode,
stack_pointer_rtx)),
frame_pointer_rtx));
--- 2018,2024 ----
if (do_rtl)
{
insn = emit_insn (gen_rtx (SET, VOIDmode,
! gen_rtx_MEM (SImode,
gen_rtx (PRE_DEC, SImode,
stack_pointer_rtx)),
frame_pointer_rtx));
*************** ix86_prologue (do_rtl)
*** 2078,2090 ****
}
else
{
! xops[3] = gen_rtx (REG, SImode, 0);
if (do_rtl)
emit_move_insn (xops[3], xops[2]);
else
output_asm_insn (AS2 (mov%L0,%2,%3), xops);
! xops[3] = gen_rtx (MEM, FUNCTION_MODE,
gen_rtx (SYMBOL_REF, Pmode, "_alloca"));
if (do_rtl)
--- 2078,2090 ----
}
else
{
! xops[3] = gen_rtx_REG (SImode, 0);
if (do_rtl)
emit_move_insn (xops[3], xops[2]);
else
output_asm_insn (AS2 (mov%L0,%2,%3), xops);
! xops[3] = gen_rtx_MEM (FUNCTION_MODE,
gen_rtx (SYMBOL_REF, Pmode, "_alloca"));
if (do_rtl)
*************** ix86_prologue (do_rtl)
*** 2108,2118 ****
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx (REG, SImode, regno);
if (do_rtl)
{
insn = emit_insn (gen_rtx (SET, VOIDmode,
! gen_rtx (MEM, SImode,
gen_rtx (PRE_DEC, SImode,
stack_pointer_rtx)),
xops[0]));
--- 2108,2118 ----
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx_REG (SImode, regno);
if (do_rtl)
{
insn = emit_insn (gen_rtx (SET, VOIDmode,
! gen_rtx_MEM (SImode,
gen_rtx (PRE_DEC, SImode,
stack_pointer_rtx)),
xops[0]));
*************** ix86_epilogue (do_rtl)
*** 2269,2275 ****
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx (REG, SImode, regno);
if (do_rtl)
emit_insn (gen_pop (xops[0]));
--- 2269,2275 ----
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx_REG (SImode, regno);
if (do_rtl)
emit_insn (gen_pop (xops[0]));
*************** ix86_epilogue (do_rtl)
*** 2283,2289 ****
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx (REG, SImode, regno);
xops[1] = adj_offsettable_operand (AT_BP (Pmode), offset);
if (do_rtl)
--- 2283,2289 ----
if ((regs_ever_live[regno] && ! call_used_regs[regno])
|| (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
{
! xops[0] = gen_rtx_REG (SImode, regno);
xops[1] = adj_offsettable_operand (AT_BP (Pmode), offset);
if (do_rtl)
*************** ix86_epilogue (do_rtl)
*** 2353,2359 ****
if (current_function_pops_args >= 32768)
{
/* ??? Which register to use here? */
! xops[0] = gen_rtx (REG, SImode, 2);
if (do_rtl)
{
--- 2353,2359 ----
if (current_function_pops_args >= 32768)
{
/* ??? Which register to use here? */
! xops[0] = gen_rtx_REG (SImode, 2);
if (do_rtl)
{
*************** legitimize_pic_address (orig, reg)
*** 2678,2684 ****
|| GET_CODE (addr) == LABEL_REF)
new = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
else
! new = gen_rtx (MEM, Pmode,
gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig));
emit_move_insn (reg, new);
--- 2678,2684 ----
|| GET_CODE (addr) == LABEL_REF)
new = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
else
! new = gen_rtx_MEM (Pmode,
gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig));
emit_move_insn (reg, new);
*************** output_pic_addr_const (file, x, code)
*** 2973,2979 ****
break;
case CONST_INT:
! fprintf (file, "%d", INTVAL (x));
break;
case CONST:
--- 2973,2979 ----
break;
case CONST_INT:
! fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
break;
case CONST:
*************** output_pic_addr_const (file, x, code)
*** 2987,2996 ****
{
/* We can use %d if the number is <32 bits and positive. */
if (CONST_DOUBLE_HIGH (x) || CONST_DOUBLE_LOW (x) < 0)
! fprintf (file, "0x%x%08x",
! CONST_DOUBLE_HIGH (x), CONST_DOUBLE_LOW (x));
else
! fprintf (file, "%d", CONST_DOUBLE_LOW (x));
}
else
/* We can't handle floating point constants;
--- 2987,2997 ----
{
/* We can use %d if the number is <32 bits and positive. */
if (CONST_DOUBLE_HIGH (x) || CONST_DOUBLE_LOW (x) < 0)
! fprintf (file, "0x%lx%08lx",
! (unsigned long) CONST_DOUBLE_HIGH (x),
! (unsigned long) CONST_DOUBLE_LOW (x));
else
! fprintf (file, HOST_WIDE_INT_PRINT_DEC, CONST_DOUBLE_LOW (x));
}
else
/* We can't handle floating point constants;
*************** print_operand_address (file, addr)
*** 3509,3515 ****
if (GET_CODE (addr) == CONST_INT
&& INTVAL (addr) < 0x8000
&& INTVAL (addr) >= -0x8000)
! fprintf (file, "%d", INTVAL (addr));
else
{
if (flag_pic)
--- 3510,3516 ----
if (GET_CODE (addr) == CONST_INT
&& INTVAL (addr) < 0x8000
&& INTVAL (addr) >= -0x8000)
! fprintf (file, "%d", (int) INTVAL (addr));
else
{
if (flag_pic)
*************** split_di (operands, num, lo_half, hi_hal
*** 3671,3678 ****
{
if (GET_CODE (operands[num]) == REG)
{
! lo_half[num] = gen_rtx (REG, SImode, REGNO (operands[num]));
! hi_half[num] = gen_rtx (REG, SImode, REGNO (operands[num]) + 1);
}
else if (CONSTANT_P (operands[num]))
split_double (operands[num], &lo_half[num], &hi_half[num]);
--- 3672,3679 ----
{
if (GET_CODE (operands[num]) == REG)
{
! lo_half[num] = gen_rtx_REG (SImode, REGNO (operands[num]));
! hi_half[num] = gen_rtx_REG (SImode, REGNO (operands[num]) + 1);
}
else if (CONSTANT_P (operands[num]))
split_double (operands[num], &lo_half[num], &hi_half[num]);
*************** output_fp_cc0_set (insn)
*** 4040,4046 ****
rtx next;
enum rtx_code code;
! xops[0] = gen_rtx (REG, HImode, 0);
output_asm_insn (AS1 (fnsts%W0,%0), xops);
if (! TARGET_IEEE_FP)
--- 4041,4047 ----
rtx next;
enum rtx_code code;
! xops[0] = gen_rtx_REG (HImode, 0);
output_asm_insn (AS1 (fnsts%W0,%0), xops);
if (! TARGET_IEEE_FP)
*************** output_fp_cc0_set (insn)
*** 4099,4105 ****
else
abort ();
! xops[0] = gen_rtx (REG, QImode, 0);
switch (code)
{
--- 4100,4106 ----
else
abort ();
! xops[0] = gen_rtx_REG (QImode, 0);
switch (code)
{
*************** output_strlen_unroll (operands)
*** 4920,4926 ****
output_asm_insn (AS1 (je,%l8), xops);
}
! xops[13] = gen_rtx (MEM, QImode, xops[0]);
/* Now compare the bytes; compare with the high part of a q-reg
gives shorter code. */
--- 4921,4927 ----
output_asm_insn (AS1 (je,%l8), xops);
}
! xops[13] = gen_rtx_MEM (QImode, xops[0]);
/* Now compare the bytes; compare with the high part of a q-reg
gives shorter code. */
*************** output_strlen_unroll (operands)
*** 4976,4982 ****
speed up. */
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L", CODE_LABEL_NUMBER (xops[8]));
! xops[13] = gen_rtx (MEM, SImode, xops[0]);
output_asm_insn (AS2 (mov%L1,%13,%1), xops);
if (QI_REG_P (xops[1]))
--- 4977,4983 ----
speed up. */
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L", CODE_LABEL_NUMBER (xops[8]));
! xops[13] = gen_rtx_MEM (SImode, xops[0]);
output_asm_insn (AS2 (mov%L1,%13,%1), xops);
if (QI_REG_P (xops[1]))
Index: i386.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.h,v
retrieving revision 1.8
diff -c -3 -p -r1.8 i386.h
*** i386.h 1998/01/26 22:59:58 1.8
--- i386.h 1998/02/09 23:49:58
*************** enum reg_class
*** 951,964 ****
If the precise function being called is known, FUNC is its FUNCTION_DECL;
otherwise, FUNC is 0. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
! gen_rtx (REG, TYPE_MODE (VALTYPE), \
VALUE_REGNO (TYPE_MODE (VALTYPE)))
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
#define LIBCALL_VALUE(MODE) \
! gen_rtx (REG, MODE, VALUE_REGNO (MODE))
/* Define the size of the result block used for communication between
untyped_call and untyped_return. The block contains a DImode value
--- 951,964 ----
If the precise function being called is known, FUNC is its FUNCTION_DECL;
otherwise, FUNC is 0. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
! gen_rtx_REG (TYPE_MODE (VALTYPE), \
VALUE_REGNO (TYPE_MODE (VALTYPE)))
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
#define LIBCALL_VALUE(MODE) \
! gen_rtx_REG (MODE, VALUE_REGNO (MODE))
/* Define the size of the result block used for communication between
untyped_call and untyped_return. The block contains a DImode value
*************** do \
*** 1151,1159 ****
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
! xops[1] = gen_rtx (SYMBOL_REF, VOIDmode, block_table); \
xops[5] = stack_pointer_rtx; \
! xops[7] = gen_rtx (REG, Pmode, 0); /* eax */ \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
--- 1151,1159 ----
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
! xops[1] = gen_rtx_SYMBOL_REF (VOIDmode, block_table); \
xops[5] = stack_pointer_rtx; \
! xops[7] = gen_rtx_REG (Pmode, 0); /* eax */ \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
*************** do \
*** 1163,1169 ****
case 2: \
\
xops[2] = GEN_INT ((BLOCK_OR_LABEL)); \
! xops[3] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, "__bb_init_trace_func")); \
xops[6] = GEN_INT (8); \
\
output_asm_insn (AS1(push%L2,%2), xops); \
--- 1163,1169 ----
case 2: \
\
xops[2] = GEN_INT ((BLOCK_OR_LABEL)); \
! xops[3] = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (VOIDmode, "__bb_init_trace_func")); \
xops[6] = GEN_INT (8); \
\
output_asm_insn (AS1(push%L2,%2), xops); \
*************** do \
*** 1185,1193 ****
ASM_GENERATE_INTERNAL_LABEL (false_label, "LPBZ", num_func); \
\
xops[0] = const0_rtx; \
! xops[2] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, false_label)); \
! xops[3] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, "__bb_init_func")); \
! xops[4] = gen_rtx (MEM, Pmode, xops[1]); \
xops[6] = GEN_INT (4); \
\
CONSTANT_POOL_ADDRESS_P (xops[2]) = TRUE; \
--- 1185,1193 ----
ASM_GENERATE_INTERNAL_LABEL (false_label, "LPBZ", num_func); \
\
xops[0] = const0_rtx; \
! xops[2] = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (VOIDmode, false_label)); \
! xops[3] = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (VOIDmode, "__bb_init_func")); \
! xops[4] = gen_rtx_MEM (Pmode, xops[1]); \
xops[6] = GEN_INT (4); \
\
CONSTANT_POOL_ADDRESS_P (xops[2]) = TRUE; \
*************** do \
*** 1293,1305 ****
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
! xops[1] = gen_rtx (SYMBOL_REF, VOIDmode, block_table); \
xops[2] = GEN_INT ((BLOCKNO)); \
! xops[3] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, "__bb_trace_func")); \
! xops[4] = gen_rtx (SYMBOL_REF, VOIDmode, "__bb"); \
xops[5] = plus_constant (xops[4], 4); \
! xops[0] = gen_rtx (MEM, SImode, xops[4]); \
! xops[6] = gen_rtx (MEM, SImode, xops[5]); \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
--- 1293,1305 ----
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
! xops[1] = gen_rtx_SYMBOL_REF (VOIDmode, block_table); \
xops[2] = GEN_INT ((BLOCKNO)); \
! xops[3] = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (VOIDmode, "__bb_trace_func")); \
! xops[4] = gen_rtx_SYMBOL_REF (VOIDmode, "__bb"); \
xops[5] = plus_constant (xops[4], 4); \
! xops[0] = gen_rtx_MEM (SImode, xops[4]); \
! xops[6] = gen_rtx_MEM (SImode, xops[5]); \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
*************** do \
*** 1307,1313 ****
output_asm_insn (AS2(mov%L0,%2,%0), xops); \
if (flag_pic) \
{ \
! xops[7] = gen_rtx (REG, Pmode, 0); /* eax */ \
output_asm_insn (AS1(push%L7,%7), xops); \
output_asm_insn (AS2(lea%L7,%a1,%7), xops); \
output_asm_insn (AS2(mov%L6,%7,%6), xops); \
--- 1307,1313 ----
output_asm_insn (AS2(mov%L0,%2,%0), xops); \
if (flag_pic) \
{ \
! xops[7] = gen_rtx_REG (Pmode, 0); /* eax */ \
output_asm_insn (AS1(push%L7,%7), xops); \
output_asm_insn (AS2(lea%L7,%a1,%7), xops); \
output_asm_insn (AS2(mov%L6,%7,%6), xops); \
*************** do \
*** 1323,1338 ****
default: \
\
ASM_GENERATE_INTERNAL_LABEL (counts, "LPBX", 2); \
! cnt_rtx = gen_rtx (SYMBOL_REF, VOIDmode, counts); \
SYMBOL_REF_FLAG (cnt_rtx) = TRUE; \
\
if (BLOCKNO) \
cnt_rtx = plus_constant (cnt_rtx, (BLOCKNO)*4); \
\
if (flag_pic) \
! cnt_rtx = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, cnt_rtx); \
\
! xops[0] = gen_rtx (MEM, SImode, cnt_rtx); \
output_asm_insn (AS1(inc%L0,%0), xops); \
\
break; \
--- 1323,1338 ----
default: \
\
ASM_GENERATE_INTERNAL_LABEL (counts, "LPBX", 2); \
! cnt_rtx = gen_rtx_SYMBOL_REF (VOIDmode, counts); \
SYMBOL_REF_FLAG (cnt_rtx) = TRUE; \
\
if (BLOCKNO) \
cnt_rtx = plus_constant (cnt_rtx, (BLOCKNO)*4); \
\
if (flag_pic) \
! cnt_rtx = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, cnt_rtx); \
\
! xops[0] = gen_rtx_MEM (SImode, cnt_rtx); \
output_asm_insn (AS1(inc%L0,%0), xops); \
\
break; \
*************** do \
*** 1368,1374 ****
{ \
rtx xops[1]; \
\
! xops[0] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, "__bb_trace_ret")); \
\
output_asm_insn (AS1(call,%P0), xops); \
\
--- 1368,1374 ----
{ \
rtx xops[1]; \
\
! xops[0] = gen_rtx_MEM (Pmode, gen_rtx_SYMBOL_REF (VOIDmode, "__bb_trace_ret")); \
\
output_asm_insn (AS1(call,%P0), xops); \
\
*************** do { \
*** 1476,1483 ****
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
{ \
! emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 1)), CXT); \
! emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 6)), FNADDR); \
}
/* Definitions for register eliminations.
--- 1476,1483 ----
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
{ \
! emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 1)), CXT); \
! emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 6)), FNADDR); \
}
/* Definitions for register eliminations.
*************** number as al, and ax.
*** 2372,2384 ****
/* Before the prologue, RA is at 0(%esp). */
#define INCOMING_RETURN_ADDR_RTX \
! gen_rtx (MEM, VOIDmode, gen_rtx (REG, VOIDmode, STACK_POINTER_REGNUM))
/* After the prologue, RA is at -4(AP) in the current frame. */
#define RETURN_ADDR_RTX(COUNT, FRAME) \
((COUNT) == 0 \
! ? gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, arg_pointer_rtx, GEN_INT(-4)))\
! : gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, (FRAME), GEN_INT(4))))
/* PC is dbx register 8; let's use that column for RA. */
#define DWARF_FRAME_RETURN_COLUMN 8
--- 2372,2384 ----
/* Before the prologue, RA is at 0(%esp). */
#define INCOMING_RETURN_ADDR_RTX \
! gen_rtx_MEM (VOIDmode, gen_rtx_REG (VOIDmode, STACK_POINTER_REGNUM))
/* After the prologue, RA is at -4(AP) in the current frame. */
#define RETURN_ADDR_RTX(COUNT, FRAME) \
((COUNT) == 0 \
! ? gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, arg_pointer_rtx, GEN_INT(-4)))\
! : gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, (FRAME), GEN_INT(4))))
/* PC is dbx register 8; let's use that column for RA. */
#define DWARF_FRAME_RETURN_COLUMN 8
*************** number as al, and ax.
*** 2397,2406 ****
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
! if (sizeof (int) == sizeof (long)) \
! fprintf (FILE, "%s 0x%x,0x%x\n", ASM_LONG, l[0], l[1]); \
! else \
! fprintf (FILE, "%s 0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
} while (0)
/* This is how to output a `long double' extended real constant. */
--- 2397,2403 ----
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
! fprintf (FILE, "%s 0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
} while (0)
/* This is how to output a `long double' extended real constant. */
*************** do { long l[2]; \
*** 2409,2418 ****
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
! if (sizeof (int) == sizeof (long)) \
! fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, l[0], l[1], l[2]); \
! else \
! fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
} while (0)
/* This is how to output an assembler line defining a `float' constant. */
--- 2406,2412 ----
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
! fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
} while (0)
/* This is how to output an assembler line defining a `float' constant. */
*************** do { long l[3]; \
*** 2420,2429 ****
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
! if (sizeof (int) == sizeof (long)) \
! fprintf ((FILE), "%s 0x%x\n", ASM_LONG, l); \
! else \
! fprintf ((FILE), "%s 0x%lx\n", ASM_LONG, l); \
} while (0)
/* Store in OUTPUT a string (made with alloca) containing
--- 2414,2420 ----
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
! fprintf ((FILE), "%s 0x%lx\n", ASM_LONG, l); \
} while (0)
/* Store in OUTPUT a string (made with alloca) containing
*************** extern char *qi_high_reg_name[];
*** 2631,2637 ****
#define ASM_OPERAND_LETTER '#'
#define RET return ""
! #define AT_SP(mode) (gen_rtx (MEM, (mode), stack_pointer_rtx))
/* Helper macros to expand a binary/unary operator if needed */
#define IX86_EXPAND_BINARY_OPERATOR(OP, MODE, OPERANDS) \
--- 2622,2628 ----
#define ASM_OPERAND_LETTER '#'
#define RET return ""
! #define AT_SP(mode) (gen_rtx_MEM ((mode), stack_pointer_rtx))
/* Helper macros to expand a binary/unary operator if needed */
#define IX86_EXPAND_BINARY_OPERATOR(OP, MODE, OPERANDS) \