Browse Source

[opcodes,pk,sim,xcc] add vector mem instructions

cs250
Yunsup Lee 16 years ago
parent
commit
9e58791c6b
  1. 208
      riscv/execute.h
  2. 0
      riscv/insns/fld_v.h
  3. 0
      riscv/insns/fldst_v.h
  4. 0
      riscv/insns/flw_v.h
  5. 0
      riscv/insns/flwst_v.h
  6. 0
      riscv/insns/fsd_v.h
  7. 0
      riscv/insns/fsdst_v.h
  8. 0
      riscv/insns/fsw_v.h
  9. 0
      riscv/insns/fswst_v.h
  10. 0
      riscv/insns/lb_v.h
  11. 0
      riscv/insns/lbst_v.h
  12. 0
      riscv/insns/lbu_v.h
  13. 0
      riscv/insns/lbust_v.h
  14. 0
      riscv/insns/ld_v.h
  15. 0
      riscv/insns/ldst_v.h
  16. 0
      riscv/insns/lh_v.h
  17. 0
      riscv/insns/lhst_v.h
  18. 0
      riscv/insns/lhu_v.h
  19. 0
      riscv/insns/lhust_v.h
  20. 0
      riscv/insns/lw_v.h
  21. 0
      riscv/insns/lwst_v.h
  22. 0
      riscv/insns/lwu_v.h
  23. 0
      riscv/insns/lwust_v.h
  24. 0
      riscv/insns/sb_v.h
  25. 0
      riscv/insns/sbst_v.h
  26. 0
      riscv/insns/sd_v.h
  27. 0
      riscv/insns/sdst_v.h
  28. 0
      riscv/insns/sh_v.h
  29. 0
      riscv/insns/shst_v.h
  30. 0
      riscv/insns/sw_v.h
  31. 0
      riscv/insns/swst_v.h

208
riscv/execute.h

@ -88,6 +88,214 @@ switch((insn.bits >> 0x0) & 0x7f)
}
break;
}
case 0xb:
{
switch((insn.bits >> 0x7) & 0x7)
{
case 0x0:
{
if((insn.bits & 0x1ffff) == 0x80b)
{
#include "insns/lbst_v.h"
break;
}
if((insn.bits & 0xf8000fff) == 0xc0b)
{
#include "insns/sbst_v.h"
break;
}
if((insn.bits & 0x3fffff) == 0xb)
{
#include "insns/lb_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x40b)
{
#include "insns/sb_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x1:
{
if((insn.bits & 0x1ffff) == 0x88b)
{
#include "insns/lhst_v.h"
break;
}
if((insn.bits & 0x3fffff) == 0x8b)
{
#include "insns/lh_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x48b)
{
#include "insns/sh_v.h"
break;
}
if((insn.bits & 0xf8000fff) == 0xc8b)
{
#include "insns/shst_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x2:
{
if((insn.bits & 0x3fffff) == 0x10b)
{
#include "insns/lw_v.h"
break;
}
if((insn.bits & 0xf8000fff) == 0xd0b)
{
#include "insns/swst_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x50b)
{
#include "insns/sw_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0x90b)
{
#include "insns/lwst_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x3:
{
if((insn.bits & 0x3fffff) == 0x18b)
{
#include "insns/ld_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0x98b)
{
#include "insns/ldst_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x58b)
{
#include "insns/sd_v.h"
break;
}
if((insn.bits & 0xf8000fff) == 0xd8b)
{
#include "insns/sdst_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x4:
{
if((insn.bits & 0x3fffff) == 0x20b)
{
#include "insns/lbu_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0xa0b)
{
#include "insns/lbust_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x5:
{
if((insn.bits & 0x1ffff) == 0xa8b)
{
#include "insns/lhust_v.h"
break;
}
if((insn.bits & 0x3fffff) == 0x28b)
{
#include "insns/lhu_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x6:
{
if((insn.bits & 0x3fffff) == 0x30b)
{
#include "insns/lwu_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0xb0b)
{
#include "insns/lwust_v.h"
break;
}
#include "insns/unimp.h"
}
default:
{
#include "insns/unimp.h"
}
}
break;
}
case 0xf:
{
switch((insn.bits >> 0x7) & 0x7)
{
case 0x2:
{
if((insn.bits & 0xf8000fff) == 0xd0f)
{
#include "insns/fswst_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x50f)
{
#include "insns/fsw_v.h"
break;
}
if((insn.bits & 0x3fffff) == 0x10f)
{
#include "insns/flw_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0x90f)
{
#include "insns/flwst_v.h"
break;
}
#include "insns/unimp.h"
}
case 0x3:
{
if((insn.bits & 0x3fffff) == 0x18f)
{
#include "insns/fld_v.h"
break;
}
if((insn.bits & 0xf83e0fff) == 0x58f)
{
#include "insns/fsd_v.h"
break;
}
if((insn.bits & 0xf8000fff) == 0xd8f)
{
#include "insns/fsdst_v.h"
break;
}
if((insn.bits & 0x1ffff) == 0x98f)
{
#include "insns/fldst_v.h"
break;
}
#include "insns/unimp.h"
}
default:
{
#include "insns/unimp.h"
}
}
break;
}
case 0x13:
{
switch((insn.bits >> 0x7) & 0x7)

0
riscv/insns/fld_v.h

0
riscv/insns/fldst_v.h

0
riscv/insns/flw_v.h

0
riscv/insns/flwst_v.h

0
riscv/insns/fsd_v.h

0
riscv/insns/fsdst_v.h

0
riscv/insns/fsw_v.h

0
riscv/insns/fswst_v.h

0
riscv/insns/lb_v.h

0
riscv/insns/lbst_v.h

0
riscv/insns/lbu_v.h

0
riscv/insns/lbust_v.h

0
riscv/insns/ld_v.h

0
riscv/insns/ldst_v.h

0
riscv/insns/lh_v.h

0
riscv/insns/lhst_v.h

0
riscv/insns/lhu_v.h

0
riscv/insns/lhust_v.h

0
riscv/insns/lw_v.h

0
riscv/insns/lwst_v.h

0
riscv/insns/lwu_v.h

0
riscv/insns/lwust_v.h

0
riscv/insns/sb_v.h

0
riscv/insns/sbst_v.h

0
riscv/insns/sd_v.h

0
riscv/insns/sdst_v.h

0
riscv/insns/sh_v.h

0
riscv/insns/shst_v.h

0
riscv/insns/sw_v.h

0
riscv/insns/swst_v.h

Loading…
Cancel
Save