diff options
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/mep/mep-protos.h | 3 | ||||
-rw-r--r-- | gcc/config/mep/mep.c | 126 | ||||
-rw-r--r-- | gcc/config/mep/mep.h | 15 |
4 files changed, 10 insertions, 144 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 773537a..10af724 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2012-08-21 Nathan Froyd <froydnj@gcc.gnu.org> + + * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete. + * config/mep/mep.c (mep_reg_class_from_constraint): Delete. + (mep_const_ok_for_letter_p, mep_extra_constraint): Delete. + * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete. + (mep_const_ok_for_letter_p, mep_extra_constraint): Delete. + 2012-08-21 Oleg Endo <olegendo@gcc.gnu.org> * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t, diff --git a/gcc/config/mep/mep-protos.h b/gcc/config/mep/mep-protos.h index edfbaf7..f0f3496 100644 --- a/gcc/config/mep/mep-protos.h +++ b/gcc/config/mep/mep-protos.h @@ -20,9 +20,6 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ extern int mep_regno_reg_class (int); -extern int mep_reg_class_from_constraint (int, const char *); -extern bool mep_const_ok_for_letter_p (HOST_WIDE_INT, int); -extern bool mep_extra_constraint (rtx, int); extern rtx mep_mulr_source (rtx, rtx, rtx, rtx); extern bool mep_reuse_lo_p (rtx, rtx, rtx, bool); extern bool mep_use_post_modify_p (rtx, rtx, rtx); diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c index bba0327..5089e03 100644 --- a/gcc/config/mep/mep.c +++ b/gcc/config/mep/mep.c @@ -596,132 +596,6 @@ mep_regno_reg_class (int regno) return NO_REGS; } -#if 0 -int -mep_reg_class_from_constraint (int c, const char *str) -{ - switch (c) - { - case 'a': - return SP_REGS; - case 'b': - return TP_REGS; - case 'c': - return CONTROL_REGS; - case 'd': - return HILO_REGS; - case 'e': - { - switch (str[1]) - { - case 'm': - return LOADABLE_CR_REGS; - case 'x': - return mep_have_copro_copro_moves_p ? CR_REGS : NO_REGS; - case 'r': - return mep_have_core_copro_moves_p ? CR_REGS : NO_REGS; - default: - return NO_REGS; - } - } - case 'h': - return HI_REGS; - case 'j': - return RPC_REGS; - case 'l': - return LO_REGS; - case 't': - return TPREL_REGS; - case 'v': - return GP_REGS; - case 'x': - return CR_REGS; - case 'y': - return CCR_REGS; - case 'z': - return R0_REGS; - - case 'A': - case 'B': - case 'C': - case 'D': - { - enum reg_class which = c - 'A' + USER0_REGS; - return (reg_class_size[which] > 0 ? which : NO_REGS); - } - - default: - return NO_REGS; - } -} - -bool -mep_const_ok_for_letter_p (HOST_WIDE_INT value, int c) -{ - switch (c) - { - case 'I': return value >= -32768 && value < 32768; - case 'J': return value >= 0 && value < 65536; - case 'K': return value >= 0 && value < 0x01000000; - case 'L': return value >= -32 && value < 32; - case 'M': return value >= 0 && value < 32; - case 'N': return value >= 0 && value < 16; - case 'O': - if (value & 0xffff) - return false; - return value >= -2147483647-1 && value <= 2147483647; - default: - gcc_unreachable (); - } -} - -bool -mep_extra_constraint (rtx value, int c) -{ - encode_pattern (value); - - switch (c) - { - case 'R': - /* For near symbols, like what call uses. */ - if (GET_CODE (value) == REG) - return 0; - return mep_call_address_operand (value, GET_MODE (value)); - - case 'S': - /* For signed 8-bit immediates. */ - return (GET_CODE (value) == CONST_INT - && INTVAL (value) >= -128 - && INTVAL (value) <= 127); - - case 'T': - /* For tp/gp relative symbol values. */ - return (RTX_IS ("u3s") || RTX_IS ("u2s") - || RTX_IS ("+u3si") || RTX_IS ("+u2si")); - - case 'U': - /* Non-absolute memories. */ - return GET_CODE (value) == MEM && ! CONSTANT_P (XEXP (value, 0)); - - case 'W': - /* %hi(sym) */ - return RTX_IS ("Hs"); - - case 'Y': - /* Register indirect. */ - return RTX_IS ("mr"); - - case 'Z': - return mep_section_tag (value) == 'c' && RTX_IS ("ms"); - } - - return false; -} -#endif - -#undef PASS -#undef FAIL - static bool const_in_range (rtx x, int minv, int maxv) { diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h index 920120c..9a382e6 100644 --- a/gcc/config/mep/mep.h +++ b/gcc/config/mep/mep.h @@ -408,11 +408,6 @@ enum reg_class #define BASE_REG_CLASS GENERAL_REGS #define INDEX_REG_CLASS GENERAL_REGS -#if 0 -#define REG_CLASS_FROM_CONSTRAINT(CHAR, STRING) \ - mep_reg_class_from_constraint (CHAR, STRING) -#endif - #define REGNO_OK_FOR_BASE_P(NUM) (GR_REGNO_P (NUM) \ || (NUM) == ARG_POINTER_REGNUM \ || (NUM) >= FIRST_PSEUDO_REGISTER) @@ -428,16 +423,6 @@ enum reg_class #define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ mep_secondary_memory_needed (CLASS1, CLASS2, MODE) -#if 0 -#define CONST_OK_FOR_LETTER_P(VALUE, C) mep_const_ok_for_letter_p (VALUE, C) - -#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0 - -#define CONSTRAINT_LEN(C, STR) \ - ((C) == 'e' ? 2 : DEFAULT_CONSTRAINT_LEN (C, STR)) -#define EXTRA_CONSTRAINT(VALUE, C) mep_extra_constraint (VALUE, C) -#endif - #define WANT_GCC_DECLARATIONS #include "mep-intrin.h" #undef WANT_GCC_DECLARATIONS |