diff options
Diffstat (limited to 'gcc/config/i386/i386.h')
-rw-r--r-- | gcc/config/i386/i386.h | 68 |
1 files changed, 38 insertions, 30 deletions
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) \ |