00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 static inline enum reg_class
00026 base_reg_class (enum machine_mode mode ATTRIBUTE_UNUSED,
00027 enum rtx_code outer_code ATTRIBUTE_UNUSED,
00028 enum rtx_code index_code ATTRIBUTE_UNUSED)
00029 {
00030 #ifdef MODE_CODE_BASE_REG_CLASS
00031 return MODE_CODE_BASE_REG_CLASS (mode, outer_code, index_code);
00032 #else
00033 #ifdef MODE_BASE_REG_REG_CLASS
00034 if (index_code == REG)
00035 return MODE_BASE_REG_REG_CLASS (mode);
00036 #endif
00037 #ifdef MODE_BASE_REG_CLASS
00038 return MODE_BASE_REG_CLASS (mode);
00039 #else
00040 return BASE_REG_CLASS;
00041 #endif
00042 #endif
00043 }
00044
00045
00046
00047
00048
00049
00050 static inline bool
00051 ok_for_base_p_1 (unsigned regno, enum machine_mode mode ATTRIBUTE_UNUSED,
00052 enum rtx_code outer_code ATTRIBUTE_UNUSED,
00053 enum rtx_code index_code ATTRIBUTE_UNUSED)
00054 {
00055 #ifdef REGNO_MODE_CODE_OK_FOR_BASE_P
00056 return REGNO_MODE_CODE_OK_FOR_BASE_P (regno, mode, outer_code, index_code);
00057 #else
00058 #ifdef REGNO_MODE_OK_FOR_REG_BASE_P
00059 if (index_code == REG)
00060 return REGNO_MODE_OK_FOR_REG_BASE_P (regno, mode);
00061 #endif
00062 #ifdef REGNO_MODE_OK_FOR_BASE_P
00063 return REGNO_MODE_OK_FOR_BASE_P (regno, mode);
00064 #else
00065 return REGNO_OK_FOR_BASE_P (regno);
00066 #endif
00067 #endif
00068 }
00069
00070
00071
00072
00073 static inline bool
00074 regno_ok_for_base_p (unsigned regno, enum machine_mode mode,
00075 enum rtx_code outer_code, enum rtx_code index_code)
00076 {
00077 if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] >= 0)
00078 regno = reg_renumber[regno];
00079
00080 return ok_for_base_p_1 (regno, mode, outer_code, index_code);
00081 }