#include "insns/c_addi.h"
break;
}
+ case 0x1:
+ {
+ #include "insns/c_li.h"
+ break;
+ }
case 0x3:
{
switch((insn.bits >> 0x7) & 0x7)
#include "insns/c_addi.h"
break;
}
+ case 0x21:
+ {
+ #include "insns/c_li.h"
+ break;
+ }
case 0x23:
{
switch((insn.bits >> 0x7) & 0x7)
#include "insns/c_addi.h"
break;
}
+ case 0x41:
+ {
+ #include "insns/c_li.h"
+ break;
+ }
case 0x43:
{
switch((insn.bits >> 0x7) & 0x7)
#include "insns/c_addi.h"
break;
}
+ case 0x61:
+ {
+ #include "insns/c_li.h"
+ break;
+ }
case 0x63:
{
switch((insn.bits >> 0x7) & 0x7)
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;
}