Go to the source code of this file.
| #define ARG_REGISTER | ( | N | ) | (N - 1) |
| #define ARM_ADDRESS_COST | ( | X | ) |
Value:
(10 - ((GET_CODE (X) == MEM || GET_CODE (X) == LABEL_REF \ || GET_CODE (X) == SYMBOL_REF) \ ? 0 \ : ((GET_CODE (X) == PRE_INC || GET_CODE (X) == PRE_DEC \ || GET_CODE (X) == POST_INC || GET_CODE (X) == POST_DEC) \ ? 10 \ : (((GET_CODE (X) == PLUS || GET_CODE (X) == MINUS) \ ? 6 + (GET_CODE (XEXP (X, 1)) == CONST_INT ? 2 \ : ((GET_RTX_CLASS (GET_CODE (XEXP (X, 0))) == '2' \ || GET_RTX_CLASS (GET_CODE (XEXP (X, 0))) == 'c' \ || GET_RTX_CLASS (GET_CODE (XEXP (X, 1))) == '2' \ || GET_RTX_CLASS (GET_CODE (XEXP (X, 1))) == 'c') \ ? 1 : 0)) \ : 4)))))
| #define ARM_DECLARE_FUNCTION_NAME | ( | STREAM, | |||
| NAME, | |||||
| DECL | ) |
Value:
do \ { \ if (TARGET_THUMB) \ { \ if (is_called_in_ARM_mode (DECL)) \ fprintf (STREAM, "\t.code 32\n") ; \ else \ fprintf (STREAM, "\t.thumb_func\n") ; \ } \ if (TARGET_POKE_FUNCTION_NAME) \ arm_poke_function_name (STREAM, (char *) NAME); \ } \ while (0)
| #define ARM_DECLARE_FUNCTION_SIZE | ( | STREAM, | |||
| NAME, | |||||
| DECL | ) | arm_encode_call_attribute (DECL, SHORT_CALL_FLAG_CHAR) |
| #define ARM_ENCODE_CALL_TYPE | ( | decl | ) |
Value:
if (TREE_CODE_CLASS (TREE_CODE (decl)) == 'd') \ { \ if (TREE_CODE (decl) == FUNCTION_DECL && DECL_WEAK (decl)) \ arm_encode_call_attribute (decl, LONG_CALL_FLAG_CHAR); \ else if (! TREE_PUBLIC (decl)) \ arm_encode_call_attribute (decl, SHORT_CALL_FLAG_CHAR); \ }
| #define ARM_FLAG_APCS_32 (1 << 3) |
| #define ARM_FLAG_APCS_FRAME (1 << 0) |
| #define ARM_FLAG_INTERWORK (1 << 10) |
| #define ARM_FLAG_THUMB (1 << 16) |
| #define ARM_FRAME_RTX | ( | X | ) |
Value:
( (X) == frame_pointer_rtx || (X) == stack_pointer_rtx \ || (X) == arg_pointer_rtx)
Definition at line 2402 of file arm.h.
Referenced by arm_rtx_costs(), and arm_rtx_costs_1().
| #define ARM_FT_EXCEPTION 6 |
Definition at line 1431 of file arm.h.
Referenced by arm_output_epilogue(), arm_output_function_prologue(), and output_return_instruction().
| #define ARM_FT_EXCEPTION_HANDLER 3 |
Definition at line 1428 of file arm.h.
Referenced by arm_compute_func_type(), arm_output_epilogue(), arm_output_function_prologue(), and use_return_insn().
| #define ARM_FT_FIQ 5 |
Definition at line 1430 of file arm.h.
Referenced by arm_compute_save_reg0_reg12_mask(), arm_expand_prologue(), arm_output_epilogue(), arm_output_function_prologue(), and output_return_instruction().
| #define ARM_FT_INTERWORKED 2 |
Definition at line 1427 of file arm.h.
Referenced by arm_compute_func_type(), arm_output_epilogue(), arm_output_function_prologue(), and output_return_instruction().
| #define ARM_FT_ISR 4 |
Definition at line 1429 of file arm.h.
Referenced by arm_expand_prologue(), arm_isr_value(), arm_output_epilogue(), arm_output_function_prologue(), and output_return_instruction().
| #define ARM_FT_NAKED (1 << 3) |
Definition at line 1438 of file arm.h.
Referenced by arm_compute_func_type(), and use_return_insn().
| #define ARM_FT_NESTED (1 << 5) |
| #define ARM_FT_NORMAL 1 |
Definition at line 1426 of file arm.h.
Referenced by arm_compute_func_type(), arm_compute_save_reg_mask(), arm_output_epilogue(), and arm_output_function_prologue().
| #define ARM_FT_UNKNOWN 0 |
Definition at line 1425 of file arm.h.
Referenced by arm_compute_func_type(), arm_current_func_type(), arm_handle_isr_attribute(), arm_init_machine_status(), and arm_isr_value().
| #define ARM_FT_VOLATILE (1 << 4) |
Definition at line 1439 of file arm.h.
Referenced by arm_compute_func_type(), and use_return_insn().
| #define ARM_FUNC_TYPE | ( | t | ) | (t & ARM_FT_TYPE_MASK) |
Definition at line 1443 of file arm.h.
Referenced by arm_compute_save_reg0_reg12_mask(), arm_compute_save_reg_mask(), arm_current_func_type(), arm_output_epilogue(), arm_output_function_prologue(), output_return_instruction(), and use_return_insn().
| #define ARM_FUNCTION_PROFILER | ( | STREAM, | |||
| LABELNO | ) |
Value:
{ \
char temp[20]; \
rtx sym; \
\
asm_fprintf (STREAM, "\tmov\t%r, %r\n\tbl\t", \
IP_REGNUM, LR_REGNUM); \
assemble_name (STREAM, ARM_MCOUNT_NAME); \
fputc ('\n', STREAM); \
ASM_GENERATE_INTERNAL_LABEL (temp, "LP", LABELNO); \
sym = gen_rtx (SYMBOL_REF, Pmode, temp); \
assemble_aligned_integer (UNITS_PER_WORD, sym); \
}
| #define ARM_HARD_FRAME_POINTER_REGNUM 11 |
Definition at line 956 of file arm.h.
Referenced by arm_compute_initial_elimination_offset(), arm_compute_save_reg_mask(), thumb_compute_initial_elimination_offset(), thumb_compute_save_reg_mask(), thumb_exit(), thumb_expand_prologue(), and thumb_output_function_prologue().
| #define ARM_INITIAL_ELIMINATION_OFFSET | ( | FROM, | |||
| TO, | |||||
| OFFSET | ) |
Value:
do \ { \ (OFFSET) = arm_compute_initial_elimination_offset (FROM, TO); \ } \ while (0)
Definition at line 65 of file arm.h.
Referenced by arm_final_prescan_insn(), arm_print_operand(), and get_arm_condition_code().
| #define ARM_NAME_ENCODING_LENGTHS |
Value:
case SHORT_CALL_FLAG_CHAR: return 1; \ case LONG_CALL_FLAG_CHAR: return 1; \ case '*': return 1; \ SUBTARGET_NAME_ENCODING_LENGTHS
Definition at line 1880 of file arm.h.
Referenced by arm_get_strip_length().
| #define arm_prog_mode ((enum attr_prog_mode) arm_prgmode) |
| #define ARM_REG_OK_FOR_BASE_P | ( | X | ) |
Value:
(REGNO (X) <= LAST_ARM_REGNUM \ || REGNO (X) >= FIRST_PSEUDO_REGISTER \ || REGNO (X) == FRAME_POINTER_REGNUM \ || REGNO (X) == ARG_POINTER_REGNUM)
| #define ARM_REGNO_OK_FOR_BASE_P | ( | REGNO | ) |
Value:
(TEST_REGNO (REGNO, <, PC_REGNUM) \ || TEST_REGNO (REGNO, ==, FRAME_POINTER_REGNUM) \ || TEST_REGNO (REGNO, ==, ARG_POINTER_REGNUM))
Definition at line 1800 of file arm.h.
Referenced by arm_address_register_rtx_p().
| #define ARM_SIGN_EXTEND | ( | x | ) |
Value:
((HOST_WIDE_INT) \ (HOST_BITS_PER_WIDE_INT <= 32 ? (unsigned HOST_WIDE_INT) (x) \ : ((((unsigned HOST_WIDE_INT)(x)) & (unsigned HOST_WIDE_INT) 0xffffffff) |\ ((((unsigned HOST_WIDE_INT)(x)) & (unsigned HOST_WIDE_INT) 0x80000000) \ ? ((~ (unsigned HOST_WIDE_INT) 0) \ & ~ (unsigned HOST_WIDE_INT) 0xffffffff) \ : 0))))
Definition at line 2658 of file arm.h.
Referenced by arm_gen_constant(), arm_print_operand(), const_ok_for_op(), and output_move_double().
| #define ARM_TRAMPOLINE_TEMPLATE | ( | FILE | ) |
Value:
{ \
asm_fprintf (FILE, "\tldr\t%r, [%r, #0]\n", \
STATIC_CHAIN_REGNUM, PC_REGNUM); \
asm_fprintf (FILE, "\tldr\t%r, [%r, #0]\n", \
PC_REGNUM, PC_REGNUM); \
assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \
assemble_aligned_integer (UNITS_PER_WORD, const0_rtx); \
}
Value:
case '@': \ fputs (ASM_COMMENT_START, FILE); \ break; \ \ case 'r': \ fputs (REGISTER_PREFIX, FILE); \ fputs (reg_names [va_arg (ARGS, int)], FILE); \ break;
Definition at line 878 of file arm.h.
Referenced by asm_fprintf(), and VPARAMS().
| #define ASM_OUTPUT_CASE_LABEL | ( | FILE, | |||
| PREFIX, | |||||
| NUM, | |||||
| JUMPTABLE | ) |
Value:
do \ { \ if (TARGET_THUMB) \ ASM_OUTPUT_ALIGN (FILE, 2); \ ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); \ } \ while (0)
| #define ASM_OUTPUT_DEF_FROM_DECLS | ( | FILE, | |||
| DECL1, | |||||
| DECL2 | ) |
Value:
do \ { \ const char *const LABEL1 = XSTR (XEXP (DECL_RTL (decl), 0), 0); \ const char *const LABEL2 = IDENTIFIER_POINTER (DECL2); \ \ if (TARGET_THUMB && TREE_CODE (DECL1) == FUNCTION_DECL) \ { \ fprintf (FILE, "\t.thumb_set "); \ assemble_name (FILE, LABEL1); \ fprintf (FILE, ","); \ assemble_name (FILE, LABEL2); \ fprintf (FILE, "\n"); \ } \ else \ ASM_OUTPUT_DEF (FILE, LABEL1, LABEL2); \ } \ while (0)
| #define ASM_OUTPUT_INTERNAL_LABEL | ( | STREAM, | |||
| PREFIX, | |||||
| NUM | ) |
Value:
do \ { \ char * s = (char *) alloca (40 + strlen (PREFIX)); \ \ if (arm_ccfsm_state == 3 && arm_target_label == (NUM) \ && !strcmp (PREFIX, "L")) \ { \ arm_ccfsm_state = 0; \ arm_target_insn = NULL; \ } \ ASM_GENERATE_INTERNAL_LABEL (s, (PREFIX), (NUM)); \ ASM_OUTPUT_LABEL (STREAM, s); \ } \ while (0)
| #define ASM_OUTPUT_MI_THUNK | ( | FILE, | |||
| THUNK_FNDECL, | |||||
| DELTA, | |||||
| FUNCTION | ) |
Value:
do \ { \ int mi_delta = (DELTA); \ const char *const mi_op = mi_delta < 0 ? "sub" : "add"; \ int shift = 0; \ int this_regno = (aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) \ ? 1 : 0); \ if (mi_delta < 0) \ mi_delta = - mi_delta; \ while (mi_delta != 0) \ { \ if ((mi_delta & (3 << shift)) == 0) \ shift += 2; \ else \ { \ asm_fprintf (FILE, "\t%s\t%r, %r, #%d\n", \ mi_op, this_regno, this_regno, \ mi_delta & (0xff << shift)); \ mi_delta &= ~(0xff << shift); \ shift += 8; \ } \ } \ fputs ("\tb\t", FILE); \ assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ if (NEED_PLT_RELOC) \ fputs ("(PLT)", FILE); \ fputc ('\n', FILE); \ } \ while (0)
| #define ASM_OUTPUT_REG_POP | ( | STREAM, | |||
| REGNO | ) |
Value:
if (TARGET_ARM) \ asm_fprintf (STREAM, "\tldmfd\t%r!,{%r}\n", \ STACK_POINTER_REGNUM, REGNO); \ else \ asm_fprintf (STREAM, "\tpop {%r}\n", REGNO)
| #define ASM_OUTPUT_REG_PUSH | ( | STREAM, | |||
| REGNO | ) |
Value:
if (TARGET_ARM) \ asm_fprintf (STREAM,"\tstmfd\t%r!,{%r}\n", \ STACK_POINTER_REGNUM, REGNO); \ else \ asm_fprintf (STREAM, "\tpush {%r}\n", REGNO)
| #define BASE_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) |
| #define BRANCH_COST (TARGET_ARM ? 4 : (optimize > 1 ? 1 : 0)) |
| #define CALL_LONG 0x00000001 |
Definition at line 1411 of file arm.h.
Referenced by arm_function_ok_for_sibcall(), arm_init_cumulative_args(), arm_is_longcall_p(), bfin_longcall_p(), and init_cumulative_args().
| #define CALL_NORMAL 0x00000000 |
Definition at line 1410 of file arm.h.
Referenced by arm_function_ok_for_sibcall(), arm_init_cumulative_args(), and init_cumulative_args().
| #define CALL_SHORT 0x00000002 |
Definition at line 1412 of file arm.h.
Referenced by arm_function_ok_for_sibcall(), arm_init_cumulative_args(), arm_is_longcall_p(), bfin_longcall_p(), and init_cumulative_args().
| #define CALL_USED_REGISTERS |
| #define CAN_ELIMINATE | ( | FROM, | |||
| TO | ) |
Value:
(((TO) == FRAME_POINTER_REGNUM && (FROM) == ARG_POINTER_REGNUM) ? 0 : \ ((TO) == STACK_POINTER_REGNUM && frame_pointer_needed) ? 0 : \ ((TO) == ARM_HARD_FRAME_POINTER_REGNUM && TARGET_THUMB) ? 0 : \ ((TO) == THUMB_HARD_FRAME_POINTER_REGNUM && TARGET_ARM) ? 0 : \ 1)
| #define CANONICALIZE_COMPARISON | ( | CODE, | |||
| OP0, | |||||
| OP1 | ) |
Value:
do \ { \ if (GET_CODE (OP1) == CONST_INT \ && ! (const_ok_for_arm (INTVAL (OP1)) \ || (const_ok_for_arm (- INTVAL (OP1))))) \ { \ rtx const_op = OP1; \ CODE = arm_canonicalize_comparison ((CODE), &const_op); \ OP1 = const_op; \ } \ } \ while (0)
| #define CLASS_MAX_NREGS | ( | CLASS, | |||
| MODE | ) | ((CLASS) == FPU_REGS ? 1 : NUM_REGS (MODE)) |
| #define CONDITIONAL_REGISTER_USAGE |
Value:
{ \
int regno; \
\
if (TARGET_SOFT_FLOAT || TARGET_THUMB) \
{ \
for (regno = FIRST_ARM_FP_REGNUM; \
regno <= LAST_ARM_FP_REGNUM; ++regno) \
fixed_regs[regno] = call_used_regs[regno] = 1; \
} \
if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM) \
{ \
fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
} \
else if (TARGET_APCS_STACK) \
{ \
fixed_regs[10] = 1; \
call_used_regs[10] = 1; \
} \
if (TARGET_APCS_FRAME) \
{ \
fixed_regs[ARM_HARD_FRAME_POINTER_REGNUM] = 1; \
call_used_regs[ARM_HARD_FRAME_POINTER_REGNUM] = 1; \
} \
SUBTARGET_CONDITIONAL_REGISTER_USAGE \
}
| #define CONST_DOUBLE_OK_FOR_ARM_LETTER | ( | X, | |||
| C | ) |
Value:
((C) == 'G' ? const_double_rtx_ok_for_fpu (X) : \ (C) == 'H' ? neg_const_double_rtx_ok_for_fpu (X) : 0)
| #define CONST_DOUBLE_OK_FOR_LETTER_P | ( | X, | |||
| C | ) |
Value:
(TARGET_ARM ? \ CONST_DOUBLE_OK_FOR_ARM_LETTER (X, C) : 0)
| #define CONST_OK_FOR_ARM_LETTER | ( | VALUE, | |||
| C | ) |
| #define CONST_OK_FOR_LETTER_P | ( | VALUE, | |||
| C | ) |
Value:
(TARGET_ARM ? \ CONST_OK_FOR_ARM_LETTER (VALUE, C) : CONST_OK_FOR_THUMB_LETTER (VALUE, C))
| #define CONST_OK_FOR_THUMB_LETTER | ( | VAL, | |||
| C | ) |
Value:
((C) == 'I' ? (unsigned HOST_WIDE_INT) (VAL) < 256 : \ (C) == 'J' ? (VAL) > -256 && (VAL) < 0 : \ (C) == 'K' ? thumb_shiftable_const (VAL) : \ (C) == 'L' ? (VAL) > -8 && (VAL) < 8 : \ (C) == 'M' ? ((unsigned HOST_WIDE_INT) (VAL) < 1024 \ && ((VAL) & 3) == 0) : \ (C) == 'N' ? ((unsigned HOST_WIDE_INT) (VAL) < 32) : \ (C) == 'O' ? ((VAL) >= -508 && (VAL) <= 508) \ : 0)
| #define CONSTANT_ADDRESS_P | ( | X | ) |
Value:
(GET_CODE (X) == SYMBOL_REF \ && (CONSTANT_POOL_ADDRESS_P (X) \ || (TARGET_ARM && optimize > 0 && SYMBOL_REF_FLAG (X))))
| #define CONSTANT_ALIGNMENT | ( | EXP, | |||
| ALIGN | ) |
Value:
((TREE_CODE (EXP) == STRING_CST \ && (ALIGN) < BITS_PER_WORD * CONSTANT_ALIGNMENT_FACTOR) \ ? BITS_PER_WORD * CONSTANT_ALIGNMENT_FACTOR : (ALIGN))
| #define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_is_xscale ? 1 : 2) |
| #define CPP_APCS_PC_SPEC "\%{mapcs-32:%{mapcs-26:%e-mapcs-26 and -mapcs-32 may not be used together} \ -D__APCS_32__} \%{mapcs-26:-D__APCS_26__} \%{!mapcs-32: %{!mapcs-26:%(cpp_apcs_pc_default)}} \" |
| #define CPP_CPU_ARCH_SPEC "\-Acpu=arm -Amachine=arm \%{march=arm2:-D__ARM_ARCH_2__} \%{march=arm250:-D__ARM_ARCH_2__} \%{march=arm3:-D__ARM_ARCH_2__} \%{march=arm6:-D__ARM_ARCH_3__} \%{march=arm600:-D__ARM_ARCH_3__} \%{march=arm610:-D__ARM_ARCH_3__} \%{march=arm7:-D__ARM_ARCH_3__} \%{march=arm700:-D__ARM_ARCH_3__} \%{march=arm710:-D__ARM_ARCH_3__} \%{march=arm720:-D__ARM_ARCH_3__} \%{march=arm7100:-D__ARM_ARCH_3__} \%{march=arm7500:-D__ARM_ARCH_3__} \%{march=arm7500fe:-D__ARM_ARCH_3__} \%{march=arm7m:-D__ARM_ARCH_3M__} \%{march=arm7dm:-D__ARM_ARCH_3M__} \%{march=arm7dmi:-D__ARM_ARCH_3M__} \%{march=arm7tdmi:-D__ARM_ARCH_4T__} \%{march=arm8:-D__ARM_ARCH_4__} \%{march=arm810:-D__ARM_ARCH_4__} \%{march=arm9:-D__ARM_ARCH_4T__} \%{march=arm920:-D__ARM_ARCH_4__} \%{march=arm920t:-D__ARM_ARCH_4T__} \%{march=arm9tdmi:-D__ARM_ARCH_4T__} \%{march=strongarm:-D__ARM_ARCH_4__} \%{march=strongarm110:-D__ARM_ARCH_4__} \%{march=strongarm1100:-D__ARM_ARCH_4__} \%{march=xscale:-D__ARM_ARCH_5TE__} \%{march=xscale:-D__XSCALE__} \%{march=armv2:-D__ARM_ARCH_2__} \%{march=armv2a:-D__ARM_ARCH_2__} \%{march=armv3:-D__ARM_ARCH_3__} \%{march=armv3m:-D__ARM_ARCH_3M__} \%{march=armv4:-D__ARM_ARCH_4__} \%{march=armv4t:-D__ARM_ARCH_4T__} \%{march=armv5:-D__ARM_ARCH_5__} \%{march=armv5t:-D__ARM_ARCH_5T__} \%{march=armv5e:-D__ARM_ARCH_5E__} \%{march=armv5te:-D__ARM_ARCH_5TE__} \%{!march=*: \ %{mcpu=arm2:-D__ARM_ARCH_2__} \ %{mcpu=arm250:-D__ARM_ARCH_2__} \ %{mcpu=arm3:-D__ARM_ARCH_2__} \ %{mcpu=arm6:-D__ARM_ARCH_3__} \ %{mcpu=arm600:-D__ARM_ARCH_3__} \ %{mcpu=arm610:-D__ARM_ARCH_3__} \ %{mcpu=arm7:-D__ARM_ARCH_3__} \ %{mcpu=arm700:-D__ARM_ARCH_3__} \ %{mcpu=arm710:-D__ARM_ARCH_3__} \ %{mcpu=arm720:-D__ARM_ARCH_3__} \ %{mcpu=arm7100:-D__ARM_ARCH_3__} \ %{mcpu=arm7500:-D__ARM_ARCH_3__} \ %{mcpu=arm7500fe:-D__ARM_ARCH_3__} \ %{mcpu=arm7m:-D__ARM_ARCH_3M__} \ %{mcpu=arm7dm:-D__ARM_ARCH_3M__} \ %{mcpu=arm7dmi:-D__ARM_ARCH_3M__} \ %{mcpu=arm7tdmi:-D__ARM_ARCH_4T__} \ %{mcpu=arm8:-D__ARM_ARCH_4__} \ %{mcpu=arm810:-D__ARM_ARCH_4__} \ %{mcpu=arm9:-D__ARM_ARCH_4T__} \ %{mcpu=arm920:-D__ARM_ARCH_4__} \ %{mcpu=arm920t:-D__ARM_ARCH_4T__} \ %{mcpu=arm9tdmi:-D__ARM_ARCH_4T__} \ %{mcpu=strongarm:-D__ARM_ARCH_4__} \ %{mcpu=strongarm110:-D__ARM_ARCH_4__} \ %{mcpu=strongarm1100:-D__ARM_ARCH_4__} \ %{mcpu=xscale:-D__ARM_ARCH_5TE__} \ %{mcpu=xscale:-D__XSCALE__} \ %{!mcpu*:%(cpp_cpu_arch_default)}} \" |
| #define CPP_ENDIAN_DEFAULT_SPEC "-D__ARMEL__ %{mthumb:-D__THUMBEL__}" |
| #define CPP_ENDIAN_SPEC "\%{mbig-endian: \ %{mlittle-endian: \ %e-mbig-endian and -mlittle-endian may not be used together} \ -D__ARMEB__ %{mwords-little-endian:-D__ARMWEL__} %{mthumb:-D__THUMBEB__}}\%{mlittle-endian:-D__ARMEL__ %{mthumb:-D__THUMBEL__}} \%{!mlittle-endian:%{!mbig-endian:%(cpp_endian_default)}} \" |
| #define CPP_FLOAT_SPEC "\%{msoft-float:\ %{mhard-float:%e-msoft-float and -mhard_float may not be used together} \ -D__SOFTFP__} \%{!mhard-float:%{!msoft-float:%(cpp_float_default)}} \" |
| #define CPP_INTERWORK_SPEC " \%{mthumb-interwork: \ %{mno-thumb-interwork: %eincompatible interworking options} \ -D__THUMB_INTERWORK__} \%{!mthumb-interwork:%{!mno-thumb-interwork:%(cpp_interwork_default)}} \" |
| #define CPP_ISA_SPEC "%{mthumb:-D__thumb__} %{!mthumb:-D__arm__}" |
| #define CPP_SPEC "\%(cpp_cpu_arch) %(cpp_apcs_pc) %(cpp_float) \%(cpp_endian) %(subtarget_cpp_spec) %(cpp_isa) %(cpp_interwork)" |
| #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (LR_REGNUM) |
| #define ELIMINABLE_REGS |
Value:
{{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM },\
{ ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM },\
{ ARG_POINTER_REGNUM, ARM_HARD_FRAME_POINTER_REGNUM },\
{ ARG_POINTER_REGNUM, THUMB_HARD_FRAME_POINTER_REGNUM },\
{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM },\
{ FRAME_POINTER_REGNUM, ARM_HARD_FRAME_POINTER_REGNUM },\
{ FRAME_POINTER_REGNUM, THUMB_HARD_FRAME_POINTER_REGNUM }}
| #define ENCODE_SECTION_INFO | ( | decl | ) |
Value:
{ \
if (optimize > 0 && TREE_CONSTANT (decl) \
&& (!flag_writable_strings || TREE_CODE (decl) != STRING_CST)) \
{ \
rtx rtl = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd' \
? TREE_CST_RTL (decl) : DECL_RTL (decl)); \
SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1; \
} \
ARM_ENCODE_CALL_TYPE (decl) \
}
| #define ENCODED_LONG_CALL_ATTR_P | ( | SYMBOL_NAME | ) | (*(SYMBOL_NAME) == LONG_CALL_FLAG_CHAR) |
| #define ENCODED_SHORT_CALL_ATTR_P | ( | SYMBOL_NAME | ) | (*(SYMBOL_NAME) == SHORT_CALL_FLAG_CHAR) |
Definition at line 1866 of file arm.h.
Referenced by arm_assemble_integer(), current_file_function_operand(), and legitimize_pic_address().
| #define EPILOGUE_USES | ( | REGNO | ) | (reload_completed && (REGNO) == LR_REGNUM) |
| #define EXCEPTION_LR_REGNUM 2 |
| #define EXTRA_CC_MODES |
Value:
CC(CC_NOOVmode, "CC_NOOV") \ CC(CC_Zmode, "CC_Z") \ CC(CC_SWPmode, "CC_SWP") \ CC(CCFPmode, "CCFP") \ CC(CCFPEmode, "CCFPE") \ CC(CC_DNEmode, "CC_DNE") \ CC(CC_DEQmode, "CC_DEQ") \ CC(CC_DLEmode, "CC_DLE") \ CC(CC_DLTmode, "CC_DLT") \ CC(CC_DGEmode, "CC_DGE") \ CC(CC_DGTmode, "CC_DGT") \ CC(CC_DLEUmode, "CC_DLEU") \ CC(CC_DLTUmode, "CC_DLTU") \ CC(CC_DGEUmode, "CC_DGEU") \ CC(CC_DGTUmode, "CC_DGTU") \ CC(CC_Cmode, "CC_C")
| #define EXTRA_CONSTRAINT | ( | X, | |||
| C | ) |
Value:
(TARGET_ARM ? \ EXTRA_CONSTRAINT_ARM (X, C) : EXTRA_CONSTRAINT_THUMB (X, C))
| #define EXTRA_CONSTRAINT_ARM | ( | OP, | |||
| C | ) |
| #define EXTRA_CONSTRAINT_THUMB | ( | X, | |||
| C | ) |
| #define EXTRA_SPECS |
Value:
{ "cpp_cpu_arch", CPP_CPU_ARCH_SPEC }, \
{ "cpp_cpu_arch_default", CPP_ARCH_DEFAULT_SPEC }, \
{ "cpp_apcs_pc", CPP_APCS_PC_SPEC }, \
{ "cpp_apcs_pc_default", CPP_APCS_PC_DEFAULT_SPEC }, \
{ "cpp_float", CPP_FLOAT_SPEC }, \
{ "cpp_float_default", CPP_FLOAT_DEFAULT_SPEC }, \
{ "cpp_endian", CPP_ENDIAN_SPEC }, \
{ "cpp_endian_default", CPP_ENDIAN_DEFAULT_SPEC }, \
{ "cpp_isa", CPP_ISA_SPEC }, \
{ "cpp_interwork", CPP_INTERWORK_SPEC }, \
{ "cpp_interwork_default", CPP_INTERWORK_DEFAULT_SPEC }, \
{ "subtarget_cpp_spec", SUBTARGET_CPP_SPEC }, \
SUBTARGET_EXTRA_SPECS
| #define FINAL_PRESCAN_INSN | ( | INSN, | |||
| OPVEC, | |||||
| NOPERANDS | ) |
Value:
if (TARGET_ARM && optimize) \ arm_final_prescan_insn (INSN); \ else if (TARGET_THUMB) \ thumb_final_prescan_insn (INSN)
| #define FIRST_ARM_FP_REGNUM 16 |
Definition at line 970 of file arm.h.
Referenced by arm_compute_initial_elimination_offset(), arm_expand_prologue(), arm_hard_regno_mode_ok(), arm_output_epilogue(), and use_return_insn().
| #define FIXED_REGISTERS |
| #define FLOAT_WORDS_BIG_ENDIAN 1 |
Definition at line 697 of file arm.h.
Referenced by decode_c4x_extended(), decode_decimal128(), decode_decimal32(), decode_decimal64(), decode_i370_double(), decode_ieee_double(), decode_ieee_extended(), decode_ieee_extended_128(), decode_ieee_extended_intel_96(), decode_ieee_quad(), decode_vax_d(), decode_vax_g(), encode_c4x_extended(), encode_decimal128(), encode_decimal32(), encode_decimal64(), encode_i370_double(), encode_ibm_extended(), encode_ieee_double(), encode_ieee_extended(), encode_ieee_extended_128(), encode_ieee_extended_intel_96(), encode_ieee_quad(), encode_vax_d(), encode_vax_g(), expand_absneg_bit(), expand_builtin_signbit(), expand_copysign_absneg(), expand_copysign_bit(), find_constant_index(), ia64_split_tmode(), and write_real_cst().
| #define FP_DEFAULT FP_SOFT2 |
| #define FP_REGNUM HARD_FRAME_POINTER_REGNUM |
| #define FRAME_POINTER_REQUIRED |
Value:
(current_function_has_nonlocal_label \ || (TARGET_ARM && TARGET_APCS_FRAME && ! leaf_function_p ()))
| #define FUNCTION_ARG_PARTIAL_NREGS | ( | CUM, | |||
| MODE, | |||||
| TYPE, | |||||
| NAMED | ) |
Value:
( NUM_ARG_REGS > (CUM).nregs \ && (NUM_ARG_REGS < ((CUM).nregs + NUM_REGS2 (MODE, TYPE))) \ ? NUM_ARG_REGS - (CUM).nregs : 0)
| #define FUNCTION_ARG_REGNO_P | ( | REGNO | ) | (IN_RANGE ((REGNO), 0, 3)) |
| #define FUNCTION_OK_FOR_SIBCALL | ( | DECL | ) | arm_function_ok_for_sibcall ((DECL)) |
| #define FUNCTION_PROFILER | ( | STREAM, | |||
| LABELNO | ) |
Value:
if (TARGET_ARM) \ ARM_FUNCTION_PROFILER (STREAM, LABELNO) \ else \ THUMB_FUNCTION_PROFILER (STREAM, LABELNO)
| #define FUNCTION_VALUE | ( | VALTYPE, | |||
| FUNC | ) | LIBCALL_VALUE (TYPE_MODE (VALTYPE)) |
| #define FUNCTION_VALUE_REGNO_P | ( | REGNO | ) |
Value:
((REGNO) == ARG_REGISTER (1) \ || (TARGET_ARM && ((REGNO) == FIRST_ARM_FP_REGNUM) && TARGET_HARD_FLOAT))
| #define GO_IF_LEGITIMATE_ADDRESS | ( | MODE, | |||
| X, | |||||
| WIN | ) |
Value:
if (TARGET_ARM) \ ARM_GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN) \ else /* if (TARGET_THUMB) */ \ THUMB_GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN)
Value:
if (TARGET_ARM) \ ARM_GO_IF_MODE_DEPENDENT_ADDRESS (ADDR, LABEL)
| #define GOT_PCREL 1 |
Definition at line 620 of file arm.h.
Referenced by arm_finalize_pic(), and arm_load_pic_register().
| #define HARD_FRAME_POINTER_REGNUM |
Value:
| #define HARD_REGNO_MODE_OK | ( | REGNO, | |||
| MODE | ) | arm_hard_regno_mode_ok ((REGNO), (MODE)) |
| #define HARD_REGNO_NREGS | ( | REGNO, | |||
| MODE | ) |
Value:
((TARGET_ARM \ && REGNO >= FIRST_ARM_FP_REGNUM \ && REGNO != FRAME_POINTER_REGNUM \ && REGNO != ARG_POINTER_REGNUM) \ ? 1 : NUM_REGS (MODE))
| #define HARD_REGNO_RENAME_OK | ( | SRC, | |||
| DST | ) |
Value:
(! IS_INTERRUPT (cfun->machine->func_type) || \ regs_ever_live[DST])
Definition at line 1034 of file arm.h.
Referenced by regrename_optimize().
| #define HAVE_POST_DECREMENT TARGET_ARM |
Definition at line 1786 of file arm.h.
Referenced by can_store_by_pieces(), fixup_match_1(), fold_rtx(), loop_giv_reduce_benefit(), and try_auto_increment().
| #define HAVE_POST_INCREMENT 1 |
Definition at line 1784 of file arm.h.
Referenced by fixup_match_1(), fold_rtx(), loop_giv_reduce_benefit(), move_by_pieces(), move_by_pieces_1(), sh_expand_epilogue(), store_by_pieces(), store_by_pieces_2(), and try_auto_increment().
| #define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, LR_REGNUM) |
| #define INDEX_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) |
| #define INIT_CUMULATIVE_ARGS | ( | CUM, | |||
| FNTYPE, | |||||
| LIBNAME, | |||||
| INDIRECT | ) | arm_init_cumulative_args (&(CUM), (FNTYPE), (LIBNAME), (INDIRECT)) |
| #define INIT_EXPANDERS arm_init_expanders () |
| #define INITIAL_ELIMINATION_OFFSET | ( | FROM, | |||
| TO, | |||||
| OFFSET | ) |
Value:
if (TARGET_ARM) \ ARM_INITIAL_ELIMINATION_OFFSET (FROM, TO, OFFSET); \ else \ THUMB_INITIAL_ELIMINATION_OFFSET (FROM, TO, OFFSET)
| #define INITIALIZE_TRAMPOLINE | ( | TRAMP, | |||
| FNADDR, | |||||
| CXT | ) |
Value:
{ \
emit_move_insn \
(gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 8 : 16)), CXT); \
emit_move_insn \
(gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 12 : 20)), FNADDR); \
}
| #define IS_INTERRUPT | ( | t | ) | (t & ARM_FT_INTERRUPT) |
Definition at line 1444 of file arm.h.
Referenced by arm_compute_save_reg0_reg12_mask(), arm_expand_prologue(), arm_function_ok_for_sibcall(), arm_output_epilogue(), output_return_instruction(), thumb_expand_prologue(), and use_return_insn().
| #define IS_NAKED | ( | t | ) | (t & ARM_FT_NAKED) |
Definition at line 1446 of file arm.h.
Referenced by arm_compute_save_reg_mask(), arm_expand_prologue(), arm_output_epilogue(), arm_output_function_prologue(), output_return_instruction(), thumb_expand_epilogue(), thumb_expand_prologue(), thumb_output_function_prologue(), and thumb_unexpanded_epilogue().
| #define IS_NESTED | ( | t | ) | (t & ARM_FT_NESTED) |
Definition at line 1447 of file arm.h.
Referenced by arm_expand_prologue(), and arm_output_function_prologue().
| #define IS_VOLATILE | ( | t | ) | (t & ARM_FT_VOLATILE) |
Definition at line 1445 of file arm.h.
Referenced by arm_compute_initial_elimination_offset(), arm_compute_save_reg_mask(), arm_expand_prologue(), arm_get_frame_offsets(), arm_output_epilogue(), arm_output_function_prologue(), and output_return_instruction().
| #define LAST_ARG_REGNUM ARG_REGISTER (NUM_ARG_REGS) |
Definition at line 927 of file arm.h.
Referenced by frv_arg_partial_bytes(), frv_function_arg(), frv_stack_info(), thumb_compute_save_reg_mask(), thumb_exit(), thumb_expand_epilogue(), thumb_expand_prologue(), thumb_find_work_register(), thumb_output_function_prologue(), and thumb_unexpanded_epilogue().
| #define LAST_ARM_FP_REGNUM 23 |
Definition at line 971 of file arm.h.
Referenced by arm_compute_initial_elimination_offset(), arm_expand_prologue(), arm_hard_regno_mode_ok(), arm_output_epilogue(), and use_return_insn().
| #define LAST_LO_REGNUM 7 |
Definition at line 930 of file arm.h.
Referenced by arm_hard_regno_mode_ok(), arm_load_pic_register(), thumb_base_register_rtx_p(), thumb_compute_save_reg_mask(), thumb_expand_prologue(), thumb_find_work_register(), thumb_output_function_prologue(), and thumb_unexpanded_epilogue().
| #define LEGITIMATE_PIC_OPERAND_P | ( | X | ) |
Value:
( ! symbol_mentioned_p (X) \ && ! label_mentioned_p (X) \ && (! CONSTANT_POOL_ADDRESS_P (X) \ || ( ! symbol_mentioned_p (get_pool_constant (X)) \ && ! label_mentioned_p (get_pool_constant (X)))))
Definition at line 2466 of file arm.h.
Referenced by asm_operand_ok(), find_reloads(), frv_legitimate_constant_p(), general_operand(), immediate_operand(), nonmemory_operand(), output_44(), output_83(), record_reg_classes(), and reload().
| #define LEGITIMIZE_ADDRESS | ( | X, | |||
| OLDX, | |||||
| MODE, | |||||
| WIN | ) |
Value:
if (TARGET_ARM) \ ARM_LEGITIMIZE_ADDRESS (X, OLDX, MODE, WIN) \ else \ THUMB_LEGITIMIZE_ADDRESS (X, OLDX, MODE, WIN)
Value:
if (TARGET_ARM) \ ARM_LEGITIMIZE_RELOAD_ADDRESS (X, MODE, OPNUM, TYPE, IND_LEVELS, WIN); \ else \ THUMB_LEGITIMIZE_RELOAD_ADDRESS (X, MODE, OPNUM, TYPE, IND_LEVELS, WIN)
| #define LIBCALL_VALUE | ( | MODE | ) |
Value:
(TARGET_ARM && TARGET_HARD_FLOAT && GET_MODE_CLASS (MODE) == MODE_FLOAT \ ? gen_rtx_REG (MODE, FIRST_ARM_FP_REGNUM) \ : gen_rtx_REG (MODE, ARG_REGISTER (1)))
| #define LOAD_EXTEND_OP | ( | MODE | ) |
Value:
(TARGET_THUMB ? ZERO_EXTEND : \ ((arm_arch4 || (MODE) == QImode) ? ZERO_EXTEND \ : ((BYTES_BIG_ENDIAN && (MODE) == HImode) ? SIGN_EXTEND : NIL)))
| #define LONG_CALL_FLAG_CHAR '#' |
| #define MASK_RETURN_ADDR |
Value:
/* If we are generating code for an ARM2/ARM3 machine or for an ARM6 \ in 26 bit mode, the condition codes must be masked out of the \ return address. This does not apply to ARM6 and later processors \ when running in 32 bit mode. */ \ ((!TARGET_APCS_32) ? (GEN_INT (RETURN_ADDR_MASK26)) \ : (GEN_INT ((unsigned long)0xffffffff)))
Definition at line 2820 of file arm.h.
Referenced by expand_builtin_extract_return_addr(), and return_addr_rtx().
| #define MEMORY_MOVE_COST | ( | M, | |||
| CLASS, | |||||
| IN | ) |
Value:
(TARGET_ARM ? 10 : \ ((GET_MODE_SIZE (M) < 4 ? 8 : 2 * GET_MODE_SIZE (M)) \ * (CLASS == LO_REGS ? 1 : 2)))
| #define MODE_BASE_REG_CLASS | ( | MODE | ) |
Value:
(TARGET_ARM ? GENERAL_REGS : \ (((MODE) == SImode && !reload_completed) ? BASE_REGS : LO_REGS))
Definition at line 1103 of file arm.h.
Referenced by base_reg_class(), find_reloads(), find_reloads_address(), find_reloads_address_1(), init_caller_save(), init_reg_autoinc(), maybe_fix_stack_asms(), preprocess_constraints(), record_address_regs(), record_operand_costs(), record_reg_classes(), replace_oldest_value_addr(), replace_oldest_value_mem(), scan_one_insn(), scan_rtx(), scan_rtx_address(), and thumb_legitimize_reload_address().
| #define MODES_TIEABLE_P | ( | MODE1, | |||
| MODE2 | ) | (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2)) |
| #define MOVE_RATIO (arm_is_xscale ? 4 : 2) |
| #define NEED_GOT_RELOC 0 |
Definition at line 602 of file arm.h.
Referenced by arm_assemble_integer(), and legitimize_pic_address().
| #define NEED_PLT_RELOC 0 |
Definition at line 605 of file arm.h.
Referenced by arm_output_epilogue(), arm_output_mi_thunk(), and output_return_instruction().
| #define NUM_ARG_REGS 4 |
Definition at line 904 of file arm.h.
Referenced by arm_arg_partial_bytes(), arm_function_arg(), and arm_setup_incoming_varargs().
Definition at line 892 of file arm.h.
Referenced by arm_gen_movstrqi(), and thumb_output_function_prologue().
| #define NUM_REGS | ( | MODE | ) | NUM_INTS (GET_MODE_SIZE (MODE)) |
Definition at line 895 of file arm.h.
Referenced by add_worklist(), arm_hard_regno_mode_ok(), arm_print_operand(), build_worklists(), combine(), conservative(), decrement_degree(), freeze_moves(), ok(), and rws_access_regno().
| #define NUM_REGS2 | ( | MODE, | |||
| TYPE | ) |
Value:
NUM_INTS ((MODE) == BLKmode ? \ int_size_in_bytes (TYPE) : GET_MODE_SIZE (MODE))
| #define PIC_OFFSET_TABLE_REGNUM arm_pic_register |
| #define PREFERRED_RELOAD_CLASS | ( | X, | |||
| CLASS | ) |
Value:
(TARGET_ARM ? (CLASS) : \ ((CLASS) == BASE_REGS ? (CLASS) : LO_REGS))
| #define PRINT_OPERAND_ADDRESS | ( | STREAM, | |||
| X | ) |
Value:
if (TARGET_ARM) \ ARM_PRINT_OPERAND_ADDRESS (STREAM, X) \ else \ THUMB_PRINT_OPERAND_ADDRESS (STREAM, X)
| #define PRINT_OPERAND_PUNCT_VALID_P | ( | CODE | ) |
Value:
(CODE == '@' || CODE == '|' \ || (TARGET_ARM && (CODE == '?')) \ || (TARGET_THUMB && (CODE == '_')))
| #define PROMOTE_MODE | ( | MODE, | |||
| UNSIGNEDP, | |||||
| TYPE | ) |
Value:
if (GET_MODE_CLASS (MODE) == MODE_INT \ && GET_MODE_SIZE (MODE) < 4) \ { \ if (MODE == QImode) \ UNSIGNEDP = 1; \ else if (MODE == HImode) \ UNSIGNEDP = TARGET_MMU_TRAPS != 0; \ (MODE) = SImode; \ }
| #define REG_ALLOC_ORDER |
| #define REG_CLASS_CONTENTS |
Value:
{ \
{ 0x0000000 }, /* NO_REGS */ \
{ 0x0FF0000 }, /* FPU_REGS */ \
{ 0x00000FF }, /* LO_REGS */ \
{ 0x0002000 }, /* STACK_REG */ \
{ 0x00020FF }, /* BASE_REGS */ \
{ 0x000FF00 }, /* HI_REGS */ \
{ 0x1000000 }, /* CC_REG */ \
{ 0x200FFFF }, /* GENERAL_REGS */ \
{ 0x2FFFFFF } /* ALL_REGS */ \
}
| #define REG_CLASS_FROM_LETTER | ( | C | ) |
| #define REG_CLASS_NAMES |
| #define REG_MODE_OK_FOR_BASE_P | ( | X, | |||
| MODE | ) |
Value:
(TARGET_THUMB \ ? THUMB_REG_MODE_OK_FOR_BASE_P (X, MODE) \ : ARM_REG_OK_FOR_BASE_P (X))
Definition at line 1974 of file arm.h.
Referenced by arm_coproc_mem_operand(), cirrus_memory_offset(), find_reloads_address(), find_reloads_address_1(), replace_oldest_value_addr(), rs6000_legitimize_reload_address(), and scan_rtx_address().
| #define REG_OK_FOR_INDEX_P | ( | X | ) |
Value:
(TARGET_THUMB \ ? THUMB_REG_OK_FOR_INDEX_P (X) \ : ARM_REG_OK_FOR_INDEX_P (X))
| #define REGISTER_MOVE_COST | ( | MODE, | |||
| FROM, | |||||
| TO | ) |
| #define REGISTER_TARGET_PRAGMAS | ( | PFILE | ) |
Value:
do { \ cpp_register_pragma (PFILE, 0, "long_calls", arm_pr_long_calls); \ cpp_register_pragma (PFILE, 0, "no_long_calls", arm_pr_no_long_calls); \ cpp_register_pragma (PFILE, 0, "long_calls_off", arm_pr_long_calls_off); \ } while (0)
Definition at line 2479 of file arm.h.
Referenced by init_pragma().
| #define REGNO_MODE_OK_FOR_BASE_P | ( | REGNO, | |||
| MODE | ) |
Value:
(TARGET_THUMB \ ? THUMB_REGNO_MODE_OK_FOR_BASE_P (REGNO, MODE) \ : ARM_REGNO_OK_FOR_BASE_P (REGNO))
Definition at line 1810 of file arm.h.
Referenced by find_reloads_address(), find_reloads_address_1(), iq2000_reg_mode_ok_for_base_p(), mips_reg_mode_ok_for_base_p(), and ok_for_base_p_1().
| #define REGNO_OK_FOR_INDEX_P | ( | REGNO | ) | REGNO_MODE_OK_FOR_BASE_P (REGNO, QImode) |
| #define RETURN_ADDR_MASK26 (0x03fffffc) |
Definition at line 889 of file arm.h.
Referenced by alloc_large_page(), arm_poke_function_name(), ggc_alloc_zone_1(), ggc_pch_read(), ggc_pch_this_base(), ggc_pch_total_size(), init_ggc(), thumb_expand_epilogue(), and thumb_expand_prologue().
| #define SECONDARY_INPUT_RELOAD_CLASS | ( | CLASS, | |||
| MODE, | |||||
| X | ) |
Value:
(TARGET_ARM ? \ (((MODE) == HImode && ! arm_arch4 && TARGET_MMU_TRAPS \ && (GET_CODE (X) == MEM \ || ((GET_CODE (X) == REG || GET_CODE (X) == SUBREG) \ && true_regnum (X) == -1))) \ ? GENERAL_REGS : NO_REGS) \ : THUMB_SECONDARY_INPUT_RELOAD_CLASS (CLASS, MODE, X))
| #define SECONDARY_OUTPUT_RELOAD_CLASS | ( | CLASS, | |||
| MODE, | |||||
| X | ) |
Value:
(TARGET_ARM ? \ (((MODE) == HImode && ! arm_arch4 && true_regnum (X) == -1) \ ? GENERAL_REGS : NO_REGS) \ : THUMB_SECONDARY_OUTPUT_RELOAD_CLASS (CLASS, MODE, X))
| #define SETUP_INCOMING_VARARGS | ( | CUM, | |||
| MODE, | |||||
| TYPE, | |||||
| PRETEND_SIZE, | |||||
| NO_RTL | ) |
Value:
{ \
cfun->machine->uses_anonymous_args = 1; \
if ((CUM).nregs < NUM_ARG_REGS) \
(PRETEND_SIZE) = (NUM_ARG_REGS - (CUM).nregs) * UNITS_PER_WORD; \
}
| #define SHORT_CALL_FLAG_CHAR '^' |
Definition at line 1863 of file arm.h.
Referenced by arm_encode_call_attribute(), and arm_encode_section_info().
| #define SMALL_REGISTER_CLASSES TARGET_THUMB |
Definition at line 1111 of file arm.h.
Referenced by approx_reg_cost_1(), block_alloc(), canon_hash(), check_cond_move_block(), combine_reloads(), dead_or_predicable(), expand_function_start(), find_reusable_reload(), fixup_var_refs_insn(), hash_rtx(), noce_process_if_block(), optimize_reg_copy_1(), precompute_register_parameters(), prepare_call_address(), push_secondary_reload(), reload_as_needed(), scan_loop(), scan_paradoxical_subregs(), and valid_initial_value_p().
| #define SPECIAL_MODE_PREDICATES "cc_register", "dominant_cc_register", |
| #define STRIP_NAME_ENCODING | ( | VAR, | |||
| SYMBOL_NAME | ) | (VAR) = arm_strip_name_encoding (SYMBOL_NAME) |
| #define STRUCTURE_SIZE_BOUNDARY arm_structure_size_boundary |
| #define TARGET_ABORT_NORETURN (target_flags & ARM_FLAG_ABORT_NORETURN) |
Definition at line 400 of file arm.h.
Referenced by arm_output_epilogue(), and output_return_instruction().
| #define TARGET_APCS_32 (target_flags & ARM_FLAG_APCS_32) |
Definition at line 389 of file arm.h.
Referenced by arm_final_prescan_insn(), arm_output_epilogue(), arm_override_options(), arm_return_addr(), output_return_instruction(), and print_multi_reg().
| #define TARGET_APCS_FLOAT (target_flags & ARM_FLAG_APCS_FLOAT) |
| #define TARGET_APCS_FRAME (target_flags & ARM_FLAG_APCS_FRAME) |
Definition at line 386 of file arm.h.
Referenced by arm_compute_save_reg0_reg12_mask(), and arm_override_options().
| #define TARGET_APCS_REENT (target_flags & ARM_FLAG_APCS_REENT) |
| #define TARGET_APCS_STACK (target_flags & ARM_FLAG_APCS_STACK) |
| #define TARGET_ARM (! TARGET_THUMB) |
Definition at line 404 of file arm.h.
Referenced by arm_address_cost(), arm_apply_result_size(), arm_call_tls_get_addr(), arm_finalize_pic(), arm_get_frame_offsets(), arm_load_pic_register(), arm_output_function_prologue(), arm_override_options(), arm_print_operand(), arm_select_cc_mode(), legitimize_pic_address(), and legitimize_tls_address().
| #define TARGET_BACKTRACE |
Value:
(leaf_function_p () \ ? (target_flags & THUMB_FLAG_LEAF_BACKTRACE) \ : (target_flags & THUMB_FLAG_BACKTRACE))
Definition at line 408 of file arm.h.
Referenced by arm_get_frame_offsets(), thumb_compute_save_reg_mask(), thumb_exit(), thumb_output_function_prologue(), thumb_pushpop(), thumb_set_return_address(), and thumb_unexpanded_epilogue().
| #define TARGET_BIG_END (target_flags & ARM_FLAG_BIG_END) |
| #define TARGET_CALLEE_INTERWORKING (target_flags & THUMB_FLAG_CALLEE_SUPER_INTERWORKING) |
Definition at line 406 of file arm.h.
Referenced by arm_override_options(), and is_called_in_ARM_mode().
| #define TARGET_CALLER_INTERWORKING (target_flags & THUMB_FLAG_CALLER_SUPER_INTERWORKING) |
| #define TARGET_CPU_arm2 0x0000 |
| #define TARGET_CPU_arm6 0x0001 |
| #define TARGET_CPU_arm610 0x0002 |
| #define TARGET_CPU_arm710 0x0002 |
| #define TARGET_CPU_arm7500fe 0x1001 |
| #define TARGET_CPU_arm7m 0x0004 |
| #define TARGET_CPU_arm7tdmi 0x0008 |
| #define TARGET_CPU_arm8 0x0010 |
| #define TARGET_CPU_arm810 0x0020 |
| #define TARGET_CPU_arm9 0x0080 |
| #define TARGET_CPU_generic 0x8000 |
| #define TARGET_CPU_strongarm 0x0040 |
| #define TARGET_CPU_xscale 0x0100 |
| #define TARGET_FPE (target_flags & ARM_FLAG_FPE) |
| #define TARGET_HARD_FLOAT (! TARGET_SOFT_FLOAT) |
Definition at line 395 of file arm.h.
Referenced by arm_expand_prologue(), arm_get_frame_offsets(), arm_get_vfp_saved_size(), arm_hard_regno_mode_ok(), arm_legitimate_index_p(), arm_output_epilogue(), arm_select_cc_mode(), arm_size_rtx_costs(), frv_reorg(), function_arg(), function_arg_advance(), function_arg_boundary(), gen_conditional_move(), legitimate_lo_sum_address_p(), m68k_compute_frame_layout(), mips_conditional_register_usage(), mips_preferred_reload_class(), output_cbranch(), output_condmove_single(), output_move_single(), override_options(), recog_1(), recog_2(), recog_3(), recog_4(), recog_5(), recog_6(), rs6000_complex_function_value(), rs6000_emit_cmove(), rs6000_emit_move(), rs6000_emit_sCOND(), rs6000_function_value(), rs6000_generate_compare(), rs6000_gimplify_va_arg(), rs6000_init_libfuncs(), rs6000_legitimate_address(), rs6000_legitimize_address(), rs6000_legitimize_reload_address(), rs6000_libcall_value(), rs6000_rtx_costs(), s390_function_value(), s390_register_info(), s390_rtx_costs(), setup_incoming_varargs(), use_return_insn(), xtensa_expand_conditional_branch(), and xtensa_rtx_costs().
| #define TARGET_INTERWORK (target_flags & ARM_FLAG_INTERWORK) |
Definition at line 397 of file arm.h.
Referenced by arm_compute_func_type(), arm_function_ok_for_sibcall(), arm_override_options(), output_call(), output_call_mem(), output_return_instruction(), thumb_exit(), thumb_pushpop(), and use_return_insn().
| #define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS) |
| #define TARGET_LONG_CALLS (target_flags & ARM_FLAG_LONG_CALLS) |
Definition at line 402 of file arm.h.
Referenced by arm_function_ok_for_sibcall(), arm_init_cumulative_args(), arm_is_longcall_p(), attr_length_call(), attr_length_millicode_call(), bfin_longcall_p(), call_address_operand(), call_operand(), construct_restore_jr(), construct_save_jarl(), expand_prologue(), gen_call(), gen_call_value(), m68hc11_encode_section_info(), m68hc11_initial_elimination_offset(), m68hc11_override_options(), mips_output_mi_thunk(), output_call(), output_millicode_call(), pa_asm_output_mi_thunk(), pattern_is_ok_for_prologue(), recog_6(), recog_8(), and recog_9().
| #define TARGET_MMU_TRAPS (target_flags & ARM_FLAG_MMU_TRAPS) |
| #define TARGET_NO_SCHED_PRO (target_flags & ARM_FLAG_NO_SCHED_PRO) |
Definition at line 399 of file arm.h.
Referenced by arm_expand_prologue(), thumb_expand_epilogue(), and thumb_expand_prologue().
| #define TARGET_OPTIONS |
Value:
{ \
{"cpu=", & arm_select[0].string, \
N_("Specify the name of the target CPU") }, \
{"arch=", & arm_select[1].string, \
N_("Specify the name of the target architecture") }, \
{"tune=", & arm_select[2].string, "" }, \
{"fpe=", & target_fp_name, "" }, \
{"fp=", & target_fp_name, \
N_("Specify the version of the floating point emulator") }, \
{"structure-size-boundary=", & structure_size_string, \
N_("Specify the minimum bit alignment of structures") }, \
{"pic-register=", & arm_pic_register_string, \
N_("Specify the register to be used for PIC addressing") } \
}
| #define TARGET_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE) |
| #define TARGET_PTRMEMFUNC_VBIT_LOCATION ptrmemfunc_vbit_in_delta |
Definition at line 717 of file arm.h.
Referenced by build_ptrmemfunc(), cxx_init_decl_processing(), expand_ptrmemfunc_cst(), get_member_function_from_ptrfunc(), and java_init().
| #define TARGET_SINGLE_PIC_BASE (target_flags & ARM_FLAG_SINGLE_PIC_BASE) |
Definition at line 401 of file arm.h.
Referenced by arm_compute_save_reg0_reg12_mask(), arm_finalize_pic(), arm_load_pic_register(), arm_override_options(), thumb_compute_save_reg_mask(), thumb_expand_prologue(), thumb_output_function_prologue(), and thumb_unexpanded_epilogue().
| #define TARGET_SOFT_FLOAT (target_flags & ARM_FLAG_SOFT_FLOAT) |
| #define TARGET_THUMB (target_flags & ARM_FLAG_THUMB) |
Definition at line 403 of file arm.h.
Referenced by arm_9e_rtx_costs(), arm_add_operand(), arm_debugger_arg_offset(), arm_fastmul_rtx_costs(), arm_function_ok_for_sibcall(), arm_hard_regno_mode_ok(), arm_output_function_epilogue(), arm_output_mi_thunk(), arm_override_options(), arm_print_operand(), arm_regno_class(), arm_rtx_costs(), arm_select_cc_mode(), arm_size_rtx_costs(), arm_slowmul_rtx_costs(), and arm_xscale_rtx_costs().
| #define THUMB_ADDRESS_COST | ( | X | ) |
| #define THUMB_FLAG_BACKTRACE (1 << 17) |
| #define THUMB_FLAG_LEAF_BACKTRACE (1 << 18) |
| #define THUMB_FUNCTION_PROFILER | ( | STREAM, | |||
| LABELNO | ) |
| #define THUMB_HARD_FRAME_POINTER_REGNUM 7 |
Definition at line 957 of file arm.h.
Referenced by arm_compute_initial_elimination_offset(), thumb_compute_initial_elimination_offset(), thumb_expand_prologue(), and thumb_set_return_address().
| #define THUMB_INITIAL_ELIMINATION_OFFSET | ( | FROM, | |||
| TO, | |||||
| OFFSET | ) |
| #define THUMB_LEGITIMATE_CONSTANT_P | ( | X | ) |
| #define THUMB_LEGITIMATE_OFFSET | ( | MODE, | |||
| VAL | ) |
Value:
(GET_MODE_SIZE (MODE) == 1 ? ((unsigned HOST_WIDE_INT) (VAL) < 32) \ : GET_MODE_SIZE (MODE) == 2 ? ((unsigned HOST_WIDE_INT) (VAL) < 64 \ && ((VAL) & 1) == 0) \ : ((VAL) >= 0 && ((VAL) + GET_MODE_SIZE (MODE)) <= 128 \ && ((VAL) & 3) == 0))
| #define THUMB_LEGITIMIZE_ADDRESS | ( | X, | |||
| OLDX, | |||||
| MODE, | |||||
| WIN | ) |
Value:
{ \
if (GET_CODE (X) == PLUS \
&& GET_MODE_SIZE (MODE) < 4 \
&& GET_CODE (XEXP (X, 0)) == REG \
&& XEXP (X, 0) == stack_pointer_rtx \
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
&& ! THUMB_LEGITIMATE_OFFSET (MODE, INTVAL (XEXP (X, 1)))) \
{ \
rtx orig_X = X; \
X = copy_rtx (X); \
push_reload (orig_X, NULL_RTX, &X, NULL, \
MODE_BASE_REG_CLASS (MODE), \
Pmode, VOIDmode, 0, 0, OPNUM, TYPE); \
goto WIN; \
} \
}
| #define THUMB_PRINT_OPERAND_ADDRESS | ( | STREAM, | |||
| X | ) |
Value:
{ \
if (GET_CODE (X) == REG) \
asm_fprintf (STREAM, "[%r]", REGNO (X)); \
else if (GET_CODE (X) == POST_INC) \
asm_fprintf (STREAM, "%r!", REGNO (XEXP (X, 0))); \
else if (GET_CODE (X) == PLUS) \
{ \
if (GET_CODE (XEXP (X, 1)) == CONST_INT) \
asm_fprintf (STREAM, "[%r, #%d]", \
REGNO (XEXP (X, 0)), \
(int) INTVAL (XEXP (X, 1))); \
else \
asm_fprintf (STREAM, "[%r, %r]", \
REGNO (XEXP (X, 0)), \
REGNO (XEXP (X, 1))); \
} \
else \
output_addr_const (STREAM, X); \
}
| #define THUMB_REG_MODE_OK_FOR_BASE_P | ( | X, | |||
| MODE | ) |
Value:
(REGNO (X) <= LAST_LO_REGNUM \ || REGNO (X) >= FIRST_PSEUDO_REGISTER \ || (GET_MODE_SIZE (MODE) >= 4 \ && (REGNO (X) == STACK_POINTER_REGNUM \ || (X) == hard_frame_pointer_rtx \ || (X) == arg_pointer_rtx)))
| #define THUMB_REGNO_MODE_OK_FOR_BASE_P | ( | REGNO, | |||
| MODE | ) |
Value:
(TEST_REGNO (REGNO, <=, LAST_LO_REGNUM) \ || (GET_MODE_SIZE (MODE) >= 4 \ && TEST_REGNO (REGNO, ==, STACK_POINTER_REGNUM)))
Definition at line 1805 of file arm.h.
Referenced by thumb_base_register_rtx_p().
| #define THUMB_SECONDARY_INPUT_RELOAD_CLASS | ( | CLASS, | |||
| MODE, | |||||
| X | ) |
Value:
((CLASS) != LO_REGS && (CLASS) != BASE_REGS \ ? ((true_regnum (X) == -1 ? LO_REGS \ : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \ : NO_REGS)) \ : NO_REGS)
| #define THUMB_SECONDARY_OUTPUT_RELOAD_CLASS | ( | CLASS, | |||
| MODE, | |||||
| X | ) |
Value:
((CLASS) != LO_REGS \ ? ((true_regnum (X) == -1 ? LO_REGS \ : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \ : NO_REGS)) \ : NO_REGS)
| #define THUMB_TRAMPOLINE_TEMPLATE | ( | FILE | ) |
Value:
{ \
fprintf (FILE, "\t.code 32\n"); \
fprintf (FILE, ".Ltrampoline_start:\n"); \
asm_fprintf (FILE, "\tldr\t%r, [%r, #8]\n", \
STATIC_CHAIN_REGNUM, PC_REGNUM); \
asm_fprintf (FILE, "\tldr\t%r, [%r, #8]\n", \
IP_REGNUM, PC_REGNUM); \
asm_fprintf (FILE, "\torr\t%r, %r, #1\n", \
IP_REGNUM, IP_REGNUM); \
asm_fprintf (FILE, "\tbx\t%r\n", IP_REGNUM); \
fprintf (FILE, "\t.word\t0\n"); \
fprintf (FILE, "\t.word\t0\n"); \
fprintf (FILE, "\t.code 16\n"); \
}
| #define TRAMPOLINE_TEMPLATE | ( | FILE | ) |
Value:
if (TARGET_ARM) \ ARM_TRAMPOLINE_TEMPLATE (FILE) \ else \ THUMB_TRAMPOLINE_TEMPLATE (FILE)
| #define USE_RETURN_INSN | ( | ISCOND | ) | (TARGET_ARM ? use_return_insn (ISCOND) : 0) |
| #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN && ! TARGET_LITTLE_WORDS) |
| typedef enum arm_cond_code arm_cc |
| enum arm_builtins |
| enum arm_cond_code |
| enum floating_point_type |
| enum prog_mode_type |
| enum reg_class |
| int arm_arch5e |
| int arm_ccfsm_state |
| struct rtx_def* arm_compare_op0 |
| struct rtx_def* arm_compare_op1 |
| int arm_is_6_or_7 |
| int arm_is_strong |
| int arm_is_xscale |
| int arm_ld_sched |
| int arm_pic_register |
| const char* arm_pic_register_string |
| struct rtx_def* arm_target_insn |
| int arm_target_label |
| struct rtx_def* pool_vector_label |
| const char* structure_size_string |
| int target_flags |
Definition at line 35 of file gensupport.c.
| const char* target_fp_name |
| int thumb_code |
1.5.6