Revision 5fafdf24 target-mips/op_helper.c
b/target-mips/op_helper.c | ||
---|---|---|
1 | 1 |
/* |
2 | 2 |
* MIPS emulation helpers for qemu. |
3 |
*
|
|
3 |
* |
|
4 | 4 |
* Copyright (c) 2004-2005 Jocelyn Mayer |
5 | 5 |
* |
6 | 6 |
* This library is free software; you can redistribute it and/or |
... | ... | |
244 | 244 |
#endif |
245 | 245 |
#endif /* TARGET_MIPS64 */ |
246 | 246 |
|
247 |
#if defined(CONFIG_USER_ONLY)
|
|
247 |
#if defined(CONFIG_USER_ONLY) |
|
248 | 248 |
void do_mfc0_random (void) |
249 | 249 |
{ |
250 | 250 |
cpu_abort(env, "mfc0 random\n"); |
... | ... | |
321 | 321 |
|
322 | 322 |
enable = GET_FP_ENABLE(env->fpu->fcr31); |
323 | 323 |
|
324 |
/* determine current flags */
|
|
324 |
/* determine current flags */ |
|
325 | 325 |
if (flags & float_flag_invalid) { |
326 | 326 |
cpuflags |= FP_INVALID; |
327 | 327 |
cause |= FP_INVALID & enable; |
328 | 328 |
} |
329 | 329 |
if (flags & float_flag_divbyzero) { |
330 |
cpuflags |= FP_DIV0;
|
|
330 |
cpuflags |= FP_DIV0; |
|
331 | 331 |
cause |= FP_DIV0 & enable; |
332 | 332 |
} |
333 | 333 |
if (flags & float_flag_overflow) { |
334 |
cpuflags |= FP_OVERFLOW;
|
|
334 |
cpuflags |= FP_OVERFLOW; |
|
335 | 335 |
cause |= FP_OVERFLOW & enable; |
336 | 336 |
} |
337 | 337 |
if (flags & float_flag_underflow) { |
338 |
cpuflags |= FP_UNDERFLOW;
|
|
338 |
cpuflags |= FP_UNDERFLOW; |
|
339 | 339 |
cause |= FP_UNDERFLOW & enable; |
340 | 340 |
} |
341 | 341 |
if (flags & float_flag_inexact) { |
342 |
cpuflags |= FP_INEXACT;
|
|
342 |
cpuflags |= FP_INEXACT; |
|
343 | 343 |
cause |= FP_INEXACT & enable; |
344 | 344 |
} |
345 | 345 |
SET_FP_FLAGS(env->fpu->fcr31, cpuflags); |
... | ... | |
539 | 539 |
} |
540 | 540 |
} |
541 | 541 |
|
542 |
#if !defined(CONFIG_USER_ONLY)
|
|
542 |
#if !defined(CONFIG_USER_ONLY) |
|
543 | 543 |
|
544 | 544 |
static void do_unaligned_access (target_ulong addr, int is_write, int is_user, void *retaddr); |
545 | 545 |
|
Also available in: Unified diff