qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [SH4] Implement MOVUA.L.
@ 2008-10-12 15:43 Vladimir Prus
  2008-10-12 23:32 ` Aurelien Jarno
  0 siblings, 1 reply; 2+ messages in thread
From: Vladimir Prus @ 2008-10-12 15:43 UTC (permalink / raw)
  To: qemu-devel


SH4A has the new MOVUA.L instruction, capable of accessing non-aligned
32-bit data. This patch makes qemu handle it. To the best of my knowledge,
from qemu standpoint this is just like ordinary move, no special handling
for non-alignment is necessary.

- Volodya

	* target-sh4/translate.c (_decode_opc): Implement
	MOVUA.L.
---
 target-sh4/translate.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/target-sh4/translate.c b/target-sh4/translate.c
index f279980..43963a8 100644
--- a/target-sh4/translate.c
+++ b/target-sh4/translate.c
@@ -1520,6 +1520,18 @@ 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;
-- 
1.5.3.5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [SH4] Implement MOVUA.L.
  2008-10-12 15:43 [Qemu-devel] [SH4] Implement MOVUA.L Vladimir Prus
@ 2008-10-12 23:32 ` Aurelien Jarno
  0 siblings, 0 replies; 2+ messages in thread
From: Aurelien Jarno @ 2008-10-12 23:32 UTC (permalink / raw)
  To: qemu-devel

On Sun, Oct 12, 2008 at 07:43:34PM +0400, Vladimir Prus wrote:
> 
> SH4A has the new MOVUA.L instruction, capable of accessing non-aligned
> 32-bit data. This patch makes qemu handle it. To the best of my knowledge,
> from qemu standpoint this is just like ordinary move, no special handling
> for non-alignment is necessary.

Thanks, applied.

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-10-12 23:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-12 15:43 [Qemu-devel] [SH4] Implement MOVUA.L Vladimir Prus
2008-10-12 23:32 ` Aurelien Jarno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).