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 #ifndef targ_sim_INCLUDED
00044 #define targ_sim_INCLUDED
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #define MAX_NUMBER_OF_REGISTERS_FOR_RETURN 4
00055 #define MAX_NUMBER_OF_REGISTER_PARAMETERS 16 // used in data_layout.cxx
00056 #define MAX_NUMBER_OF_INT_REGISTER_PARAMETERS 16
00057 #define MAX_NUMBER_OF_FLOAT_REGISTER_PARAMETERS 16
00058
00059
00060 #define First_Int32_Preg_Return_Offset 1
00061 #define Last_Int32_Preg_Return_Offset \
00062 (First_Int32_Preg_Return_Offset + MAX_NUMBER_OF_REGISTERS_FOR_RETURN -1)
00063 #define First_Int32_Preg_Param_Offset (Last_Int32_Preg_Return_Offset + 1)
00064 #define Last_Int32_Preg_Param_Offset \
00065 (First_Int32_Preg_Param_Offset + MAX_NUMBER_OF_REGISTER_PARAMETERS -1)
00066 #define Stack_Pointer_Preg_Offset (Last_Int32_Preg_Param_Offset + 1)
00067 #define Frame_Pointer_Preg_Offset (Stack_Pointer_Preg_Offset + 1)
00068 #define Static_Link_Preg_Offset (Frame_Pointer_Preg_Offset + 1)
00069 #define First_Int64_Preg_Return_Offset (Static_Link_Preg_Offset + 1)
00070 #define Last_Int64_Preg_Return_Offset \
00071 (First_Int64_Preg_Return_Offset + MAX_NUMBER_OF_REGISTERS_FOR_RETURN -1)
00072 #define First_Int64_Preg_Param_Offset (Last_Int64_Preg_Return_Offset + 1)
00073 #define Last_Int64_Preg_Param_Offset \
00074 (First_Int64_Preg_Param_Offset + MAX_NUMBER_OF_REGISTER_PARAMETERS -1)
00075 #define First_Float32_Preg_Return_Offset (Last_Int64_Preg_Param_Offset + 1)
00076 #define Last_Float32_Preg_Return_Offset \
00077 (First_Float32_Preg_Return_Offset + MAX_NUMBER_OF_REGISTERS_FOR_RETURN -1)
00078 #define First_Float32_Preg_Param_Offset (Last_Float32_Preg_Return_Offset + 1)
00079 #define Last_Float32_Preg_Param_Offset \
00080 (First_Float32_Preg_Param_Offset + MAX_NUMBER_OF_REGISTER_PARAMETERS -1)
00081 #define First_Float64_Preg_Return_Offset (Last_Float32_Preg_Param_Offset + 1)
00082 #define Last_Float64_Preg_Return_Offset \
00083 (First_Float64_Preg_Return_Offset + MAX_NUMBER_OF_REGISTERS_FOR_RETURN -1)
00084 #define First_Float64_Preg_Param_Offset (Last_Float64_Preg_Return_Offset + 1)
00085 #define Last_Float64_Preg_Param_Offset \
00086 (First_Float64_Preg_Param_Offset + MAX_NUMBER_OF_REGISTER_PARAMETERS -1)
00087
00088
00089 #define Int32_Preg_Min_Offset First_Int32_Preg_Return_Offset
00090 #define Int32_Preg_Max_Offset Static_Link_Preg_Offset
00091 #define Int64_Preg_Min_Offset First_Int64_Preg_Return_Offset
00092 #define Int64_Preg_Max_Offset Last_Int64_Preg_Param_Offset
00093 #define Float32_Preg_Min_Offset First_Float32_Preg_Return_Offset
00094 #define Float32_Preg_Max_Offset Last_Float32_Preg_Param_Offset
00095 #define Float64_Preg_Min_Offset First_Float64_Preg_Return_Offset
00096 #define Float64_Preg_Max_Offset Last_Float64_Preg_Param_Offset
00097 #define First_Int_Preg_Return_Offset First_Int32_Preg_Return_Offset
00098 #define First_Int_Preg_Param_Offset First_Int32_Preg_Param_Offset
00099 #define First_Float_Preg_Return_Offset First_Float32_Preg_Return_Offset
00100 #define First_Float_Preg_Param_Offset First_Float32_Preg_Param_Offset
00101 #define Int_Preg_Min_Offset Int32_Preg_Min_Offset
00102 #define Int_Preg_Max_Offset Int64_Preg_Max_Offset
00103 #define Float_Preg_Min_Offset Float32_Preg_Min_Offset
00104 #define Float_Preg_Max_Offset Float64_Preg_Max_Offset
00105 #define Last_Dedicated_Preg_Offset Float64_Preg_Max_Offset
00106
00107 #define PUSH_RETURN_ADDRESS_ON_STACK FALSE
00108 #define PUSH_FRAME_POINTER_ON_STACK FALSE
00109 #define USE_HIGH_LEVEL_PROCEDURE_EXIT TRUE
00110
00111 #define Preg_Offset_Is_Int32(n) \
00112 ((n) >= Int32_Preg_Min_Offset && (n) <= Int32_Preg_Max_Offset)
00113 #define Preg_Offset_Is_Float32(n) \
00114 ((n) >= Float32_Preg_Min_Offset && (n) <= Float32_Preg_Max_Offset)
00115 #define Preg_Offset_Is_Int64(n) \
00116 ((n) >= Int64_Preg_Min_Offset && (n) <= Int64_Preg_Max_Offset)
00117 #define Preg_Offset_Is_Float64(n) \
00118 ((n) >= Float64_Preg_Min_Offset && (n) <= Float64_Preg_Max_Offset)
00119
00120
00121 #include "targ_sim_core.h"
00122
00123 #ifdef __cplusplus
00124 }
00125 #endif
00126
00127 #endif
00128