re PR target/44749 (mep-elf fails to build)
PR target/44749 * config/mep/mep-protos.h (mep_save_register_info, mep_reinit_regs, mep_init_regs): Declare. * config/mep/mep.c: Move all target definitions to the end of the file to avoid the need for duplicate declarations. (mep_save_register_info, mep_reinit_regs, mep_init_regs): New. (mep_reorg_erepeat): Remove unused variables. (mep_expand_builtin): Likewise. * config/mep/mep-pragma.c: Don't include rtl.h. (INVALID_REGNUM): New. (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge functions. (mep_pragma_coprocessor_subclass): Rename "class" to "rclass". Avoid enum/integer math. From-SVN: r164268
This commit is contained in:
parent
927b02e5f8
commit
c28883e641
|
@ -1,3 +1,22 @@
|
||||||
|
2010-09-14 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
|
PR target/44749
|
||||||
|
* config/mep/mep-protos.h (mep_save_register_info,
|
||||||
|
mep_reinit_regs, mep_init_regs): Declare.
|
||||||
|
|
||||||
|
* config/mep/mep.c: Move all target definitions to the end of the
|
||||||
|
file to avoid the need for duplicate declarations.
|
||||||
|
(mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
|
||||||
|
(mep_reorg_erepeat): Remove unused variables.
|
||||||
|
(mep_expand_builtin): Likewise.
|
||||||
|
|
||||||
|
* config/mep/mep-pragma.c: Don't include rtl.h.
|
||||||
|
(INVALID_REGNUM): New.
|
||||||
|
(mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
|
||||||
|
functions.
|
||||||
|
(mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
|
||||||
|
Avoid enum/integer math.
|
||||||
|
|
||||||
2010-09-13 Joseph Myers <joseph@codesourcery.com>
|
2010-09-13 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
PR target/44749
|
PR target/44749
|
||||||
|
|
|
@ -24,7 +24,6 @@ along with GCC; see the file COPYING3. If not see
|
||||||
#include "coretypes.h"
|
#include "coretypes.h"
|
||||||
#include "tm.h"
|
#include "tm.h"
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "rtl.h"
|
|
||||||
#include "diagnostic-core.h"
|
#include "diagnostic-core.h"
|
||||||
#include "toplev.h"
|
#include "toplev.h"
|
||||||
#include "c-family/c-pragma.h"
|
#include "c-family/c-pragma.h"
|
||||||
|
@ -39,6 +38,14 @@ along with GCC; see the file COPYING3. If not see
|
||||||
|
|
||||||
enum cw_which { CW_AVAILABLE, CW_CALL_SAVED };
|
enum cw_which { CW_AVAILABLE, CW_CALL_SAVED };
|
||||||
|
|
||||||
|
/* This is normally provided by rtl.h but we can't include that file
|
||||||
|
here. It's safe to copy the definition here because we're only
|
||||||
|
using it internally; the value isn't passed to functions outside
|
||||||
|
this file. */
|
||||||
|
#ifndef INVALID_REGNUM
|
||||||
|
#define INVALID_REGNUM (~(unsigned int) 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
static enum cpp_ttype
|
static enum cpp_ttype
|
||||||
mep_pragma_lex (tree *valp)
|
mep_pragma_lex (tree *valp)
|
||||||
{
|
{
|
||||||
|
@ -201,8 +208,8 @@ mep_pragma_coprocessor_which (enum cw_which cw_which)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix up register class hierarchy. */
|
/* Fix up register class hierarchy. */
|
||||||
save_register_info ();
|
mep_save_register_info ();
|
||||||
reinit_regs ();
|
mep_reinit_regs ();
|
||||||
|
|
||||||
if (cfun == 0)
|
if (cfun == 0)
|
||||||
{
|
{
|
||||||
|
@ -263,20 +270,34 @@ mep_pragma_coprocessor_subclass (void)
|
||||||
enum cpp_ttype type;
|
enum cpp_ttype type;
|
||||||
HARD_REG_SET set;
|
HARD_REG_SET set;
|
||||||
int class_letter;
|
int class_letter;
|
||||||
enum reg_class class;
|
enum reg_class rclass;
|
||||||
|
|
||||||
type = mep_pragma_lex (&val);
|
type = mep_pragma_lex (&val);
|
||||||
if (type != CPP_CHAR)
|
if (type != CPP_CHAR)
|
||||||
goto syntax_error;
|
goto syntax_error;
|
||||||
class_letter = tree_low_cst (val, 1);
|
class_letter = tree_low_cst (val, 1);
|
||||||
if (class_letter >= 'A' && class_letter <= 'D')
|
if (class_letter >= 'A' && class_letter <= 'D')
|
||||||
class = class_letter - 'A' + USER0_REGS;
|
switch (class_letter)
|
||||||
|
{
|
||||||
|
case 'A':
|
||||||
|
rclass = USER0_REGS;
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
rclass = USER1_REGS;
|
||||||
|
break;
|
||||||
|
case 'C':
|
||||||
|
rclass = USER2_REGS;
|
||||||
|
break;
|
||||||
|
case 'D':
|
||||||
|
rclass = USER3_REGS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
error ("#pragma GCC coprocessor subclass letter must be in [ABCD]");
|
error ("#pragma GCC coprocessor subclass letter must be in [ABCD]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (reg_class_size[class] > 0)
|
if (reg_class_size[rclass] > 0)
|
||||||
{
|
{
|
||||||
error ("#pragma GCC coprocessor subclass '%c' already defined",
|
error ("#pragma GCC coprocessor subclass '%c' already defined",
|
||||||
class_letter);
|
class_letter);
|
||||||
|
@ -291,8 +312,8 @@ mep_pragma_coprocessor_subclass (void)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Fix up register class hierarchy. */
|
/* Fix up register class hierarchy. */
|
||||||
COPY_HARD_REG_SET (reg_class_contents[class], set);
|
COPY_HARD_REG_SET (reg_class_contents[rclass], set);
|
||||||
init_regs ();
|
mep_init_regs ();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
syntax_error:
|
syntax_error:
|
||||||
|
|
|
@ -108,6 +108,14 @@ extern bool mep_have_copro_copro_moves_p;
|
||||||
extern bool mep_cannot_change_mode_class (enum machine_mode, enum machine_mode,
|
extern bool mep_cannot_change_mode_class (enum machine_mode, enum machine_mode,
|
||||||
enum reg_class);
|
enum reg_class);
|
||||||
|
|
||||||
|
/* These are called from mep-pragmas (front end) and then call into
|
||||||
|
the RTL layer to re-initialize the register tables once we're done
|
||||||
|
changing them via pragmas. */
|
||||||
|
extern void mep_save_register_info (void);
|
||||||
|
extern void mep_reinit_regs (void);
|
||||||
|
extern void mep_init_regs (void);
|
||||||
|
|
||||||
|
|
||||||
extern int cgen_h_uint_6a1_immediate (rtx, enum machine_mode);
|
extern int cgen_h_uint_6a1_immediate (rtx, enum machine_mode);
|
||||||
extern int cgen_h_uint_7a1_immediate (rtx, enum machine_mode);
|
extern int cgen_h_uint_7a1_immediate (rtx, enum machine_mode);
|
||||||
extern int cgen_h_uint_8a1_immediate (rtx, enum machine_mode);
|
extern int cgen_h_uint_8a1_immediate (rtx, enum machine_mode);
|
||||||
|
|
|
@ -122,8 +122,6 @@ struct GTY(()) machine_function
|
||||||
#define MEP_CONTROL_REG(x) \
|
#define MEP_CONTROL_REG(x) \
|
||||||
(GET_CODE (x) == REG && ANY_CONTROL_REGNO_P (REGNO (x)))
|
(GET_CODE (x) == REG && ANY_CONTROL_REGNO_P (REGNO (x)))
|
||||||
|
|
||||||
static const struct attribute_spec mep_attribute_table[11];
|
|
||||||
|
|
||||||
static GTY(()) section * based_section;
|
static GTY(()) section * based_section;
|
||||||
static GTY(()) section * tinybss_section;
|
static GTY(()) section * tinybss_section;
|
||||||
static GTY(()) section * far_section;
|
static GTY(()) section * far_section;
|
||||||
|
@ -231,83 +229,6 @@ static tree mep_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *);
|
||||||
static bool mep_can_eliminate (const int, const int);
|
static bool mep_can_eliminate (const int, const int);
|
||||||
static void mep_trampoline_init (rtx, tree, rtx);
|
static void mep_trampoline_init (rtx, tree, rtx);
|
||||||
|
|
||||||
/* Initialize the GCC target structure. */
|
|
||||||
|
|
||||||
#undef TARGET_ASM_FUNCTION_PROLOGUE
|
|
||||||
#define TARGET_ASM_FUNCTION_PROLOGUE mep_start_function
|
|
||||||
#undef TARGET_ATTRIBUTE_TABLE
|
|
||||||
#define TARGET_ATTRIBUTE_TABLE mep_attribute_table
|
|
||||||
#undef TARGET_COMP_TYPE_ATTRIBUTES
|
|
||||||
#define TARGET_COMP_TYPE_ATTRIBUTES mep_comp_type_attributes
|
|
||||||
#undef TARGET_INSERT_ATTRIBUTES
|
|
||||||
#define TARGET_INSERT_ATTRIBUTES mep_insert_attributes
|
|
||||||
#undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
|
|
||||||
#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P mep_function_attribute_inlinable_p
|
|
||||||
#undef TARGET_CAN_INLINE_P
|
|
||||||
#define TARGET_CAN_INLINE_P mep_can_inline_p
|
|
||||||
#undef TARGET_SECTION_TYPE_FLAGS
|
|
||||||
#define TARGET_SECTION_TYPE_FLAGS mep_section_type_flags
|
|
||||||
#undef TARGET_ASM_NAMED_SECTION
|
|
||||||
#define TARGET_ASM_NAMED_SECTION mep_asm_named_section
|
|
||||||
#undef TARGET_INIT_BUILTINS
|
|
||||||
#define TARGET_INIT_BUILTINS mep_init_builtins
|
|
||||||
#undef TARGET_EXPAND_BUILTIN
|
|
||||||
#define TARGET_EXPAND_BUILTIN mep_expand_builtin
|
|
||||||
#undef TARGET_SCHED_ADJUST_COST
|
|
||||||
#define TARGET_SCHED_ADJUST_COST mep_adjust_cost
|
|
||||||
#undef TARGET_SCHED_ISSUE_RATE
|
|
||||||
#define TARGET_SCHED_ISSUE_RATE mep_issue_rate
|
|
||||||
#undef TARGET_SCHED_REORDER
|
|
||||||
#define TARGET_SCHED_REORDER mep_sched_reorder
|
|
||||||
#undef TARGET_STRIP_NAME_ENCODING
|
|
||||||
#define TARGET_STRIP_NAME_ENCODING mep_strip_name_encoding
|
|
||||||
#undef TARGET_ASM_SELECT_SECTION
|
|
||||||
#define TARGET_ASM_SELECT_SECTION mep_select_section
|
|
||||||
#undef TARGET_ASM_UNIQUE_SECTION
|
|
||||||
#define TARGET_ASM_UNIQUE_SECTION mep_unique_section
|
|
||||||
#undef TARGET_ENCODE_SECTION_INFO
|
|
||||||
#define TARGET_ENCODE_SECTION_INFO mep_encode_section_info
|
|
||||||
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
|
|
||||||
#define TARGET_FUNCTION_OK_FOR_SIBCALL mep_function_ok_for_sibcall
|
|
||||||
#undef TARGET_RTX_COSTS
|
|
||||||
#define TARGET_RTX_COSTS mep_rtx_cost
|
|
||||||
#undef TARGET_ADDRESS_COST
|
|
||||||
#define TARGET_ADDRESS_COST mep_address_cost
|
|
||||||
#undef TARGET_MACHINE_DEPENDENT_REORG
|
|
||||||
#define TARGET_MACHINE_DEPENDENT_REORG mep_reorg
|
|
||||||
#undef TARGET_SETUP_INCOMING_VARARGS
|
|
||||||
#define TARGET_SETUP_INCOMING_VARARGS mep_setup_incoming_varargs
|
|
||||||
#undef TARGET_PASS_BY_REFERENCE
|
|
||||||
#define TARGET_PASS_BY_REFERENCE mep_pass_by_reference
|
|
||||||
#undef TARGET_VECTOR_MODE_SUPPORTED_P
|
|
||||||
#define TARGET_VECTOR_MODE_SUPPORTED_P mep_vector_mode_supported_p
|
|
||||||
#undef TARGET_HANDLE_OPTION
|
|
||||||
#define TARGET_HANDLE_OPTION mep_handle_option
|
|
||||||
#undef TARGET_DEFAULT_TARGET_FLAGS
|
|
||||||
#define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
|
|
||||||
#undef TARGET_ALLOCATE_INITIAL_VALUE
|
|
||||||
#define TARGET_ALLOCATE_INITIAL_VALUE mep_allocate_initial_value
|
|
||||||
#undef TARGET_ASM_INIT_SECTIONS
|
|
||||||
#define TARGET_ASM_INIT_SECTIONS mep_asm_init_sections
|
|
||||||
#undef TARGET_RETURN_IN_MEMORY
|
|
||||||
#define TARGET_RETURN_IN_MEMORY mep_return_in_memory
|
|
||||||
#undef TARGET_NARROW_VOLATILE_BITFIELD
|
|
||||||
#define TARGET_NARROW_VOLATILE_BITFIELD mep_narrow_volatile_bitfield
|
|
||||||
#undef TARGET_EXPAND_BUILTIN_SAVEREGS
|
|
||||||
#define TARGET_EXPAND_BUILTIN_SAVEREGS mep_expand_builtin_saveregs
|
|
||||||
#undef TARGET_BUILD_BUILTIN_VA_LIST
|
|
||||||
#define TARGET_BUILD_BUILTIN_VA_LIST mep_build_builtin_va_list
|
|
||||||
#undef TARGET_EXPAND_BUILTIN_VA_START
|
|
||||||
#define TARGET_EXPAND_BUILTIN_VA_START mep_expand_va_start
|
|
||||||
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
|
|
||||||
#define TARGET_GIMPLIFY_VA_ARG_EXPR mep_gimplify_va_arg_expr
|
|
||||||
#undef TARGET_CAN_ELIMINATE
|
|
||||||
#define TARGET_CAN_ELIMINATE mep_can_eliminate
|
|
||||||
#undef TARGET_TRAMPOLINE_INIT
|
|
||||||
#define TARGET_TRAMPOLINE_INIT mep_trampoline_init
|
|
||||||
|
|
||||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
|
||||||
|
|
||||||
#define WANT_GCC_DEFINITIONS
|
#define WANT_GCC_DEFINITIONS
|
||||||
#include "mep-intrin.h"
|
#include "mep-intrin.h"
|
||||||
#undef WANT_GCC_DEFINITIONS
|
#undef WANT_GCC_DEFINITIONS
|
||||||
|
@ -4303,6 +4224,30 @@ mep_file_cleanups (void)
|
||||||
htab_traverse (pragma_htab, note_unused_pragma_disinterrupt, NULL);
|
htab_traverse (pragma_htab, note_unused_pragma_disinterrupt, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* These three functions provide a bridge between the pramgas that
|
||||||
|
affect register classes, and the functions that maintain them. We
|
||||||
|
can't call those functions directly as pragma handling is part of
|
||||||
|
the front end and doesn't have direct access to them. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mep_save_register_info (void)
|
||||||
|
{
|
||||||
|
save_register_info ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
mep_reinit_regs (void)
|
||||||
|
{
|
||||||
|
reinit_regs ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
mep_init_regs (void)
|
||||||
|
{
|
||||||
|
init_regs ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mep_attrlist_to_encoding (tree list, tree decl)
|
mep_attrlist_to_encoding (tree list, tree decl)
|
||||||
|
@ -5629,7 +5574,7 @@ mep_invert_branch (rtx insn, rtx after)
|
||||||
static void
|
static void
|
||||||
mep_reorg_erepeat (rtx insns)
|
mep_reorg_erepeat (rtx insns)
|
||||||
{
|
{
|
||||||
rtx insn, prev, label_before, l, x;
|
rtx insn, prev, l, x;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
for (insn = insns; insn; insn = NEXT_INSN (insn))
|
for (insn = insns; insn; insn = NEXT_INSN (insn))
|
||||||
|
@ -5644,7 +5589,6 @@ mep_reorg_erepeat (rtx insns)
|
||||||
print_rtl_single (dump_file, insn);
|
print_rtl_single (dump_file, insn);
|
||||||
}
|
}
|
||||||
count = simplejump_p (insn) ? 0 : 1;
|
count = simplejump_p (insn) ? 0 : 1;
|
||||||
label_before = 0;
|
|
||||||
for (prev = PREV_INSN (insn); prev; prev = PREV_INSN (prev))
|
for (prev = PREV_INSN (insn); prev; prev = PREV_INSN (prev))
|
||||||
{
|
{
|
||||||
if (GET_CODE (prev) == CALL_INSN
|
if (GET_CODE (prev) == CALL_INSN
|
||||||
|
@ -5733,8 +5677,6 @@ mep_reorg_erepeat (rtx insns)
|
||||||
if (INSN_P (prev))
|
if (INSN_P (prev))
|
||||||
{
|
{
|
||||||
count ++;
|
count ++;
|
||||||
if (count == 2)
|
|
||||||
label_before = prev;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6332,7 +6274,6 @@ mep_expand_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
|
||||||
const struct cgen_insn *cgen_insn;
|
const struct cgen_insn *cgen_insn;
|
||||||
const struct insn_data_d *idata;
|
const struct insn_data_d *idata;
|
||||||
unsigned int first_arg = 0;
|
unsigned int first_arg = 0;
|
||||||
tree return_type = void_type_node;
|
|
||||||
unsigned int builtin_n_args;
|
unsigned int builtin_n_args;
|
||||||
|
|
||||||
fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
|
fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
|
||||||
|
@ -6354,7 +6295,7 @@ mep_expand_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
|
||||||
if (cgen_insn->cret_p > 1)
|
if (cgen_insn->cret_p > 1)
|
||||||
builtin_n_args ++;
|
builtin_n_args ++;
|
||||||
first_arg = 1;
|
first_arg = 1;
|
||||||
return_type = mep_cgen_regnum_to_type (cgen_insn->regnums[0].type);
|
mep_cgen_regnum_to_type (cgen_insn->regnums[0].type);
|
||||||
builtin_n_args --;
|
builtin_n_args --;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7415,5 +7356,82 @@ mep_asm_init_sections (void)
|
||||||
"\t.section .ftext,\"ax\"\n\t.core");
|
"\t.section .ftext,\"ax\"\n\t.core");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Initialize the GCC target structure. */
|
||||||
|
|
||||||
|
#undef TARGET_ASM_FUNCTION_PROLOGUE
|
||||||
|
#define TARGET_ASM_FUNCTION_PROLOGUE mep_start_function
|
||||||
|
#undef TARGET_ATTRIBUTE_TABLE
|
||||||
|
#define TARGET_ATTRIBUTE_TABLE mep_attribute_table
|
||||||
|
#undef TARGET_COMP_TYPE_ATTRIBUTES
|
||||||
|
#define TARGET_COMP_TYPE_ATTRIBUTES mep_comp_type_attributes
|
||||||
|
#undef TARGET_INSERT_ATTRIBUTES
|
||||||
|
#define TARGET_INSERT_ATTRIBUTES mep_insert_attributes
|
||||||
|
#undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
|
||||||
|
#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P mep_function_attribute_inlinable_p
|
||||||
|
#undef TARGET_CAN_INLINE_P
|
||||||
|
#define TARGET_CAN_INLINE_P mep_can_inline_p
|
||||||
|
#undef TARGET_SECTION_TYPE_FLAGS
|
||||||
|
#define TARGET_SECTION_TYPE_FLAGS mep_section_type_flags
|
||||||
|
#undef TARGET_ASM_NAMED_SECTION
|
||||||
|
#define TARGET_ASM_NAMED_SECTION mep_asm_named_section
|
||||||
|
#undef TARGET_INIT_BUILTINS
|
||||||
|
#define TARGET_INIT_BUILTINS mep_init_builtins
|
||||||
|
#undef TARGET_EXPAND_BUILTIN
|
||||||
|
#define TARGET_EXPAND_BUILTIN mep_expand_builtin
|
||||||
|
#undef TARGET_SCHED_ADJUST_COST
|
||||||
|
#define TARGET_SCHED_ADJUST_COST mep_adjust_cost
|
||||||
|
#undef TARGET_SCHED_ISSUE_RATE
|
||||||
|
#define TARGET_SCHED_ISSUE_RATE mep_issue_rate
|
||||||
|
#undef TARGET_SCHED_REORDER
|
||||||
|
#define TARGET_SCHED_REORDER mep_sched_reorder
|
||||||
|
#undef TARGET_STRIP_NAME_ENCODING
|
||||||
|
#define TARGET_STRIP_NAME_ENCODING mep_strip_name_encoding
|
||||||
|
#undef TARGET_ASM_SELECT_SECTION
|
||||||
|
#define TARGET_ASM_SELECT_SECTION mep_select_section
|
||||||
|
#undef TARGET_ASM_UNIQUE_SECTION
|
||||||
|
#define TARGET_ASM_UNIQUE_SECTION mep_unique_section
|
||||||
|
#undef TARGET_ENCODE_SECTION_INFO
|
||||||
|
#define TARGET_ENCODE_SECTION_INFO mep_encode_section_info
|
||||||
|
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
|
||||||
|
#define TARGET_FUNCTION_OK_FOR_SIBCALL mep_function_ok_for_sibcall
|
||||||
|
#undef TARGET_RTX_COSTS
|
||||||
|
#define TARGET_RTX_COSTS mep_rtx_cost
|
||||||
|
#undef TARGET_ADDRESS_COST
|
||||||
|
#define TARGET_ADDRESS_COST mep_address_cost
|
||||||
|
#undef TARGET_MACHINE_DEPENDENT_REORG
|
||||||
|
#define TARGET_MACHINE_DEPENDENT_REORG mep_reorg
|
||||||
|
#undef TARGET_SETUP_INCOMING_VARARGS
|
||||||
|
#define TARGET_SETUP_INCOMING_VARARGS mep_setup_incoming_varargs
|
||||||
|
#undef TARGET_PASS_BY_REFERENCE
|
||||||
|
#define TARGET_PASS_BY_REFERENCE mep_pass_by_reference
|
||||||
|
#undef TARGET_VECTOR_MODE_SUPPORTED_P
|
||||||
|
#define TARGET_VECTOR_MODE_SUPPORTED_P mep_vector_mode_supported_p
|
||||||
|
#undef TARGET_HANDLE_OPTION
|
||||||
|
#define TARGET_HANDLE_OPTION mep_handle_option
|
||||||
|
#undef TARGET_DEFAULT_TARGET_FLAGS
|
||||||
|
#define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT
|
||||||
|
#undef TARGET_ALLOCATE_INITIAL_VALUE
|
||||||
|
#define TARGET_ALLOCATE_INITIAL_VALUE mep_allocate_initial_value
|
||||||
|
#undef TARGET_ASM_INIT_SECTIONS
|
||||||
|
#define TARGET_ASM_INIT_SECTIONS mep_asm_init_sections
|
||||||
|
#undef TARGET_RETURN_IN_MEMORY
|
||||||
|
#define TARGET_RETURN_IN_MEMORY mep_return_in_memory
|
||||||
|
#undef TARGET_NARROW_VOLATILE_BITFIELD
|
||||||
|
#define TARGET_NARROW_VOLATILE_BITFIELD mep_narrow_volatile_bitfield
|
||||||
|
#undef TARGET_EXPAND_BUILTIN_SAVEREGS
|
||||||
|
#define TARGET_EXPAND_BUILTIN_SAVEREGS mep_expand_builtin_saveregs
|
||||||
|
#undef TARGET_BUILD_BUILTIN_VA_LIST
|
||||||
|
#define TARGET_BUILD_BUILTIN_VA_LIST mep_build_builtin_va_list
|
||||||
|
#undef TARGET_EXPAND_BUILTIN_VA_START
|
||||||
|
#define TARGET_EXPAND_BUILTIN_VA_START mep_expand_va_start
|
||||||
|
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
|
||||||
|
#define TARGET_GIMPLIFY_VA_ARG_EXPR mep_gimplify_va_arg_expr
|
||||||
|
#undef TARGET_CAN_ELIMINATE
|
||||||
|
#define TARGET_CAN_ELIMINATE mep_can_eliminate
|
||||||
|
#undef TARGET_TRAMPOLINE_INIT
|
||||||
|
#define TARGET_TRAMPOLINE_INIT mep_trampoline_init
|
||||||
|
|
||||||
|
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||||
|
|
||||||
#include "gt-mep.h"
|
#include "gt-mep.h"
|
||||||
|
|
Loading…
Reference in New Issue