| 188 |
} u; |
} u; |
| 189 |
int i; |
int i; |
| 190 |
|
|
| 191 |
u.s.u[0] = 0; |
#ifdef WORDS_BIGENDIAN |
| 192 |
u.s.u[1] = 0; |
#define WORD0 0 |
| 193 |
|
#define WORD1 1 |
| 194 |
|
#else |
| 195 |
|
#define WORD0 1 |
| 196 |
|
#define WORD1 0 |
| 197 |
|
#endif |
| 198 |
|
u.s.u[WORD0] = 0; |
| 199 |
|
u.s.u[WORD1] = 0; |
| 200 |
for (i = 0; i < 8; i++) |
for (i = 0; i < 8; i++) |
| 201 |
u.s.u[1] |= env->fpscr[i] << (4 * i); |
u.s.u[WORD1] |= env->fpscr[i] << (4 * i); |
| 202 |
FT0 = u.d; |
FT0 = u.d; |
| 203 |
} |
} |
| 204 |
|
|
| 217 |
|
|
| 218 |
u.d = FT0; |
u.d = FT0; |
| 219 |
if (mask & 0x80) |
if (mask & 0x80) |
| 220 |
env->fpscr[0] = (env->fpscr[0] & 0x9) | ((u.s.u[1] >> 28) & ~0x9); |
env->fpscr[0] = (env->fpscr[0] & 0x9) | ((u.s.u[WORD1] >> 28) & ~0x9); |
| 221 |
for (i = 1; i < 7; i++) { |
for (i = 1; i < 7; i++) { |
| 222 |
if (mask & (1 << (7 - i))) |
if (mask & (1 << (7 - i))) |
| 223 |
env->fpscr[i] = (u.s.u[1] >> (4 * (7 - i))) & 0xF; |
env->fpscr[i] = (u.s.u[WORD1] >> (4 * (7 - i))) & 0xF; |
| 224 |
} |
} |
| 225 |
/* TODO: update FEX & VX */ |
/* TODO: update FEX & VX */ |
| 226 |
/* Set rounding mode */ |
/* Set rounding mode */ |