Commit e748ba4f5352061474668a47341abe2a898e03ad
1 parent
b8ed223b
ARM half word load/store fix (Ulrich Hecht)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@438 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
2 deletions
target-arm/translate.c
... | ... | @@ -546,8 +546,7 @@ static void disas_arm_insn(DisasContext *s) |
546 | 546 | rn = (insn >> 16) & 0xf; |
547 | 547 | rd = (insn >> 12) & 0xf; |
548 | 548 | gen_movl_T1_reg(s, rn); |
549 | - if (insn & (1 << 25)) | |
550 | - gen_add_datah_offset(s, insn); | |
549 | + gen_add_datah_offset(s, insn); | |
551 | 550 | if (insn & (1 << 20)) { |
552 | 551 | /* load */ |
553 | 552 | switch(sh) { |
... | ... | @@ -562,8 +561,10 @@ static void disas_arm_insn(DisasContext *s) |
562 | 561 | gen_op_ldsw_T0_T1(); |
563 | 562 | break; |
564 | 563 | } |
564 | + gen_movl_reg_T0(s, rd); | |
565 | 565 | } else { |
566 | 566 | /* store */ |
567 | + gen_movl_T0_reg(s, rd); | |
567 | 568 | gen_op_stw_T0_T1(); |
568 | 569 | } |
569 | 570 | if (!(insn & (1 << 24))) { | ... | ... |