SH4: Implement MOVUA.L
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Oct 2008 23:32:59 +0000 (23:32 +0000)
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 12 Oct 2008 23:32:59 +0000 (23:32 +0000)
 * target-sh4/translate.c (_decode_opc): Implement
   MOVUA.L.

(Vladimir Prus)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5473 c046a42c-6fe2-441c-8c8c-71466251a162

target-sh4/translate.c

index 4972450..0eeb294 100644 (file)
@@ -1515,6 +1515,17 @@ void _decode_opc(DisasContext * ctx)
     case 0x00c3:               /* movca.l R0,@Rm */
        tcg_gen_qemu_st32(REG(0), REG(B11_8), ctx->memidx);
        return;
+    case 0x40a9:
+       /* MOVUA.L @Rm,R0 (Rm) -> R0
+          Load non-boundary-aligned data */
+       tcg_gen_qemu_ld32u(REG(0), REG(B11_8), ctx->memidx);
+       return;
+    case 0x40e9:
+       /* MOVUA.L @Rm+,R0   (Rm) -> R0, Rm + 4 -> Rm
+          Load non-boundary-aligned data */
+       tcg_gen_qemu_ld32u(REG(0), REG(B11_8), ctx->memidx);
+       tcg_gen_addi_i32(REG(B11_8), REG(B11_8), 4);
+       return;
     case 0x0029:               /* movt Rn */
        tcg_gen_andi_i32(REG(B11_8), cpu_sr, SR_T);
        return;