diff options
author | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-03-31 03:48:01 +0000 |
---|---|---|
committer | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-03-31 03:48:01 +0000 |
commit | 8f8e3aa45185dbb99a25edee384a18ca3d931132 (patch) | |
tree | 0cbfbfa45b457e28a51f9f8c979bc7c96f2e1a28 /target-arm/op_helper.c | |
parent | 8984bd2e833ae0824caa3d63176639c70a6fe654 (diff) |
ARM TCG conversion 13/16.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4150 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-arm/op_helper.c')
-rw-r--r-- | target-arm/op_helper.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c index 79b3f1a456..d1ce3a657c 100644 --- a/target-arm/op_helper.c +++ b/target-arm/op_helper.c @@ -40,27 +40,26 @@ void cpu_unlock(void) spin_unlock(&global_cpu_lock); } -void helper_neon_tbl(int rn, int maxindex) +uint32_t HELPER(neon_tbl)(uint32_t ireg, uint32_t def, + uint32_t rn, uint32_t maxindex) { uint32_t val; - uint32_t mask; uint32_t tmp; int index; int shift; uint64_t *table; table = (uint64_t *)&env->vfp.regs[rn]; val = 0; - mask = 0; for (shift = 0; shift < 32; shift += 8) { - index = (T1 >> shift) & 0xff; - if (index <= maxindex) { + index = (ireg >> shift) & 0xff; + if (index < maxindex) { tmp = (table[index >> 3] >> (index & 7)) & 0xff; val |= tmp << shift; } else { - val |= T0 & (0xff << shift); + val |= def & (0xff << shift); } } - T0 = val; + return val; } #if !defined(CONFIG_USER_ONLY) |