Revision 19e6c4b8 target-i386/exec.h

b/target-i386/exec.h
231 231
#define floatx_to_int64 floatx80_to_int64
232 232
#define floatx_to_int32_round_to_zero floatx80_to_int32_round_to_zero
233 233
#define floatx_to_int64_round_to_zero floatx80_to_int64_round_to_zero
234
#define int32_to_floatx int32_to_floatx80
235
#define int64_to_floatx int64_to_floatx80
236
#define float32_to_floatx float32_to_floatx80
237
#define float64_to_floatx float64_to_floatx80
238
#define floatx_to_float32 floatx80_to_float32
239
#define floatx_to_float64 floatx80_to_float64
234 240
#define floatx_abs floatx80_abs
235 241
#define floatx_chs floatx80_chs
236 242
#define floatx_round_to_int floatx80_round_to_int
......
251 257
#define floatx_to_int64 float64_to_int64
252 258
#define floatx_to_int32_round_to_zero float64_to_int32_round_to_zero
253 259
#define floatx_to_int64_round_to_zero float64_to_int64_round_to_zero
260
#define int32_to_floatx int32_to_float64
261
#define int64_to_floatx int64_to_float64
262
#define float32_to_floatx float32_to_float64
263
#define float64_to_floatx(x, e) (x)
264
#define floatx_to_float32 float64_to_float32
265
#define floatx_to_float64(x, e) (x)
254 266
#define floatx_abs float64_abs
255 267
#define floatx_chs float64_chs
256 268
#define floatx_round_to_int float64_round_to_int
......
378 390
}
379 391
#else
380 392

  
381
/* XXX: same endianness assumed */
382

  
383
#ifdef CONFIG_USER_ONLY
384

  
385
static inline CPU86_LDouble helper_fldt(target_ulong ptr)
386
{
387
    return *(CPU86_LDouble *)(unsigned long)ptr;
388
}
389

  
390
static inline void helper_fstt(CPU86_LDouble f, target_ulong ptr)
391
{
392
    *(CPU86_LDouble *)(unsigned long)ptr = f;
393
}
394

  
395
#else
396

  
397 393
/* we use memory access macros */
398 394

  
399 395
static inline CPU86_LDouble helper_fldt(target_ulong ptr)
......
414 410
    stw(ptr + 8, temp.l.upper);
415 411
}
416 412

  
417
#endif /* !CONFIG_USER_ONLY */
418

  
419 413
#endif /* USE_X86LDOUBLE */
420 414

  
421 415
#define FPUS_IE (1 << 0)
......
432 426

  
433 427
extern const CPU86_LDouble f15rk[7];
434 428

  
435
void helper_fldt_ST0_A0(void);
436
void helper_fstt_ST0_A0(void);
437 429
void fpu_raise_exception(void);
438
CPU86_LDouble helper_fdiv(CPU86_LDouble a, CPU86_LDouble b);
439
void helper_fbld_ST0_A0(void);
440
void helper_fbst_ST0_A0(void);
441
void helper_f2xm1(void);
442
void helper_fyl2x(void);
443
void helper_fptan(void);
444
void helper_fpatan(void);
445
void helper_fxtract(void);
446
void helper_fprem1(void);
447
void helper_fprem(void);
448
void helper_fyl2xp1(void);
449
void helper_fsqrt(void);
450
void helper_fsincos(void);
451
void helper_frndint(void);
452
void helper_fscale(void);
453
void helper_fsin(void);
454
void helper_fcos(void);
455
void helper_fxam_ST0(void);
456
void helper_fstenv(target_ulong ptr, int data32);
457
void helper_fldenv(target_ulong ptr, int data32);
458
void helper_fsave(target_ulong ptr, int data32);
459
void helper_frstor(target_ulong ptr, int data32);
460
void helper_fxsave(target_ulong ptr, int data64);
461
void helper_fxrstor(target_ulong ptr, int data64);
462 430
void restore_native_fp_state(CPUState *env);
463 431
void save_native_fp_state(CPUState *env);
464 432
float approx_rsqrt(float a);

Also available in: Unified diff