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
00073 #if defined(HAVE_NEW_FP)
00074 #define DO_LDF FPSTART; \
00075 if(FREG_1 != 31) \
00076 { \
00077 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 3); \
00078 state.f[FREG_1] = vax_ldf((u32) READ_PHYS(32)); \
00079 }
00080
00081 #define DO_LDG FPSTART; \
00082 if(FREG_1 != 31) \
00083 { \
00084 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 7); \
00085 state.f[FREG_1] = vax_ldg(READ_PHYS(64)); \
00086 }
00087
00088 #define DO_LDS FPSTART; \
00089 if(FREG_1 != 31) \
00090 { \
00091 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 3); \
00092 state.f[FREG_1] = ieee_lds((u32) READ_PHYS(32)); \
00093 }
00094
00095 #define DO_LDT FPSTART; \
00096 if(FREG_1 != 31) \
00097 { \
00098 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 7); \
00099 state.f[FREG_1] = READ_PHYS(64); \
00100 }
00101
00102 #define DO_STF FPSTART; \
00103 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 3); \
00104 WRITE_PHYS(vax_stf(state.f[FREG_1]), 32);
00105
00106 #define DO_STG FPSTART; \
00107 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 7); \
00108 WRITE_PHYS(vax_stg(state.f[FREG_1]), 64);
00109
00110 #define DO_STS FPSTART; \
00111 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 3); \
00112 WRITE_PHYS(ieee_sts(state.f[FREG_1]), 32);
00113
00114 #define DO_STT FPSTART; \
00115 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 7); \
00116 WRITE_PHYS(state.f[FREG_1], 64);
00117
00118 #else
00119 #define DO_LDF FPSTART; \
00120 if(FREG_1 != 31) \
00121 { \
00122 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 3); \
00123 state.f[FREG_1] = load_f((u32) READ_PHYS(32)); \
00124 }
00125
00126 #define DO_LDG FPSTART; \
00127 if(FREG_1 != 31) \
00128 { \
00129 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 7); \
00130 state.f[FREG_1] = load_g(READ_PHYS(64)); \
00131 }
00132
00133 #define DO_LDS FPSTART; \
00134 if(FREG_1 != 31) \
00135 { \
00136 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 3); \
00137 state.f[FREG_1] = load_s((u32) READ_PHYS(32)); \
00138 }
00139
00140 #define DO_LDT FPSTART; \
00141 if(FREG_1 != 31) \
00142 { \
00143 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_READ, 7); \
00144 state.f[FREG_1] = READ_PHYS(64); \
00145 }
00146
00147 #define DO_STF FPSTART; \
00148 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 3); \
00149 WRITE_PHYS(store_f(state.f[FREG_1]), 32);
00150
00151 #define DO_STG FPSTART; \
00152 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 7); \
00153 WRITE_PHYS(store_g(state.f[FREG_1]), 64);
00154
00155 #define DO_STS FPSTART; \
00156 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 3); \
00157 WRITE_PHYS(store_s(state.f[FREG_1]), 32);
00158
00159 #define DO_STT FPSTART; \
00160 DATA_PHYS(state.r[REG_2] + DISP_16, ACCESS_WRITE, 7); \
00161 WRITE_PHYS(state.f[FREG_1], 64);
00162 #endif