mmix.h (PREFERRED_RELOAD_CLASS, [...]): Remove macro.
* config/mmix/mmix.h (PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. * config/mmix/mmix-protos.h (mmix_preferred_reload_class, mmix_preferred_output_reload_class): Remove. * config/mmix/mmix.c (mmix_preferred_reload_class, mmix_preferred_output_reload_class): Make static. Change rclass argument and return type to reg_class_t. (TARGET_PREFERRED_RELOAD_CLASS, TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. From-SVN: r177069
This commit is contained in:
parent
a44250f4dd
commit
0d5e496f46
4 changed files with 25 additions and 16 deletions
|
@ -1,3 +1,15 @@
|
||||||
|
2011-08-01 Anatoly Sokolov <aesok@post.ru>
|
||||||
|
|
||||||
|
* config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
|
||||||
|
PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
|
||||||
|
* config/mmix/mmix-protos.h (mmix_preferred_reload_class,
|
||||||
|
mmix_preferred_output_reload_class): Remove.
|
||||||
|
* config/mmix/mmix.c (mmix_preferred_reload_class,
|
||||||
|
mmix_preferred_output_reload_class): Make static. Change rclass
|
||||||
|
argument and return type to reg_class_t.
|
||||||
|
(TARGET_PREFERRED_RELOAD_CLASS,
|
||||||
|
TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
|
||||||
|
|
||||||
2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
|
2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||||
|
|
||||||
* mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
|
* mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
|
||||||
|
|
|
@ -59,9 +59,6 @@ extern void mmix_asm_declare_register_global
|
||||||
(FILE *, tree, int, const char *);
|
(FILE *, tree, int, const char *);
|
||||||
extern void mmix_asm_output_addr_diff_elt (FILE *, rtx, int, int);
|
extern void mmix_asm_output_addr_diff_elt (FILE *, rtx, int, int);
|
||||||
extern void mmix_asm_output_addr_vec_elt (FILE *, int);
|
extern void mmix_asm_output_addr_vec_elt (FILE *, int);
|
||||||
extern enum reg_class mmix_preferred_reload_class (rtx, enum reg_class);
|
|
||||||
extern enum reg_class mmix_preferred_output_reload_class
|
|
||||||
(rtx, enum reg_class);
|
|
||||||
extern enum reg_class mmix_secondary_reload_class
|
extern enum reg_class mmix_secondary_reload_class
|
||||||
(enum reg_class, enum machine_mode, rtx, int);
|
(enum reg_class, enum machine_mode, rtx, int);
|
||||||
extern int mmix_const_ok_for_letter_p (HOST_WIDE_INT, int);
|
extern int mmix_const_ok_for_letter_p (HOST_WIDE_INT, int);
|
||||||
|
|
|
@ -129,6 +129,8 @@ static void mmix_emit_sp_add (HOST_WIDE_INT offset);
|
||||||
static void mmix_target_asm_function_prologue (FILE *, HOST_WIDE_INT);
|
static void mmix_target_asm_function_prologue (FILE *, HOST_WIDE_INT);
|
||||||
static void mmix_target_asm_function_end_prologue (FILE *);
|
static void mmix_target_asm_function_end_prologue (FILE *);
|
||||||
static void mmix_target_asm_function_epilogue (FILE *, HOST_WIDE_INT);
|
static void mmix_target_asm_function_epilogue (FILE *, HOST_WIDE_INT);
|
||||||
|
static reg_class_t mmix_preferred_reload_class (rtx, reg_class_t);
|
||||||
|
static reg_class_t mmix_preferred_output_reload_class (rtx, reg_class_t);
|
||||||
static bool mmix_legitimate_address_p (enum machine_mode, rtx, bool);
|
static bool mmix_legitimate_address_p (enum machine_mode, rtx, bool);
|
||||||
static bool mmix_legitimate_constant_p (enum machine_mode, rtx);
|
static bool mmix_legitimate_constant_p (enum machine_mode, rtx);
|
||||||
static void mmix_reorg (void);
|
static void mmix_reorg (void);
|
||||||
|
@ -250,6 +252,11 @@ static void mmix_conditional_register_usage (void);
|
||||||
#undef TARGET_CALLEE_COPIES
|
#undef TARGET_CALLEE_COPIES
|
||||||
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
|
||||||
|
|
||||||
|
#undef TARGET_PREFERRED_RELOAD_CLASS
|
||||||
|
#define TARGET_PREFERRED_RELOAD_CLASS mmix_preferred_reload_class
|
||||||
|
#undef TARGET_PREFERRED_OUTPUT_RELOAD_CLASS
|
||||||
|
#define TARGET_PREFERRED_OUTPUT_RELOAD_CLASS mmix_preferred_reload_class
|
||||||
|
|
||||||
#undef TARGET_LEGITIMATE_ADDRESS_P
|
#undef TARGET_LEGITIMATE_ADDRESS_P
|
||||||
#define TARGET_LEGITIMATE_ADDRESS_P mmix_legitimate_address_p
|
#define TARGET_LEGITIMATE_ADDRESS_P mmix_legitimate_address_p
|
||||||
#undef TARGET_LEGITIMATE_CONSTANT_P
|
#undef TARGET_LEGITIMATE_CONSTANT_P
|
||||||
|
@ -409,23 +416,22 @@ mmix_local_regno (int regno)
|
||||||
return regno <= MMIX_LAST_STACK_REGISTER_REGNUM && !call_used_regs[regno];
|
return regno <= MMIX_LAST_STACK_REGISTER_REGNUM && !call_used_regs[regno];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PREFERRED_RELOAD_CLASS.
|
/* TARGET_PREFERRED_RELOAD_CLASS.
|
||||||
We need to extend the reload class of REMAINDER_REG and HIMULT_REG. */
|
We need to extend the reload class of REMAINDER_REG and HIMULT_REG. */
|
||||||
|
|
||||||
enum reg_class
|
static reg_class_t
|
||||||
mmix_preferred_reload_class (rtx x ATTRIBUTE_UNUSED, enum reg_class rclass)
|
mmix_preferred_reload_class (rtx x, reg_class_t rclass)
|
||||||
{
|
{
|
||||||
/* FIXME: Revisit. */
|
/* FIXME: Revisit. */
|
||||||
return GET_CODE (x) == MOD && GET_MODE (x) == DImode
|
return GET_CODE (x) == MOD && GET_MODE (x) == DImode
|
||||||
? REMAINDER_REG : rclass;
|
? REMAINDER_REG : rclass;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PREFERRED_OUTPUT_RELOAD_CLASS.
|
/* TARGET_PREFERRED_OUTPUT_RELOAD_CLASS.
|
||||||
We need to extend the reload class of REMAINDER_REG and HIMULT_REG. */
|
We need to extend the reload class of REMAINDER_REG and HIMULT_REG. */
|
||||||
|
|
||||||
enum reg_class
|
static reg_class_t
|
||||||
mmix_preferred_output_reload_class (rtx x ATTRIBUTE_UNUSED,
|
mmix_preferred_output_reload_class (rtx x, reg_class_t rclass)
|
||||||
enum reg_class rclass)
|
|
||||||
{
|
{
|
||||||
/* FIXME: Revisit. */
|
/* FIXME: Revisit. */
|
||||||
return GET_CODE (x) == MOD && GET_MODE (x) == DImode
|
return GET_CODE (x) == MOD && GET_MODE (x) == DImode
|
||||||
|
|
|
@ -452,12 +452,6 @@ enum reg_class
|
||||||
|
|
||||||
#define REGNO_OK_FOR_INDEX_P(REGNO) REGNO_OK_FOR_BASE_P (REGNO)
|
#define REGNO_OK_FOR_INDEX_P(REGNO) REGNO_OK_FOR_BASE_P (REGNO)
|
||||||
|
|
||||||
#define PREFERRED_RELOAD_CLASS(X, CLASS) \
|
|
||||||
mmix_preferred_reload_class (X, CLASS)
|
|
||||||
|
|
||||||
#define PREFERRED_OUTPUT_RELOAD_CLASS(X, CLASS) \
|
|
||||||
mmix_preferred_output_reload_class (X, CLASS)
|
|
||||||
|
|
||||||
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
|
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
|
||||||
mmix_secondary_reload_class (CLASS, MODE, X, 1)
|
mmix_secondary_reload_class (CLASS, MODE, X, 1)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue