From: Anthony Green Date: Thu, 3 Apr 2014 03:55:57 +0000 (-0400) Subject: Add support for two new moxie sign-extension instructions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=048ea17465ce5effe702895cd644fa3d9dd94680;p=binutils-gdb.git Add support for two new moxie sign-extension instructions --- diff --git a/sim/moxie/ChangeLog b/sim/moxie/ChangeLog index 691d41ad7df..2831c940197 100644 --- a/sim/moxie/ChangeLog +++ b/sim/moxie/ChangeLog @@ -1,3 +1,7 @@ +2014-04-02 Anthony Green + + * interp.c (sim_resume): Add new sign-extend instructions. + 2014-03-10 Mike Frysinger * interp.c (sim_do_command): Add const to cmd. diff --git a/sim/moxie/interp.c b/sim/moxie/interp.c index a3f238a0066..4362c66bb54 100644 --- a/sim/moxie/interp.c +++ b/sim/moxie/interp.c @@ -586,8 +586,24 @@ sim_resume (sd, step, siggnal) break; case 0x0f: /* nop */ break; - case 0x10: /* bad */ - case 0x11: /* bad */ + case 0x10: /* sex.b */ + { + int a = (inst >> 4) & 0xf; + int b = inst & 0xf; + signed char bv = cpu.asregs.regs[b]; + TRACE("sex.b"); + cpu.asregs.regs[a] = (int) bv; + } + break; + case 0x11: /* sex.s */ + { + int a = (inst >> 4) & 0xf; + int b = inst & 0xf; + signed short bv = cpu.asregs.regs[b]; + TRACE("sex.s"); + cpu.asregs.regs[a] = (int) bv; + } + break; case 0x12: /* bad */ case 0x13: /* bad */ case 0x14: /* bad */