diff options
author | balrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-07-19 10:12:22 +0000 |
---|---|---|
committer | balrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-07-19 10:12:22 +0000 |
commit | 22478e79f2793aa1bc7a5019ae2e48303573e0d5 (patch) | |
tree | a736478a7d1cb9670b44dfc9f6015127dc0bbfe4 /target-arm/op_helper.c | |
parent | f617a9a6bb3b66e93d30f57e966f425e58cef8bc (diff) |
Fix smlald, smlsld, pkhtp, pkhbt, ssat, usat, umul, smul... (Laurent Desnogues).
helper.c
- copy reference c0_c2 to runtime c0_c2 and not c0_c1
op_helper.c
- remove old code (PARAM1, probably some left over from old dyngen)
that broke do_[us]sat
translate.c
- gen_smul_dual should sign-extend from 16 bit to 32 bit and not from
8 to 32
- disas_arm_insn:
* smlalxy: that was completely wrong; now the addition is
performed as for smlald
* pkhtb: optional ASR not taken into account (similar
* to [us]sat)
* pkhtb/pkhbt: tmp2 is dead
* smlald, smlsld, smuad, smusd, smlad, smlsd: rd
* and rn swapped
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4898 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-arm/op_helper.c')
-rw-r--r-- | target-arm/op_helper.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c index 5b5581f2c8..2d7be9c04f 100644 --- a/target-arm/op_helper.c +++ b/target-arm/op_helper.c @@ -185,7 +185,6 @@ static inline uint32_t do_ssat(int32_t val, int shift) int32_t top; uint32_t mask; - shift = PARAM1; top = val >> shift; mask = (1u << shift) - 1; if (top > 0) { @@ -203,7 +202,6 @@ static inline uint32_t do_usat(int32_t val, int shift) { uint32_t max; - shift = PARAM1; max = (1u << shift) - 1; if (val < 0) { env->QF = 1; |