}
break;
}
+ case 0x2b:
+ {
+ switch((insn.bits >> 0x7) & 0x7)
+ {
+ case 0x2:
+ {
+ if((insn.bits & 0x1ffff) == 0x192b)
+ {
+ #include "insns/amominu_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x92b)
+ {
+ #include "insns/amoand_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x1d2b)
+ {
+ #include "insns/amomaxu_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x152b)
+ {
+ #include "insns/amomax_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x12b)
+ {
+ #include "insns/amoadd_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0xd2b)
+ {
+ #include "insns/amoor_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x112b)
+ {
+ #include "insns/amomin_w.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x52b)
+ {
+ #include "insns/amoswap_w.h"
+ break;
+ }
+ #include "insns/unimp.h"
+ }
+ case 0x3:
+ {
+ if((insn.bits & 0x1ffff) == 0x19ab)
+ {
+ #include "insns/amominu_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x9ab)
+ {
+ #include "insns/amoand_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x1dab)
+ {
+ #include "insns/amomaxu_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x1ab)
+ {
+ #include "insns/amoadd_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x15ab)
+ {
+ #include "insns/amomax_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0xdab)
+ {
+ #include "insns/amoor_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x5ab)
+ {
+ #include "insns/amoswap_d.h"
+ break;
+ }
+ if((insn.bits & 0x1ffff) == 0x11ab)
+ {
+ #include "insns/amomin_d.h"
+ break;
+ }
+ #include "insns/unimp.h"
+ }
+ default:
+ {
+ #include "insns/unimp.h"
+ }
+ }
+ break;
+ }
case 0x2f:
{
switch((insn.bits >> 0x7) & 0x7)
#include "insns/fmadd_d.h"
break;
}
- case 0x2:
- {
- if((insn.bits & 0x1ffff) == 0x1943)
- {
- #include "insns/amominu_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x943)
- {
- #include "insns/amoand_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x1d43)
- {
- #include "insns/amomaxu_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x1543)
- {
- #include "insns/amomax_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x143)
- {
- #include "insns/amoadd_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0xd43)
- {
- #include "insns/amoor_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x1143)
- {
- #include "insns/amomin_w.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x543)
- {
- #include "insns/amoswap_w.h"
- break;
- }
- #include "insns/unimp.h"
- }
- case 0x3:
- {
- if((insn.bits & 0x1ffff) == 0x19c3)
- {
- #include "insns/amominu_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x9c3)
- {
- #include "insns/amoand_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x1dc3)
- {
- #include "insns/amomaxu_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x1c3)
- {
- #include "insns/amoadd_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x15c3)
- {
- #include "insns/amomax_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0xdc3)
- {
- #include "insns/amoor_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x5c3)
- {
- #include "insns/amoswap_d.h"
- break;
- }
- if((insn.bits & 0x1ffff) == 0x11c3)
- {
- #include "insns/amomin_d.h"
- break;
- }
- #include "insns/unimp.h"
- }
default:
{
#include "insns/unimp.h"
#include "insns/fcvt_d_w.h"
break;
}
- if((insn.bits & 0x3ff1ff) == 0x100d3)
+ if((insn.bits & 0x3fffff) == 0x100d3)
{
#include "insns/fcvt_d_s.h"
break;