aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/cygwin32.h2
-rw-r--r--gcc/config/i386/i386.c195
-rw-r--r--gcc/config/i386/i386.h68
-rw-r--r--gcc/config/i386/i386.md92
-rw-r--r--gcc/config/i386/mingw32.h8
-rw-r--r--gcc/config/i386/osfrose.h8
-rw-r--r--gcc/config/i386/win-nt.h4
7 files changed, 192 insertions, 185 deletions
diff --git a/gcc/config/i386/cygwin32.h b/gcc/config/i386/cygwin32.h
index 0e162869603..d639847c3b3 100644
--- a/gcc/config/i386/cygwin32.h
+++ b/gcc/config/i386/cygwin32.h
@@ -144,7 +144,7 @@ do \
if (lookup_attribute ("stdcall", \
TYPE_ATTRIBUTES (TREE_TYPE (DECL)))) \
XEXP (DECL_RTL (DECL), 0) = \
- gen_rtx (SYMBOL_REF, Pmode, gen_stdcall_suffix (DECL)); \
+ gen_rtx_SYMBOL_REF (Pmode, gen_stdcall_suffix (DECL)); \
} \
while (0)
#endif
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6558bb9dfde..244d28a9521 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -19,9 +19,8 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
-#include <stdio.h>
+#include "system.h"
#include <setjmp.h>
-#include <ctype.h>
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -100,7 +99,7 @@ struct processor_costs pentiumpro_cost = {
struct processor_costs *ix86_cost = &pentium_cost;
-#define AT_BP(mode) (gen_rtx (MEM, (mode), frame_pointer_rtx))
+#define AT_BP(mode) (gen_rtx_MEM ((mode), frame_pointer_rtx))
extern FILE *asm_out_file;
extern char *strcat ();
@@ -761,7 +760,7 @@ function_arg (cum, mode, type, named)
case HImode:
case QImode:
if (words <= cum->nregs)
- ret = gen_rtx (REG, mode, cum->regno);
+ ret = gen_rtx_REG (mode, cum->regno);
break;
}
@@ -831,11 +830,11 @@ output_op_from_reg (src, template)
if (size > 2 * UNITS_PER_WORD)
{
- high = gen_rtx (REG, SImode, REGNO (src) + 2);
+ high = gen_rtx_REG (SImode, REGNO (src) + 2);
output_asm_insn (AS1 (push%L0,%0), &high);
}
- high = gen_rtx (REG, SImode, REGNO (src) + 1);
+ high = gen_rtx_REG (SImode, REGNO (src) + 1);
output_asm_insn (AS1 (push%L0,%0), &high);
}
@@ -905,7 +904,7 @@ output_to_reg (dest, dies, scratch_mem)
if (size > UNITS_PER_WORD)
{
- dest = gen_rtx (REG, SImode, REGNO (dest) + 1);
+ dest = gen_rtx_REG (SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
@@ -917,7 +916,7 @@ output_to_reg (dest, dies, scratch_mem)
if (size > 2 * UNITS_PER_WORD)
{
- dest = gen_rtx (REG, SImode, REGNO (dest) + 1);
+ dest = gen_rtx_REG (SImode, REGNO (dest) + 1);
if (! scratch_mem)
output_asm_insn (AS1 (pop%L0,%0), &dest);
else
@@ -1071,11 +1070,11 @@ output_move_double (operands)
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]);
+ operands[0] = gen_rtx_MEM (XFmode, operands[0]);
else if (GET_MODE (operands[0]) == DFmode)
- operands[0] = gen_rtx (MEM, DFmode, operands[0]);
+ operands[0] = gen_rtx_MEM (DFmode, operands[0]);
else
- operands[0] = gen_rtx (MEM, DImode, operands[0]);
+ operands[0] = gen_rtx_MEM (DImode, operands[0]);
optype0 = OFFSOP;
}
@@ -1085,11 +1084,11 @@ output_move_double (operands)
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]);
+ operands[1] = gen_rtx_MEM (XFmode, operands[1]);
else if (GET_MODE (operands[1]) == DFmode)
- operands[1] = gen_rtx (MEM, DFmode, operands[1]);
+ operands[1] = gen_rtx_MEM (DFmode, operands[1]);
else
- operands[1] = gen_rtx (MEM, DImode, operands[1]);
+ operands[1] = gen_rtx_MEM (DImode, operands[1]);
optype1 = OFFSOP;
}
@@ -1115,8 +1114,8 @@ output_move_double (operands)
{
if (optype0 == REGOP)
{
- middlehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
- latehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 2);
+ middlehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
+ latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 2);
}
else if (optype0 == OFFSOP)
{
@@ -1131,8 +1130,8 @@ output_move_double (operands)
if (optype1 == REGOP)
{
- middlehalf[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
- latehalf[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 2);
+ middlehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1);
+ latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 2);
}
else if (optype1 == OFFSOP)
{
@@ -1167,14 +1166,14 @@ output_move_double (operands)
/* Size is not 12. */
if (optype0 == REGOP)
- latehalf[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
+ 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);
+ 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)
@@ -1212,13 +1211,13 @@ output_move_double (operands)
output_asm_insn (AS2 (lea%L0,%a1,%0), xops);
if (GET_MODE (operands[1]) == XFmode)
{
- operands[1] = gen_rtx (MEM, XFmode, latehalf[0]);
+ 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]);
+ operands[1] = gen_rtx_MEM (DImode, latehalf[0]);
latehalf[1] = adj_offsettable_operand (operands[1], size-4);
}
}
@@ -1945,17 +1944,17 @@ load_pic_register (do_rtl)
LABEL_NAME (pic_label_rtx) = pic_label_name;
}
- xops[1] = gen_rtx (MEM, QImode,
- gen_rtx (SYMBOL_REF, Pmode,
- LABEL_NAME (pic_label_rtx)));
-
+ xops[1] = gen_rtx_MEM (QImode,
+ gen_rtx_SYMBOL_REF (Pmode,
+ LABEL_NAME (pic_label_rtx)));
+
if (do_rtl)
{
emit_insn (gen_prologue_get_pc (xops[0], xops[1]));
- emit_insn (gen_prologue_set_got (xops[0],
- gen_rtx (SYMBOL_REF, Pmode,
- "$_GLOBAL_OFFSET_TABLE_"),
- xops[1]));
+ emit_insn (gen_prologue_set_got
+ (xops[0],
+ gen_rtx_SYMBOL_REF (Pmode, "$_GLOBAL_OFFSET_TABLE_"),
+ xops[1]));
}
else
{
@@ -2016,11 +2015,12 @@ ix86_prologue (do_rtl)
{
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));
+ insn = emit_insn (gen_rtx_SET
+ (VOIDmode,
+ gen_rtx_MEM (SImode,
+ gen_rtx_PRE_DEC (SImode,
+ stack_pointer_rtx)),
+ frame_pointer_rtx));
RTX_FRAME_RELATED_P (insn) = 1;
insn = emit_move_insn (xops[1], xops[0]);
@@ -2077,17 +2077,17 @@ ix86_prologue (do_rtl)
}
else
{
- xops[3] = gen_rtx (REG, SImode, 0);
+ 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"));
+ xops[3] = gen_rtx_MEM (FUNCTION_MODE,
+ gen_rtx_SYMBOL_REF (Pmode, "_alloca"));
if (do_rtl)
- emit_call_insn (gen_rtx (CALL, VOIDmode, xops[3], const0_rtx));
+ emit_call_insn (gen_rtx_CALL (VOIDmode, xops[3], const0_rtx));
else
output_asm_insn (AS1 (call,%P3), xops);
}
@@ -2107,14 +2107,16 @@ ix86_prologue (do_rtl)
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[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]));
+ insn
+ = emit_insn (gen_rtx_SET
+ (VOIDmode,
+ gen_rtx_MEM (SImode,
+ gen_rtx_PRE_DEC (SImode,
+ stack_pointer_rtx)),
+ xops[0]));
RTX_FRAME_RELATED_P (insn) = 1;
}
@@ -2268,7 +2270,7 @@ ix86_epilogue (do_rtl)
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[0] = gen_rtx_REG (SImode, regno);
if (do_rtl)
emit_insn (gen_pop (xops[0]));
@@ -2282,7 +2284,7 @@ ix86_epilogue (do_rtl)
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[0] = gen_rtx_REG (SImode, regno);
xops[1] = adj_offsettable_operand (AT_BP (Pmode), offset);
if (do_rtl)
@@ -2328,8 +2330,8 @@ ix86_epilogue (do_rtl)
xops[0] = GEN_INT (tsize);
if (do_rtl)
- emit_insn (gen_rtx (SET, VOIDmode, xops[2],
- gen_rtx (PLUS, SImode, xops[2], xops[0])));
+ emit_insn (gen_rtx_SET (VOIDmode, xops[2],
+ gen_rtx_PLUS (SImode, xops[2], xops[0])));
else
output_asm_insn (AS2 (add%L2,%0,%2), xops);
}
@@ -2352,13 +2354,14 @@ ix86_epilogue (do_rtl)
if (current_function_pops_args >= 32768)
{
/* ??? Which register to use here? */
- xops[0] = gen_rtx (REG, SImode, 2);
+ xops[0] = gen_rtx_REG (SImode, 2);
if (do_rtl)
{
emit_insn (gen_pop (xops[0]));
- emit_insn (gen_rtx (SET, VOIDmode, xops[2],
- gen_rtx (PLUS, SImode, xops[1], xops[2])));
+ emit_insn (gen_rtx_SET (VOIDmode, xops[2],
+ gen_rtx_PLUS (SImode, xops[1],
+ xops[2])));
emit_jump_insn (xops[0]);
}
else
@@ -2675,10 +2678,11 @@ legitimize_pic_address (orig, reg)
if ((GET_CODE (addr) == SYMBOL_REF && SYMBOL_REF_FLAG (addr))
|| GET_CODE (addr) == LABEL_REF)
- new = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
+ 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));
+ new = gen_rtx_MEM (Pmode,
+ gen_rtx_PLUS (Pmode, pic_offset_table_rtx,
+ orig));
emit_move_insn (reg, new);
}
@@ -2712,11 +2716,11 @@ legitimize_pic_address (orig, reg)
if (GET_CODE (addr) == PLUS && CONSTANT_P (XEXP (addr, 1)))
{
- base = gen_rtx (PLUS, Pmode, base, XEXP (addr, 0));
+ base = gen_rtx_PLUS (Pmode, base, XEXP (addr, 0));
addr = XEXP (addr, 1);
}
- return gen_rtx (PLUS, Pmode, base, addr);
+ return gen_rtx_PLUS (Pmode, base, addr);
}
return new;
}
@@ -2782,8 +2786,8 @@ legitimize_address (x, oldx, mode)
&& (log = (unsigned)exact_log2 (INTVAL (XEXP (x, 1)))) < 4)
{
changed = 1;
- x = gen_rtx (MULT, Pmode, force_reg (Pmode, XEXP (x, 0)),
- GEN_INT (1 << log));
+ x = gen_rtx_MULT (Pmode, force_reg (Pmode, XEXP (x, 0)),
+ GEN_INT (1 << log));
}
if (GET_CODE (x) == PLUS)
@@ -2795,9 +2799,9 @@ legitimize_address (x, oldx, mode)
&& (log = (unsigned)exact_log2 (INTVAL (XEXP (XEXP (x, 0), 1)))) < 4)
{
changed = 1;
- XEXP (x, 0) = gen_rtx (MULT, Pmode,
- force_reg (Pmode, XEXP (XEXP (x, 0), 0)),
- GEN_INT (1 << log));
+ XEXP (x, 0) = gen_rtx_MULT (Pmode,
+ force_reg (Pmode, XEXP (XEXP (x, 0), 0)),
+ GEN_INT (1 << log));
}
if (GET_CODE (XEXP (x, 1)) == ASHIFT
@@ -2805,9 +2809,9 @@ legitimize_address (x, oldx, mode)
&& (log = (unsigned)exact_log2 (INTVAL (XEXP (XEXP (x, 1), 1)))) < 4)
{
changed = 1;
- XEXP (x, 1) = gen_rtx (MULT, Pmode,
- force_reg (Pmode, XEXP (XEXP (x, 1), 0)),
- GEN_INT (1 << log));
+ XEXP (x, 1) = gen_rtx_MULT (Pmode,
+ force_reg (Pmode, XEXP (XEXP (x, 1), 0)),
+ GEN_INT (1 << log));
}
/* Put multiply first if it isn't already. */
@@ -2826,10 +2830,10 @@ legitimize_address (x, oldx, mode)
if (GET_CODE (XEXP (x, 0)) == MULT && GET_CODE (XEXP (x, 1)) == PLUS)
{
changed = 1;
- x = gen_rtx (PLUS, Pmode,
- gen_rtx (PLUS, Pmode, XEXP (x, 0),
- XEXP (XEXP (x, 1), 0)),
- XEXP (XEXP (x, 1), 1));
+ x = gen_rtx_PLUS (Pmode,
+ gen_rtx_PLUS (Pmode, XEXP (x, 0),
+ XEXP (XEXP (x, 1), 0)),
+ XEXP (XEXP (x, 1), 1));
}
/* Canonicalize
@@ -2858,10 +2862,10 @@ legitimize_address (x, oldx, mode)
if (constant)
{
changed = 1;
- x = gen_rtx (PLUS, Pmode,
- gen_rtx (PLUS, Pmode, XEXP (XEXP (x, 0), 0),
- XEXP (XEXP (XEXP (x, 0), 1), 0)),
- plus_constant (other, INTVAL (constant)));
+ x = gen_rtx_PLUS (Pmode,
+ gen_rtx_PLUS (Pmode, XEXP (XEXP (x, 0), 0),
+ XEXP (XEXP (XEXP (x, 0), 1), 0)),
+ plus_constant (other, INTVAL (constant)));
}
}
@@ -3670,8 +3674,8 @@ split_di (operands, num, lo_half, hi_half)
{
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);
+ 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]);
@@ -4048,7 +4052,7 @@ output_fp_cc0_set (insn)
rtx next;
enum rtx_code code;
- xops[0] = gen_rtx (REG, HImode, 0);
+ xops[0] = gen_rtx_REG (HImode, 0);
output_asm_insn (AS1 (fnsts%W0,%0), xops);
if (! TARGET_IEEE_FP)
@@ -4107,7 +4111,7 @@ output_fp_cc0_set (insn)
else
abort ();
- xops[0] = gen_rtx (REG, QImode, 0);
+ xops[0] = gen_rtx_REG (QImode, 0);
switch (code)
{
@@ -4383,10 +4387,11 @@ rewrite_address (mem_rtx)
{
/* This part is utilized by the combiner. */
ret_rtx
- = gen_rtx (PLUS, GET_MODE (mem_addr),
- gen_rtx (PLUS, GET_MODE (XEXP (mem_addr, 1)),
- XEXP (mem_addr, 0), XEXP (XEXP (mem_addr, 1), 0)),
- XEXP (XEXP (mem_addr, 1), 1));
+ = gen_rtx_PLUS (GET_MODE (mem_addr),
+ gen_rtx_PLUS (GET_MODE (XEXP (mem_addr, 1)),
+ XEXP (mem_addr, 0),
+ XEXP (XEXP (mem_addr, 1), 0)),
+ XEXP (XEXP (mem_addr, 1), 1));
if (memory_address_p (GET_MODE (mem_rtx), ret_rtx))
{
@@ -4561,38 +4566,38 @@ rewrite_address (mem_rtx)
{
if (scale != 1)
{
- ret_rtx = gen_rtx (PLUS, GET_MODE (base_rtx),
- gen_rtx (MULT, GET_MODE (index_rtx),
- index_rtx, scale_rtx),
- base_rtx);
+ ret_rtx = gen_rtx_PLUS (GET_MODE (base_rtx),
+ gen_rtx_MULT (GET_MODE (index_rtx),
+ index_rtx, scale_rtx),
+ base_rtx);
if (GET_CODE (offset_rtx) != CONST_INT
|| INTVAL (offset_rtx) != 0)
- ret_rtx = gen_rtx (PLUS, GET_MODE (ret_rtx),
- ret_rtx, offset_rtx);
+ ret_rtx = gen_rtx_PLUS (GET_MODE (ret_rtx),
+ ret_rtx, offset_rtx);
}
else
{
- ret_rtx = gen_rtx (PLUS, GET_MODE (index_rtx),
- index_rtx, base_rtx);
+ ret_rtx = gen_rtx_PLUS (GET_MODE (index_rtx),
+ index_rtx, base_rtx);
if (GET_CODE (offset_rtx) != CONST_INT
|| INTVAL (offset_rtx) != 0)
- ret_rtx = gen_rtx (PLUS, GET_MODE (ret_rtx),
- ret_rtx, offset_rtx);
+ ret_rtx = gen_rtx_PLUS (GET_MODE (ret_rtx),
+ ret_rtx, offset_rtx);
}
}
else
{
if (scale != 1)
{
- ret_rtx = gen_rtx (MULT, GET_MODE (index_rtx),
- index_rtx, scale_rtx);
+ ret_rtx = gen_rtx_MULT (GET_MODE (index_rtx),
+ index_rtx, scale_rtx);
if (GET_CODE (offset_rtx) != CONST_INT
|| INTVAL (offset_rtx) != 0)
- ret_rtx = gen_rtx (PLUS, GET_MODE (ret_rtx),
- ret_rtx, offset_rtx);
+ ret_rtx = gen_rtx_PLUS (GET_MODE (ret_rtx),
+ ret_rtx, offset_rtx);
}
else
{
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 77bf539ce99..77789f6d0a6 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -945,14 +945,14 @@ enum reg_class
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)))
+ 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))
+ 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
@@ -1145,9 +1145,9 @@ do \
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
- xops[1] = gen_rtx (SYMBOL_REF, VOIDmode, block_table); \
+ xops[1] = gen_rtx_SYMBOL_REF (VOIDmode, block_table); \
xops[5] = stack_pointer_rtx; \
- xops[7] = gen_rtx (REG, Pmode, 0); /* eax */ \
+ xops[7] = gen_rtx_REG (Pmode, 0); /* eax */ \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
@@ -1157,7 +1157,9 @@ do \
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[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); \
@@ -1179,9 +1181,12 @@ do \
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[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; \
@@ -1287,13 +1292,15 @@ do \
\
ASM_GENERATE_INTERNAL_LABEL (block_table, "LPBX", 0); \
\
- xops[1] = gen_rtx (SYMBOL_REF, VOIDmode, block_table); \
+ 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[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]); \
+ xops[0] = gen_rtx_MEM (SImode, xops[4]); \
+ xops[6] = gen_rtx_MEM (SImode, xops[5]); \
\
CONSTANT_POOL_ADDRESS_P (xops[1]) = TRUE; \
\
@@ -1301,7 +1308,7 @@ do \
output_asm_insn (AS2(mov%L0,%2,%0), xops); \
if (flag_pic) \
{ \
- xops[7] = gen_rtx (REG, Pmode, 0); /* eax */ \
+ 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); \
@@ -1317,16 +1324,16 @@ do \
default: \
\
ASM_GENERATE_INTERNAL_LABEL (counts, "LPBX", 2); \
- cnt_rtx = gen_rtx (SYMBOL_REF, VOIDmode, counts); \
+ 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); \
+ cnt_rtx = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, cnt_rtx); \
\
- xops[0] = gen_rtx (MEM, SImode, cnt_rtx); \
+ xops[0] = gen_rtx_MEM (SImode, cnt_rtx); \
output_asm_insn (AS1(inc%L0,%0), xops); \
\
break; \
@@ -1362,7 +1369,8 @@ do \
{ \
rtx xops[1]; \
\
- xops[0] = gen_rtx (MEM, Pmode, gen_rtx (SYMBOL_REF, VOIDmode, "__bb_trace_ret")); \
+ xops[0] = gen_rtx_MEM (Pmode, \
+ gen_rtx_SYMBOL_REF (VOIDmode, "__bb_trace_ret")); \
\
output_asm_insn (AS1(call,%P0), xops); \
\
@@ -1470,8 +1478,8 @@ do { \
#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); \
+ 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.
@@ -1805,10 +1813,10 @@ while (0)
in one reasonably fast instruction. */
#define MOVE_MAX 4
-/* The number of scalar move insns which should be generated instead
- of a string move insn or a library call. Increasing the value
- will always make code faster, but eventually incurs high cost in
- increased code size.
+/* If a memory-to-memory move would take MOVE_RATIO or more simple
+ move-instruction pairs, we will do a movstr or libcall instead.
+ Increasing the value will always make code faster, but eventually
+ incurs high cost in increased code size.
If you don't define this, a reasonable default is used.
@@ -2366,13 +2374,13 @@ number as al, and ax.
/* Before the prologue, RA is at 0(%esp). */
#define INCOMING_RETURN_ADDR_RTX \
- gen_rtx (MEM, VOIDmode, gen_rtx (REG, VOIDmode, STACK_POINTER_REGNUM))
-
+ 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))))
+ ? gen_rtx_MEM (Pmode, plus_constant (arg_pointer_rtx, -4))\
+ : gen_rtx_MEM (Pmode, plus_constant (FRAME, 4)))
/* PC is dbx register 8; let's use that column for RA. */
#define DWARF_FRAME_RETURN_COLUMN 8
@@ -2625,7 +2633,7 @@ extern char *qi_high_reg_name[];
#define ASM_OPERAND_LETTER '#'
#define RET return ""
-#define AT_SP(mode) (gen_rtx (MEM, (mode), stack_pointer_rtx))
+#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) \
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c324a8be705..0d7b603dbd1 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1043,7 +1043,7 @@
""
"*
{
- operands[1] = gen_rtx (REG, HImode, REGNO (operands[1]));
+ operands[1] = gen_rtx_REG (HImode, REGNO (operands[1]));
return AS1 (push%W0,%1);
}")
@@ -1220,13 +1220,14 @@
if (flag_pic)
current_function_uses_pic_offset_table = 1;
- insn = emit_insn (gen_rtx (SET, SFmode, operands[0], fp_const));
+ 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));
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
@@ -1368,13 +1369,14 @@
if (flag_pic)
current_function_uses_pic_offset_table = 1;
- insn = emit_insn (gen_rtx (SET, DFmode, operands[0], fp_const));
+ 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));
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
@@ -1517,13 +1519,14 @@
if (flag_pic)
current_function_uses_pic_offset_table = 1;
- insn = emit_insn (gen_rtx (SET, XFmode, operands[0], fp_const));
+ 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));
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_EQUAL, operands[1], REG_NOTES (insn));
}
}")
@@ -1663,7 +1666,7 @@
if (TARGET_ZERO_EXTEND_WITH_AND)
{
xops[0] = operands[0];
- xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xffff);
+ xops[1] = GEN_INT (0xffff);
if (i386_aligned_p (operands[1]))
output_asm_insn (AS2 (mov%L0,%k1,%k0),operands);
else
@@ -1687,7 +1690,7 @@
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
- "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
+ "operands[2] = gen_rtx_REG (HImode, true_regnum (operands[0]));")
(define_split
@@ -1699,7 +1702,7 @@
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 65535)))]
- "operands[2] = gen_rtx (REG, HImode, true_regnum (operands[0]));")
+ "operands[2] = gen_rtx_REG (HImode, true_regnum (operands[0]));")
(define_insn "zero_extendqihi2"
[(set (match_operand:HI 0 "register_operand" "=q,&q,?r")
@@ -1728,7 +1731,7 @@
else
{
xops[0] = operands[0];
- xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xff);
+ xops[1] = GEN_INT (0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0),operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
@@ -1751,7 +1754,7 @@
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
- "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
@@ -1764,7 +1767,7 @@
(set (match_dup 0)
(and:HI (match_dup 0)
(const_int 255)))]
- "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:HI 0 "register_operand" "")
@@ -1780,7 +1783,7 @@
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]));")
+ operands[2] = gen_rtx_REG (HImode, REGNO (operands[1]));")
(define_insn "zero_extendqisi2"
[(set (match_operand:SI 0 "register_operand" "=q,&q,?r")
@@ -1809,7 +1812,7 @@
else
{
xops[0] = operands[0];
- xops[1] = gen_rtx (CONST_INT, VOIDmode, 0xff);
+ xops[1] = GEN_INT (0xff);
output_asm_insn (AS2 (mov%B0,%1,%b0), operands);
output_asm_insn (AS2 (and%L0,%1,%k0), xops);
}
@@ -1819,8 +1822,8 @@
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]));
+ 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;
@@ -1842,7 +1845,7 @@
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_dup 1))]
- "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
@@ -1855,7 +1858,7 @@
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
- "operands[2] = gen_rtx (REG, QImode, REGNO (operands[0]));")
+ "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));")
(define_split
[(set (match_operand:SI 0 "register_operand" "")
@@ -1867,7 +1870,7 @@
(set (match_dup 0)
(and:SI (match_dup 0)
(const_int 255)))]
- "operands[2] = gen_rtx (REG, SImode, true_regnum (operands[1]));")
+ "operands[2] = gen_rtx_REG (SImode, true_regnum (operands[1]));")
(define_insn "zero_extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,?r,?m")
@@ -1880,7 +1883,7 @@
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);
+ operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
return AS2 (xor%L0,%0,%0);
}
@@ -1917,7 +1920,7 @@
#endif
}
- operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
+ operands[1] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1);
output_asm_insn (AS2 (mov%L0,%0,%1), operands);
operands[0] = GEN_INT (31);
@@ -3036,7 +3039,7 @@
; xops[0] = operands[0];
; xops[1] = operands[1];
; xops[2] = operands[2];
-; xops[3] = gen_rtx (MEM, SImode, stack_pointer_rtx);
+; 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;
@@ -4451,8 +4454,8 @@ byte_xor_operation:
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])));
+ operands[1] = gen_rtx_MULT (SImode, operands[1],
+ GEN_INT (1 << INTVAL (operands[2])));
return AS2 (lea%L0,%a1,%0);
}
}
@@ -4912,7 +4915,7 @@ byte_xor_operation:
}
else
{
- operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]));
+ 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);
@@ -5345,7 +5348,7 @@ byte_xor_operation:
else
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5385,7 +5388,7 @@ byte_xor_operation:
else
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -5419,7 +5422,7 @@ byte_xor_operation:
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -5471,7 +5474,7 @@ byte_xor_operation:
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5522,7 +5525,7 @@ byte_xor_operation:
return AS1 (je,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -5573,7 +5576,7 @@ byte_xor_operation:
return AS1 (jb,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5617,7 +5620,7 @@ byte_xor_operation:
else
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -5639,7 +5642,7 @@ byte_xor_operation:
else
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4000);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5661,7 +5664,7 @@ byte_xor_operation:
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5692,7 +5695,7 @@ byte_xor_operation:
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -5724,7 +5727,7 @@ byte_xor_operation:
return AS1 (jne,%l0);
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (jne,%l0);
@@ -5756,7 +5759,7 @@ byte_xor_operation:
if (cc_prev_status.flags & CC_TEST_AX)
{
- operands[1] = gen_rtx (REG, SImode, 0);
+ operands[1] = gen_rtx_REG (SImode, 0);
operands[2] = GEN_INT (0x4100);
output_asm_insn (AS2 (testl,%2,%1), operands);
return AS1 (je,%l0);
@@ -6302,8 +6305,8 @@ byte_xor_operation:
value. */
emit_call_insn (TARGET_80387
- ? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
- operands[0], const0_rtx)
+ ? 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++)
@@ -6566,7 +6569,7 @@ byte_xor_operation:
operands[3] = gen_reg_rtx (SImode);
operands[5] = addr0;
- operands[0] = gen_rtx (MEM, BLKmode, addr0);
+ operands[0] = gen_rtx_MEM (BLKmode, addr0);
}")
;; It might seem that operand 0 could use predicate register_operand.
@@ -6632,9 +6635,8 @@ byte_xor_operation:
operands[5] = addr1;
operands[6] = addr2;
- operands[1] = gen_rtx (MEM, BLKmode, addr1);
- operands[2] = gen_rtx (MEM, BLKmode, addr2);
-
+ operands[1] = gen_rtx_MEM (BLKmode, addr1);
+ operands[2] = gen_rtx_MEM (BLKmode, addr2);
}")
;; memcmp recognizers. The `cmpsb' opcode does nothing if the count is
@@ -6697,7 +6699,7 @@ byte_xor_operation:
cc_status.flags |= CC_NOT_SIGNED;
- xops[0] = gen_rtx (REG, QImode, 0);
+ xops[0] = gen_rtx_REG (QImode, 0);
xops[1] = CONST0_RTX (QImode);
output_asm_insn (\"cld\", operands);
diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
index 5ae1926d1cd..c15ad64553f 100644
--- a/gcc/config/i386/mingw32.h
+++ b/gcc/config/i386/mingw32.h
@@ -66,14 +66,6 @@ do { \
char c; \
\
putc ('\"', asm_file); \
- if (STRING[1] == ':' \
- && (STRING[2] == '/' || STRING[2] == '\\')) \
- { \
- putc ('/', asm_file); \
- putc ('/', asm_file); \
- putc (*string, asm_file); \
- string += 2; \
- } \
\
while ((c = *string++) != 0) \
{ \
diff --git a/gcc/config/i386/osfrose.h b/gcc/config/i386/osfrose.h
index fd4c3a8eb28..6c2dd3e85a0 100644
--- a/gcc/config/i386/osfrose.h
+++ b/gcc/config/i386/osfrose.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
Intel 386 (OSF/1 with OSF/rose) version.
- Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1992, 1993, 1996, 1998 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -221,8 +221,8 @@ do \
rtx symref; \
\
HALF_PIC_EXTERNAL ("_mcount_ptr"); \
- symref = HALF_PIC_PTR (gen_rtx (SYMBOL_REF, Pmode, \
- "_mcount_ptr")); \
+ symref = HALF_PIC_PTR (gen_rtx_SYMBOL_REF (Pmode, \
+ "_mcount_ptr")); \
\
fprintf (FILE, "\tmovl $%sP%d,%%edx\n", lprefix, labelno); \
fprintf (FILE, "\tmovl %s%s,%%eax\n", prefix, \
@@ -294,7 +294,7 @@ do \
rtx symdef; \
\
HALF_PIC_EXTERNAL ("mcount"); \
- symdef = HALF_PIC_PTR (gen_rtx (SYMBOL_REF, Pmode, "mcount")); \
+ symdef = HALF_PIC_PTR (gen_rtx_SYMBOL_REF (Pmode, "mcount")); \
fprintf (FILE, "\tmovl $%sP%d,%%edx\n", lprefix, labelno); \
fprintf (FILE, "\tcall *%s%s\n", prefix, XSTR (symdef, 0)); \
} \
diff --git a/gcc/config/i386/win-nt.h b/gcc/config/i386/win-nt.h
index 60c0bb6a1f6..d87d8e4ed4a 100644
--- a/gcc/config/i386/win-nt.h
+++ b/gcc/config/i386/win-nt.h
@@ -1,6 +1,6 @@
/* Operating system specific defines to be used when targeting GCC for
Windows NT 3.x on an i386.
- Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1998 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (drupp@cs.washington.edu).
This file is part of GNU CC.
@@ -118,7 +118,7 @@ do \
if (lookup_attribute ("stdcall", \
TYPE_ATTRIBUTES (TREE_TYPE (DECL)))) \
XEXP (DECL_RTL (DECL), 0) = \
- gen_rtx (SYMBOL_REF, Pmode, gen_stdcall_suffix (DECL)); \
+ gen_rtx_SYMBOL_REF (Pmode, gen_stdcall_suffix (DECL)); \
} \
while (0)
#endif