Revision c27004ec softmmu_header.h

b/softmmu_header.h
82 82
#endif
83 83

  
84 84

  
85
DATA_TYPE REGPARM(1) glue(glue(__ld, SUFFIX), MMUSUFFIX)(unsigned long addr,
85
DATA_TYPE REGPARM(1) glue(glue(__ld, SUFFIX), MMUSUFFIX)(target_ulong addr,
86 86
                                                         int is_user);
87
void REGPARM(2) glue(glue(__st, SUFFIX), MMUSUFFIX)(unsigned long addr, DATA_TYPE v, int is_user);
87
void REGPARM(2) glue(glue(__st, SUFFIX), MMUSUFFIX)(target_ulong addr, DATA_TYPE v, int is_user);
88 88

  
89
#if (DATA_SIZE <= 4) && defined(__i386__) && (ACCESS_TYPE <= 1) && defined(ASM_SOFTMMU)
89
#if (DATA_SIZE <= 4) && (TARGET_LONG_BITS == 32) && defined(__i386__) && \
90
    (ACCESS_TYPE <= 1) && defined(ASM_SOFTMMU)
90 91

  
91
static inline RES_TYPE glue(glue(ld, USUFFIX), MEMSUFFIX)(void *ptr)
92
static inline RES_TYPE glue(glue(ld, USUFFIX), MEMSUFFIX)(target_ulong ptr)
92 93
{
93 94
    int res;
94 95

  
......
131 132
}
132 133

  
133 134
#if DATA_SIZE <= 2
134
static inline int glue(glue(lds, SUFFIX), MEMSUFFIX)(void *ptr)
135
static inline int glue(glue(lds, SUFFIX), MEMSUFFIX)(target_ulong ptr)
135 136
{
136 137
    int res;
137 138

  
......
178 179
}
179 180
#endif
180 181

  
181
static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(void *ptr, RES_TYPE v)
182
static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
182 183
{
183 184
    asm volatile ("movl %0, %%edx\n"
184 185
                  "movl %0, %%eax\n"
......
232 233

  
233 234
/* generic load/store macros */
234 235

  
235
static inline RES_TYPE glue(glue(ld, USUFFIX), MEMSUFFIX)(void *ptr)
236
static inline RES_TYPE glue(glue(ld, USUFFIX), MEMSUFFIX)(target_ulong ptr)
236 237
{
237 238
    int index;
238 239
    RES_TYPE res;
239
    unsigned long addr, physaddr;
240
    target_ulong addr;
241
    unsigned long physaddr;
240 242
    int is_user;
241 243

  
242
    addr = (unsigned long)ptr;
244
    addr = ptr;
243 245
    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
244 246
    is_user = CPU_MEM_INDEX;
245 247
    if (__builtin_expect(env->tlb_read[is_user][index].address != 
......
253 255
}
254 256

  
255 257
#if DATA_SIZE <= 2
256
static inline int glue(glue(lds, SUFFIX), MEMSUFFIX)(void *ptr)
258
static inline int glue(glue(lds, SUFFIX), MEMSUFFIX)(target_ulong ptr)
257 259
{
258 260
    int res, index;
259
    unsigned long addr, physaddr;
261
    target_ulong addr;
262
    unsigned long physaddr;
260 263
    int is_user;
261 264

  
262
    addr = (unsigned long)ptr;
265
    addr = ptr;
263 266
    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
264 267
    is_user = CPU_MEM_INDEX;
265 268
    if (__builtin_expect(env->tlb_read[is_user][index].address != 
......
275 278

  
276 279
/* generic store macro */
277 280

  
278
static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(void *ptr, RES_TYPE v)
281
static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
279 282
{
280 283
    int index;
281
    unsigned long addr, physaddr;
284
    target_ulong addr;
285
    unsigned long physaddr;
282 286
    int is_user;
283 287

  
284
    addr = (unsigned long)ptr;
288
    addr = ptr;
285 289
    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
286 290
    is_user = CPU_MEM_INDEX;
287 291
    if (__builtin_expect(env->tlb_write[is_user][index].address != 
......
296 300
#endif
297 301

  
298 302
#if DATA_SIZE == 8
299
static inline double glue(ldfq, MEMSUFFIX)(void *ptr)
303
static inline double glue(ldfq, MEMSUFFIX)(target_ulong ptr)
300 304
{
301 305
    union {
302 306
        double d;
......
306 310
    return u.d;
307 311
}
308 312

  
309
static inline void glue(stfq, MEMSUFFIX)(void *ptr, double v)
313
static inline void glue(stfq, MEMSUFFIX)(target_ulong ptr, double v)
310 314
{
311 315
    union {
312 316
        double d;
......
318 322
#endif /* DATA_SIZE == 8 */
319 323

  
320 324
#if DATA_SIZE == 4
321
static inline float glue(ldfl, MEMSUFFIX)(void *ptr)
325
static inline float glue(ldfl, MEMSUFFIX)(target_ulong ptr)
322 326
{
323 327
    union {
324 328
        float f;
......
328 332
    return u.f;
329 333
}
330 334

  
331
static inline void glue(stfl, MEMSUFFIX)(void *ptr, float v)
335
static inline void glue(stfl, MEMSUFFIX)(target_ulong ptr, float v)
332 336
{
333 337
    union {
334 338
        float f;

Also available in: Unified diff