aboutsummaryrefslogtreecommitdiffstats
path: root/target-arm/op_helper.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-02-20 00:33:36 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-02-20 00:33:36 +0000
commit40f137e1eadbc202daf00bd6f43a997ccfb28b70 (patch)
treef47a0f42030dda29c9ff8db306730c2e7274a410 /target-arm/op_helper.c
parent4081fccf14166c018a5694c9c0679496de69b679 (diff)
Add Arm926 core support.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1765 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-arm/op_helper.c')
-rw-r--r--target-arm/op_helper.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
index c075b53fc..af5c61d0b 100644
--- a/target-arm/op_helper.c
+++ b/target-arm/op_helper.c
@@ -72,7 +72,8 @@ void do_vfp_cmp##p(void) \
case 1: flags = 0x2; break;\
default: case 2: flags = 0x3; break;\
}\
- env->vfp.fpscr = (flags << 28) | (env->vfp.fpscr & 0x0fffffff); \
+ env->vfp.xregs[ARM_VFP_FPSCR] = (flags << 28)\
+ | (env->vfp.xregs[ARM_VFP_FPSCR] & 0x0fffffff); \
FORCE_RET(); \
}\
\
@@ -85,7 +86,8 @@ void do_vfp_cmpe##p(void) \
case 1: flags = 0x2; break;\
default: case 2: flags = 0x3; break;\
}\
- env->vfp.fpscr = (flags << 28) | (env->vfp.fpscr & 0x0fffffff); \
+ env->vfp.xregs[ARM_VFP_FPSCR] = (flags << 28)\
+ | (env->vfp.xregs[ARM_VFP_FPSCR] & 0x0fffffff); \
FORCE_RET(); \
}
DO_VFP_cmp(s, 32)
@@ -133,8 +135,8 @@ void do_vfp_set_fpscr(void)
int i;
uint32_t changed;
- changed = env->vfp.fpscr;
- env->vfp.fpscr = (T0 & 0xffc8ffff);
+ changed = env->vfp.xregs[ARM_VFP_FPSCR];
+ env->vfp.xregs[ARM_VFP_FPSCR] = (T0 & 0xffc8ffff);
env->vfp.vec_len = (T0 >> 16) & 7;
env->vfp.vec_stride = (T0 >> 20) & 3;
@@ -167,7 +169,7 @@ void do_vfp_get_fpscr(void)
{
int i;
- T0 = (env->vfp.fpscr & 0xffc8ffff) | (env->vfp.vec_len << 16)
+ T0 = (env->vfp.xregs[ARM_VFP_FPSCR] & 0xffc8ffff) | (env->vfp.vec_len << 16)
| (env->vfp.vec_stride << 20);
i = get_float_exception_flags(&env->vfp.fp_status);
T0 |= vfp_exceptbits_from_host(i);