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
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 #include "ansidecl.h"
00057 #include "defs.h"
00058 #include "c_int_model.h"
00059 #include "config_targ.h"
00060 #ifdef TARG_MIPS
00061 #include "gnu_config.h"
00062 #include "config.h"
00063 #endif
00064
00065 TARGET_INT_MODEL Target_Int_Model = TARGET_INT_ILP32;
00066
00067 #if defined(CFE) || defined(FFE)
00068
00069
00070 struct {
00071 TYPE_ID mtype_short;
00072 TYPE_ID mtype_int;
00073 TYPE_ID mtype_long;
00074 TYPE_ID mtype_ushort;
00075 TYPE_ID mtype_uint;
00076 TYPE_ID mtype_ulong;
00077 #ifdef longlong
00078 TYPE_ID mtype_long_long;
00079 TYPE_ID mtype_ulong_long;
00080 #endif
00081 TYPE_ID mtype_pointer;
00082 } C_Int_Model[3] =
00083 {
00084
00085 {MTYPE_I2,
00086 MTYPE_I4,
00087 MTYPE_I4,
00088 MTYPE_U2,
00089 MTYPE_U4,
00090 MTYPE_U4,
00091 #ifdef longlong
00092 MTYPE_I8,
00093 MTYPE_U8,
00094 #endif
00095 MTYPE_U4
00096 },
00097
00098 {MTYPE_I2,
00099 MTYPE_I4,
00100 MTYPE_I8,
00101 MTYPE_U2,
00102 MTYPE_U4,
00103 MTYPE_U8,
00104 #ifdef longlong
00105 MTYPE_I8,
00106 MTYPE_U8,
00107 #endif
00108 MTYPE_U8
00109 },
00110
00111 {MTYPE_I2,
00112 MTYPE_I8,
00113 MTYPE_I8,
00114 MTYPE_U2,
00115 MTYPE_U8,
00116 MTYPE_U8,
00117 #ifdef longlong
00118 MTYPE_I8,
00119 MTYPE_U8,
00120 #endif
00121 MTYPE_U8
00122 }
00123 };
00124
00125 #define CIM_short(x) (C_Int_Model[x].mtype_short)
00126 #define CIM_int(x) (C_Int_Model[x].mtype_int)
00127 #define CIM_long(x) (C_Int_Model[x].mtype_long)
00128 #define CIM_ushort(x) (C_Int_Model[x].mtype_ushort)
00129 #define CIM_uint(x) (C_Int_Model[x].mtype_uint)
00130 #define CIM_ulong(x) (C_Int_Model[x].mtype_ulong)
00131 #define CIM_pointer(x) (C_Int_Model[x].mtype_pointer)
00132 #ifdef longlong
00133 #define CIM_long_long(x) (C_Int_Model[x].mtype_long_long)
00134 #define CIM_ulong_long(x) (C_Int_Model[x].mtype_ulong_long)
00135 #endif
00136 #endif
00137
00138 void Initialize_C_Int_Model( void ) {
00139 #ifdef TARG_MIPS
00140 if (TARGET_64BIT)
00141 Target_Int_Model = TARGET_INT_LP64;
00142 if (TARGET_BIG_ENDIAN)
00143 Target_Byte_Sex = BIG_ENDIAN;
00144 else Target_Byte_Sex = LITTLE_ENDIAN;
00145 #endif
00146 }
00147
00148 #if defined(CFE) || defined(FFE)
00149
00150 TYPE_ID FE_Int_Type_To_Mtype(int t)
00151 {
00152 }
00153
00154 TYPE_ID FE_Pointer_Type_To_Mtype( void )
00155 {
00156 return CIM_pointer(Target_Int_Model);
00157 }
00158
00159 TYPE_ID FE_int_To_Mtype( void )
00160 {
00161 return CIM_int(Target_Int_Model);
00162 }
00163
00164
00165 void Make_Int_Model_Consistent( void )
00166 {
00167 Use_32_Bit_Pointers =
00168 MTYPE_size_reg(CIM_pointer(Target_Int_Model)) == 32;
00169 }
00170
00171 #endif