[moxie,committed] Add zex instructions to moxie simulator

Message ID 87r3w5c749.fsf@moxielogic.com
State Committed
Headers

Commit Message

Anthony Green Dec. 12, 2014, 1:47 p.m. UTC
  I've committed the following small patch to add support for the zex
instructions to the moxie simulator.  GCC and binutils already support
these instructions.

Thanks,

AG


in sim/moxie...

2014-12-12  Anthony Green  <green@moxielogic.com>

	* interp.c (sim_resume): Add zex instructions.
  

Patch

diff --git a/sim/moxie/interp.c b/sim/moxie/interp.c
index 4362c66..fdb6528 100644
--- a/sim/moxie/interp.c
+++ b/sim/moxie/interp.c
@@ -604,8 +604,24 @@  sim_resume (sd, step, siggnal)
 		cpu.asregs.regs[a] = (int) bv;
 	      }
 	      break;
-	    case 0x12: /* bad */
-	    case 0x13: /* bad */
+	    case 0x12: /* zex.b */
+	      {
+		int a = (inst >> 4) & 0xf;
+		int b = inst & 0xf;
+		signed char bv = cpu.asregs.regs[b];
+		TRACE("zex.b");
+		cpu.asregs.regs[a] = (int) bv & 0xff;
+	      }
+	      break;
+	    case 0x13: /* zex.s */
+	      {
+		int a = (inst >> 4) & 0xf;
+		int b = inst & 0xf;
+		signed short bv = cpu.asregs.regs[b];
+		TRACE("zex.s");
+		cpu.asregs.regs[a] = (int) bv & 0xffff;
+	      }
+	      break;
 	    case 0x14: /* bad */
 	    case 0x15: /* bad */
 	    case 0x16: /* bad */