Revision 005e1a0a
b/linux-user/arm/nwfpe/fpa11_cpdt.c | ||
---|---|---|
33 | 33 |
FPA11 *fpa11 = GET_FPA11(); |
34 | 34 |
fpa11->fType[Fn] = typeSingle; |
35 | 35 |
/* FIXME - handle failure of get_user() */ |
36 |
get_user_u32(fpa11->fpreg[Fn].fSingle, addr);
|
|
36 |
get_user_u32(float32_val(fpa11->fpreg[Fn].fSingle), addr);
|
|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
static inline |
b/linux-user/arm/nwfpe/fpopcode.c | ||
---|---|---|
37 | 37 |
}; |
38 | 38 |
|
39 | 39 |
const float64 float64Constant[] = { |
40 |
0x0000000000000000ULL, /* double 0.0 */
|
|
41 |
0x3ff0000000000000ULL, /* double 1.0 */
|
|
42 |
0x4000000000000000ULL, /* double 2.0 */
|
|
43 |
0x4008000000000000ULL, /* double 3.0 */
|
|
44 |
0x4010000000000000ULL, /* double 4.0 */
|
|
45 |
0x4014000000000000ULL, /* double 5.0 */
|
|
46 |
0x3fe0000000000000ULL, /* double 0.5 */
|
|
47 |
0x4024000000000000ULL /* double 10.0 */
|
|
40 |
const_float64(0x0000000000000000ULL), /* double 0.0 */
|
|
41 |
const_float64(0x3ff0000000000000ULL), /* double 1.0 */
|
|
42 |
const_float64(0x4000000000000000ULL), /* double 2.0 */
|
|
43 |
const_float64(0x4008000000000000ULL), /* double 3.0 */
|
|
44 |
const_float64(0x4010000000000000ULL), /* double 4.0 */
|
|
45 |
const_float64(0x4014000000000000ULL), /* double 5.0 */
|
|
46 |
const_float64(0x3fe0000000000000ULL), /* double 0.5 */
|
|
47 |
const_float64(0x4024000000000000ULL) /* double 10.0 */
|
|
48 | 48 |
}; |
49 | 49 |
|
50 | 50 |
const float32 float32Constant[] = { |
51 |
0x00000000, /* single 0.0 */
|
|
52 |
0x3f800000, /* single 1.0 */
|
|
53 |
0x40000000, /* single 2.0 */
|
|
54 |
0x40400000, /* single 3.0 */
|
|
55 |
0x40800000, /* single 4.0 */
|
|
56 |
0x40a00000, /* single 5.0 */
|
|
57 |
0x3f000000, /* single 0.5 */
|
|
58 |
0x41200000 /* single 10.0 */
|
|
51 |
const_float32(0x00000000), /* single 0.0 */
|
|
52 |
const_float32(0x3f800000), /* single 1.0 */
|
|
53 |
const_float32(0x40000000), /* single 2.0 */
|
|
54 |
const_float32(0x40400000), /* single 3.0 */
|
|
55 |
const_float32(0x40800000), /* single 4.0 */
|
|
56 |
const_float32(0x40a00000), /* single 5.0 */
|
|
57 |
const_float32(0x3f000000), /* single 0.5 */
|
|
58 |
const_float32(0x41200000) /* single 10.0 */
|
|
59 | 59 |
}; |
60 | 60 |
|
61 | 61 |
unsigned int getRegisterCount(const unsigned int opcode) |
b/linux-user/signal.c | ||
---|---|---|
1299 | 1299 |
__put_user(TARGET_VFP_MAGIC, &vfpframe->magic); |
1300 | 1300 |
__put_user(sizeof(*vfpframe), &vfpframe->size); |
1301 | 1301 |
for (i = 0; i < 32; i++) { |
1302 |
__put_user(env->vfp.regs[i], &vfpframe->ufp.fpregs[i]);
|
|
1302 |
__put_user(float64_val(env->vfp.regs[i]), &vfpframe->ufp.fpregs[i]);
|
|
1303 | 1303 |
} |
1304 | 1304 |
__put_user(vfp_get_fpscr(env), &vfpframe->ufp.fpscr); |
1305 | 1305 |
__put_user(env->vfp.xregs[ARM_VFP_FPEXC], &vfpframe->ufp_exc.fpexc); |
... | ... | |
1588 | 1588 |
return 0; |
1589 | 1589 |
} |
1590 | 1590 |
for (i = 0; i < 32; i++) { |
1591 |
__get_user(env->vfp.regs[i], &vfpframe->ufp.fpregs[i]);
|
|
1591 |
__get_user(float64_val(env->vfp.regs[i]), &vfpframe->ufp.fpregs[i]);
|
|
1592 | 1592 |
} |
1593 | 1593 |
__get_user(fpscr, &vfpframe->ufp.fpscr); |
1594 | 1594 |
vfp_set_fpscr(env, fpscr); |
Also available in: Unified diff