aboutsummaryrefslogtreecommitdiff
path: root/riscv/mmu.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-09 20:03:07 -0700
committerAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2011-04-09 20:03:07 -0700
commitc8de0ef0fa04e6e7dfeae86e64dad1604610df62 (patch)
tree99403005f8888d779f777e08f176495ebbd8df63 /riscv/mmu.h
parent3c6275887f0cd321fec861dafd3bd405e992897a (diff)
downloadspike-c8de0ef0fa04e6e7dfeae86e64dad1604610df62.zip
spike-c8de0ef0fa04e6e7dfeae86e64dad1604610df62.tar.gz
spike-c8de0ef0fa04e6e7dfeae86e64dad1604610df62.tar.bz2
[xcc, sim] added rvc insn c.li; misc fixes
Diffstat (limited to 'riscv/mmu.h')
-rw-r--r--riscv/mmu.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/riscv/mmu.h b/riscv/mmu.h
index 5d516bc..efaea3e 100644
--- a/riscv/mmu.h
+++ b/riscv/mmu.h
@@ -25,7 +25,10 @@ public:
uint16_t hi = *(uint16_t*)(mem+addr+2);
insn_t insn;
- insn.bits = ((uint32_t)hi << 16) | lo;
+ insn.bits = lo;
+ if((lo & 0x3) == 0x3)
+ insn.bits |= (uint32_t)hi << 16;
+
return insn;
}