Revision 2d603d22 softmmu_header.h
b/softmmu_header.h | ||
---|---|---|
51 | 51 |
|
52 | 52 |
#elif ACCESS_TYPE == 2 |
53 | 53 |
|
54 |
#ifdef TARGET_I386 |
|
54 | 55 |
#define CPU_MEM_INDEX ((env->hflags & HF_CPL_MASK) == 3) |
56 |
#elif defined (TARGET_PPC) |
|
57 |
#define CPU_MEM_INDEX (msr_pr) |
|
58 |
#endif |
|
55 | 59 |
#define MMUSUFFIX _mmu |
56 | 60 |
|
57 | 61 |
#elif ACCESS_TYPE == 3 |
58 | 62 |
|
63 |
#ifdef TARGET_I386 |
|
59 | 64 |
#define CPU_MEM_INDEX ((env->hflags & HF_CPL_MASK) == 3) |
65 |
#elif defined (TARGET_PPC) |
|
66 |
#define CPU_MEM_INDEX (msr_pr) |
|
67 |
#endif |
|
60 | 68 |
#define MMUSUFFIX _cmmu |
61 | 69 |
|
62 | 70 |
#else |
... | ... | |
283 | 291 |
|
284 | 292 |
#endif |
285 | 293 |
|
294 |
#if DATA_SIZE == 8 |
|
295 |
static inline double glue(ldfq, MEMSUFFIX)(void *ptr) |
|
296 |
{ |
|
297 |
union { |
|
298 |
double d; |
|
299 |
uint64_t i; |
|
300 |
} u; |
|
301 |
u.i = glue(ldq, MEMSUFFIX)(ptr); |
|
302 |
return u.d; |
|
303 |
} |
|
304 |
|
|
305 |
static inline void glue(stfq, MEMSUFFIX)(void *ptr, double v) |
|
306 |
{ |
|
307 |
union { |
|
308 |
double d; |
|
309 |
uint64_t i; |
|
310 |
} u; |
|
311 |
u.d = v; |
|
312 |
glue(stq, MEMSUFFIX)(ptr, u.i); |
|
313 |
} |
|
314 |
#endif /* DATA_SIZE == 8 */ |
|
315 |
|
|
316 |
#if DATA_SIZE == 4 |
|
317 |
static inline float glue(ldfl, MEMSUFFIX)(void *ptr) |
|
318 |
{ |
|
319 |
union { |
|
320 |
float f; |
|
321 |
uint32_t i; |
|
322 |
} u; |
|
323 |
u.i = glue(ldl, MEMSUFFIX)(ptr); |
|
324 |
return u.f; |
|
325 |
} |
|
326 |
|
|
327 |
static inline void glue(stfl, MEMSUFFIX)(void *ptr, float v) |
|
328 |
{ |
|
329 |
union { |
|
330 |
float f; |
|
331 |
uint32_t i; |
|
332 |
} u; |
|
333 |
u.f = v; |
|
334 |
glue(stl, MEMSUFFIX)(ptr, u.i); |
|
335 |
} |
|
336 |
#endif /* DATA_SIZE == 4 */ |
|
337 |
|
|
286 | 338 |
#undef RES_TYPE |
287 | 339 |
#undef DATA_TYPE |
288 | 340 |
#undef DATA_STYPE |
Also available in: Unified diff