64 void Print(
const char* str);
165#define STRING_STARTS_WITH(string, compare_string) \
166 (strncmp(string, compare_string, strlen(compare_string)) == 0)
206 int val =
instr->Rs1Value();
251 int32_t imm =
instr->Imm12Value();
256 int32_t imm =
instr->Imm12Value();
263 (
instr - 4)->RdValue() ==
instr->Rs1Value()) {
265 instr->InstructionBits());
276 int32_t imm =
instr->BranchOffset();
284 int32_t imm =
instr->StoreOffset();
289 const char* sew =
instr->RvvSEW();
294 const char* lmul =
instr->RvvLMUL();
299 const int simm5 =
instr->RvvSimm5();
304 const uint32_t uimm5 =
instr->RvvUimm5();
309 int32_t imm =
instr->Imm20UValue();
314 int32_t imm =
instr->Imm20JValue();
322 int32_t imm =
instr->Shamt();
327 int32_t imm =
instr->Shamt32();
332 int32_t imm =
instr->RvcImm6Value();
337 int32_t imm =
instr->RvcImm6Value() & 0xFFFFF;
342 int32_t imm =
instr->RvcImm6Addi16spValue();
347 int32_t imm =
instr->RvcShamt6();
352 int32_t imm =
instr->RvcImm6LdspValue();
357 int32_t imm =
instr->RvcImm6LwspValue();
362 int32_t imm =
instr->RvcImm6SwspValue();
367 int32_t imm =
instr->RvcImm6SdspValue();
372 int32_t imm =
instr->RvcImm5WValue();
377 int32_t imm =
instr->RvcImm5DValue();
382 int32_t imm =
instr->RvcImm8Addi4spnValue();
387 int32_t imm =
instr->RvcImm11CJValue();
392 int32_t imm =
instr->RvcImm8BValue();
397 uint8_t imm =
instr->RvvVM();
404 bool aq =
instr->AqValue();
405 bool rl =
instr->RlValue();
418 int32_t csr_reg =
instr->CsrValue();
456 int frm =
instr->RoundMode();
485 int memOrder =
instr->MemoryOrder(is_pred);
487 if ((memOrder &
PSI) ==
PSI) {
490 if ((memOrder &
PSO) ==
PSO) {
493 if ((memOrder &
PSR) ==
PSR) {
496 if ((memOrder &
PSW) ==
PSW) {
510 if (format[1] ==
's') {
511 if (format[2] ==
'1') {
515 }
else if (format[2] ==
'2') {
521 }
else if (format[1] ==
'd') {
532 const char* format) {
534 if (format[1] ==
's') {
535 if (format[2] ==
'1') {
539 }
else if (format[2] ==
'2') {
543 }
else if (format[2] ==
'3') {
549 }
else if (format[1] ==
'd') {
553 }
else if (format[1] ==
'r') {
565 DCHECK(format[1] ==
'r' || format[1] ==
'f');
566 if (format[2] ==
's') {
567 if (format[3] ==
'1') {
568 if (format[4] ==
's') {
570 if (format[1] ==
'r') {
572 }
else if (format[1] ==
'f') {
578 if (format[1] ==
'r') {
580 }
else if (format[1] ==
'f') {
584 }
else if (format[3] ==
'2') {
585 if (format[4] ==
's') {
587 if (format[1] ==
'r') {
589 }
else if (format[1] ==
'f') {
595 if (format[1] ==
'r') {
597 }
else if (format[1] ==
'f') {
603 }
else if (format[2] ==
'd') {
605 if (format[1] ==
'r') {
607 }
else if (format[1] ==
'f') {
620 if (format[4] ==
'6') {
621 if (format[5] ==
'U') {
625 }
else if (format[5] ==
'A') {
626 if (format[9] ==
'1' && format[10] ==
'6') {
632 }
else if (format[5] ==
'L') {
633 if (format[6] ==
'd') {
634 if (format[7] ==
's') {
639 }
else if (format[6] ==
'w') {
640 if (format[7] ==
's') {
647 }
else if (format[5] ==
'S') {
648 if (format[6] ==
'w') {
652 }
else if (format[6] ==
'd') {
661 }
else if (format[4] ==
'5') {
663 if (format[5] ==
'W') {
667 }
else if (format[5] ==
'D') {
673 }
else if (format[4] ==
'8') {
675 if (format[5] ==
'A') {
679 }
else if (format[5] ==
'B') {
685 }
else if (format[4] ==
'1') {
687 if (format[5] ==
'1') {
705 if (format[1] ==
'r' || format[1] ==
'f') {
707 }
else if (format[1] ==
'i') {
709 }
else if (format[1] ==
's') {
717 if (format[1] ==
's') {
718 if (format[2] ==
'r') {
726 if (format[3] ==
'1') {
727 if (format[4] ==
'2') {
729 if (format[5] ==
'x') {
736 }
else if (format[3] ==
'2' && format[4] ==
'0') {
753 if (format[3] ==
'B') {
757 }
else if (format[3] ==
'S') {
780 if (format[1] ==
'3') {
784 }
else if (format[1] ==
'6') {
788 }
else if (format[1] ==
'u') {
792 }
else if (format[1] ==
'e') {
796 }
else if (format[1] ==
'i') {
804 if (format[1] ==
'd') {
808 }
else if (format[2] ==
'1') {
812 }
else if (format[2] ==
'2') {
855 char cur = *format++;
878 if (
instr->Rs1Value() == zero_reg.code())
887 if (
instr->Rs2Value() == zero_reg.code())
889 else if (
instr->Rs1Value() == zero_reg.code())
895 if (
instr->Rs1Value() == zero_reg.code())
924#ifdef V8_TARGET_ARCH_64_BIT
929 if (
instr->Rs2Value() == zero_reg.code()) {
936 if (
instr->Rs1Value() == zero_reg.code())
976#ifdef V8_TARGET_ARCH_64_BIT
1058 switch (
instr->BaseOpcode()) {
1112#ifdef V8_TARGET_ARCH_64_BIT
1176 switch (
instr->Funct3Value()) {
1201 switch (
instr->Funct3Value()) {
1214 switch (
instr->Rs2Value()) {
1221#ifdef V8_TARGET_ARCH_64_BIT
1235 if (
instr->Rs2Value() != 0b00000) {
1238 switch (
instr->Funct3Value()) {
1251 switch (
instr->Funct3Value()) {
1267 switch (
instr->Rs2Value()) {
1274#ifdef V8_TARGET_ARCH_64_BIT
1289 if (
instr->Funct3Value() == 0b000) {
1310 if (
instr->Rs2Value() == 0b00000) {
1318 switch (
instr->Funct3Value()) {
1343 switch (
instr->Funct3Value()) {
1356 if (
instr->Rs2Value() == 0b00001) {
1364 if (
instr->Rs2Value() == 0b00000) {
1372 switch (
instr->Funct3Value()) {
1388 if (
instr->Rs2Value() != 0b00000) {
1391 switch (
instr->Funct3Value()) {
1395#ifdef V8_TARGET_ARCH_64_BIT
1406 switch (
instr->Rs2Value()) {
1413#ifdef V8_TARGET_ARCH_64_BIT
1427 switch (
instr->Rs2Value()) {
1434#ifdef V8_TARGET_ARCH_64_BIT
1447#ifdef V8_TARGET_ARCH_64_BIT
1449 if (
instr->Funct3Value() == 0b000 &&
instr->Rs2Value() == 0b00000) {
1499 if (
instr->RdValue() == zero_reg.code() &&
1500 instr->Rs1Value() == ra.code() &&
instr->Imm12Value() == 0)
1502 else if (
instr->RdValue() == zero_reg.code() &&
instr->Imm12Value() == 0)
1504 else if (
instr->RdValue() == ra.code() &&
instr->Imm12Value() == 0)
1524#ifdef V8_TARGET_ARCH_64_BIT
1533 if (
instr->Imm12Value() == 0) {
1534 if (
instr->RdValue() == zero_reg.code() &&
1535 instr->Rs1Value() == zero_reg.code())
1539 }
else if (
instr->Rs1Value() == zero_reg.code()) {
1549 if (
instr->Imm12Value() == 1)
1555 if (
instr->Imm12Value() == -1)
1581 switch (
instr->Shamt()) {
1620#ifdef V8_TARGET_ARCH_64_BIT
1623#elif defined(V8_TARGET_ARCH_RISCV32)
1628 if (
instr->Imm12Value() == RO_REV8_IMM12) {
1639#ifdef V8_TARGET_ARCH_64_BIT
1641 if (
instr->Imm12Value() == 0)
1647 switch (
instr->Funct7FieldRaw() | OP_SHLW) {
1655 switch (
instr->Shamt()) {
1675 switch (
instr->Funct7FieldRaw() | OP_SHRW) {
1699 if (
instr->Imm12Value() == 0) {
1701 }
else if (
instr->Imm12Value() == 1) {
1716 if (
instr->RdValue() == zero_reg.code())
1721 if (
instr->RdValue() == zero_reg.code())
1726 if (
instr->RdValue() == zero_reg.code())
1730 }
else if (
instr->RdValue() == zero_reg.code()) {
1737 if (
instr->Rs1Value() == zero_reg.code()) {
1738 switch (
instr->CsrValue()) {
1769 }
else if (
instr->Rs1Value() == zero_reg.code()) {
1771 }
else if (
instr->RdValue() == zero_reg.code()) {
1778 if (
instr->RdValue() == zero_reg.code())
1784 if (
instr->RdValue() == zero_reg.code())
1790 if (
instr->RdValue() == zero_reg.code())
1796 if (
instr->RdValue() == zero_reg.code())
1810#ifdef CAN_USE_RVV_INSTRUCTIONS
1811 if (
instr->vl_vs_width() != -1) {
1834#ifdef V8_TARGET_ARCH_64_BIT
1848#ifdef CAN_USE_RVV_INSTRUCTIONS
1849 if (
instr->vl_vs_width() != -1) {
1887 switch (
instr->BaseOpcodeFieldRaw()) {
1901 switch (
instr->BaseOpcodeValue()) {
1903 if (
instr->RdValue() == zero_reg.code())
1905 else if (
instr->RdValue() == ra.code())
1916 switch (
instr->RvcFunct4Value()) {
1918 if (
instr->RvcRs1Value() != 0 &&
instr->RvcRs2Value() == 0) {
1921 }
else if (
instr->RvcRdValue() != 0 &&
instr->RvcRs2Value() != 0) {
1928 if (
instr->RvcRs1Value() == 0 &&
instr->RvcRs2Value() == 0) {
1931 }
else if (
instr->RvcRdValue() != 0 &&
instr->RvcRs2Value() == 0) {
1934 }
else if (
instr->RvcRdValue() != 0 &&
instr->RvcRs2Value() != 0) {
1959#ifdef V8_TARGET_ARCH_64_BIT
1973 switch (
instr->RvcOpcode()) {
1975 if (
instr->RvcRdValue() == 0)
1980#ifdef V8_TARGET_ARCH_64_BIT
1989 if (
instr->RvcRdValue() == 2) {
1992 }
else if (
instr->RvcRdValue() != 0 &&
instr->RvcRdValue() != 2) {
2007#ifdef V8_TARGET_ARCH_64_BIT
2011#elif defined(V8_TARGET_ARCH_32_BIT)
2022 switch (
instr->RvcOpcode()) {
2032 switch (
instr->RvcOpcode()) {
2036#ifdef V8_TARGET_ARCH_64_BIT
2040#elif defined(V8_TARGET_ARCH_32_BIT)
2054 switch (
instr->RvcOpcode()) {
2061#ifdef V8_TARGET_ARCH_64_BIT
2065#elif defined(V8_TARGET_ARCH_32_BIT)
2077 switch (
instr->RvcOpcode()) {
2084#ifdef V8_TARGET_ARCH_64_BIT
2088#elif defined(V8_TARGET_ARCH_32_BIT)
2099 switch (
instr->RvcOpcode()) {
2109 switch (
instr->RvcOpcode()) {
2117 if (
instr->RvcFunct2BValue() == 0b00) {
2120 }
else if (
instr->RvcFunct2BValue() == 0b01) {
2123 }
else if (
instr->RvcFunct2BValue() == 0b10) {
2198 if (
instr->RvvVM()) {
2205 if (!
instr->RvvVM()) {
2212 if (!
instr->RvvVM()) {
2266 Format(
instr,
"vrgather.vi 'vd, 'vs2, 'simm5'vm");
2269 if (
instr->RvvVM()) {
2272 Format(
instr,
"vmerge.vim 'vd, 'vs2, 'simm5, v0");
2294 Format(
instr,
"vslidedown.vi 'vd, 'vs2, 'uimm5'vm");
2297 Format(
instr,
"vslideup.vi 'vd, 'vs2, 'uimm5'vm");
2309 if (!
instr->RvvVM()) {
2316 if (!
instr->RvvVM()) {
2352 if (
instr->Rs1Value() == zero_reg.code())
2382 if (
instr->RvvVM()) {
2413 Format(
instr,
"vslidedown.vx 'vd, 'vs2, 'rs1'vm");
2419 if (!
instr->RvvVM()) {
2426 if (!
instr->RvvVM()) {
2467 if (
instr->Vs1Value() == 0x0) {
2469 }
else if (
instr->Vs1Value() == 0b10001) {
2471 }
else if (
instr->Vs1Value() == 0b10000) {
2490 if (
instr->Vs1Value() == 0b00010) {
2492 }
else if (
instr->Vs1Value() == 0b00011) {
2494 }
else if (
instr->Vs1Value() == 0b00100) {
2496 }
else if (
instr->Vs1Value() == 0b00101) {
2498 }
else if (
instr->Vs1Value() == 0b00110) {
2500 }
else if (
instr->Vs1Value() == 0b00111) {
2542 if (
instr->Vs2Value() == 0x0) {
2576 Format(
instr,
"vslide1down.vx 'vd, 'vs2, 'rs1'vm");
2590 switch (
instr->Vs1Value()) {
2632 switch (
instr->Vs1Value()) {
2674 if (
instr->Vs1Value() ==
instr->Vs2Value()) {
2681 if (
instr->Vs1Value() ==
instr->Vs2Value()) {
2724 if (
instr->Vs1Value() == 0x0) {
2743 Format(
instr,
"vfwredusum.vs 'vd, 'vs2, 'vs1'vm");
2746 Format(
instr,
"vfwredosum.vs 'vd, 'vs2, 'vs1'vm");
2781 if (
instr->RvvVM()) {
2842 if (
instr->Vs2Value() == 0x0) {
2849 Format(
instr,
"vfslide1down.vf 'vd, 'vs2, 'fs1'vm");
2852 Format(
instr,
"vfslide1up.vf 'vd, 'vs2, 'fs1'vm");
2883 switch (
instr->InstructionBits() &
2889 if (!(
instr->InstructionBits() & 0x40000000)) {
2892 Format(
instr,
"vsetivli 'rd, 'uimm, 'sew, 'lmul");
2928 uint32_t instr_temp =
2934 snprintf(str,
sizeof(str),
"vle%d.v 'vd, ('rs1)'vm",
2935 instr->vl_vs_width());
2938 snprintf(str,
sizeof(str),
"vle%dff.v 'vd, ('rs1)'vm",
2939 instr->vl_vs_width());
2942 }
else if (
RO_V_VLS == instr_temp) {
2943 snprintf(str,
sizeof(str),
"vlse%d.v 'vd, ('rs1), 'rs2'vm",
2944 instr->vl_vs_width());
2947 }
else if (
RO_V_VLX == instr_temp) {
2948 snprintf(str,
sizeof(str),
"vlxei%d.v 'vd, ('rs1), 'vs2'vm",
2949 instr->vl_vs_width());
2956 snprintf(str,
sizeof(str),
"vlseg%de%d.v 'vd, ('rs1)'vm",
2959 snprintf(str,
sizeof(str),
"vlseg%de%dff.v 'vd, ('rs1)'vm",
2967 snprintf(str,
sizeof(str),
"vlsseg%de%d.v 'vd, ('rs1), 'rs2'vm",
2974 snprintf(str,
sizeof(str),
"vlxseg%dei%d.v 'vd, ('rs1), 'vs2'vm",
3019 uint32_t instr_temp =
3022 snprintf(str,
sizeof(str),
"vse%d.v 'vd, ('rs1)'vm",
3023 instr->vl_vs_width());
3025 }
else if (
RO_V_VSS == instr_temp) {
3026 snprintf(str,
sizeof(str),
"vsse%d.v 'vd, ('rs1), 'rs2'vm",
3027 instr->vl_vs_width());
3029 }
else if (
RO_V_VSX == instr_temp) {
3030 snprintf(str,
sizeof(str),
"vsxei%d.v 'vd, ('rs1), 'vs2'vm",
3031 instr->vl_vs_width());
3033 }
else if (
RO_V_VSU == instr_temp) {
3034 snprintf(str,
sizeof(str),
"vsuxei%d.v 'vd, ('rs1), 'vs2'vm",
3035 instr->vl_vs_width());
3041 snprintf(str,
sizeof(str),
"vsseg%de%d.v 'vd, ('rs1)'vm",
3048 snprintf(str,
sizeof(str),
"vssseg%de%d.v 'vd, ('rs1), 'rs2'vm",
3055 snprintf(str,
sizeof(str),
"vsxseg%dei%d.v 'vd, ('rs1), 'vs2'vm",
3069 "%08x ",
instr->InstructionBits());
3070 switch (
instr->InstructionType()) {
3119#ifdef CAN_USE_RVV_INSTRUCTIONS
3128 return instr->InstructionSize();
3169 uint8_t* instruction) {
3171 return d.InstructionDecode(instruction);
3183 for (uint8_t*
pc = begin;
pc <
end;) {
3186 uint8_t* prev_pc =
pc;
3187 pc += d.InstructionDecode(buffer,
pc);
3189 *
reinterpret_cast<uint32_t*
>(prev_pc), buffer.
begin());
3193#undef STRING_STARTS_WITH
#define UNSUPPORTED_RISCV()
static V8_EXPORT_PRIVATE void Disassemble(FILE *f, uint8_t *begin, uint8_t *end, UnimplementedOpcodeAction unimplemented_action=kAbortOnUnimplementedOpcode)
V8_EXPORT_PRIVATE int InstructionDecode(v8::base::Vector< char > buffer, uint8_t *instruction)
int ConstantPoolSizeAt(uint8_t *instruction)
UnimplementedOpcodeAction
const NameConverter & converter_
virtual const char * NameOfAddress(uint8_t *addr) const
virtual const char * NameOfXMMRegister(int reg) const
virtual const char * NameInCode(uint8_t *addr) const
virtual const char * NameOfConstant(uint8_t *addr) const
v8::base::EmbeddedVector< char, 128 > tmp_buffer_
virtual const char * NameOfByteCPURegister(int reg) const
virtual const char * NameOfCPURegister(int reg) const
constexpr T * begin() const
static bool IsAuipc(Instr instr)
static bool IsJalr(Instr instr)
static int BrachlongOffset(Instr auipc, Instr jalr)
static int ConstantPoolSizeAt(Instruction *instr)
void DecodeRAType(Instruction *instr)
void PrintRvcImm6Swsp(Instruction *instr)
void PrintFRd(Instruction *instr)
void PrintBranchOffset(Instruction *instr)
void Format(Instruction *instr, const char *format)
void DecodeRFPType(Instruction *instr)
void DecodeCIType(Instruction *instr)
void PrintRvcImm6Sdsp(Instruction *instr)
void PrintFPUStatusRegister(int freg)
void PrintVs2(Instruction *instr)
void PrintVd(Instruction *instr)
void DecodeCSType(Instruction *instr)
void DecodeRvvMVX(Instruction *instr)
void DecodeRvvFVF(Instruction *instr)
int switch_sew(Instruction *instr)
int FormatRvcRegister(Instruction *instr, const char *option)
void PrintFPURegister(int freg)
void DecodeRvvFVV(Instruction *instr)
void PrintRvcImm6Lwsp(Instruction *instr)
int InstructionDecode(uint8_t *instruction)
void DecodeCSSType(Instruction *instr)
void PrintShamt32(Instruction *instr)
void PrintRoundingMode(Instruction *instr)
void PrintFRs1(Instruction *instr)
void DecodeCAType(Instruction *instr)
void DecodeRvvIVI(Instruction *instr)
void PrintFRs2(Instruction *instr)
void PrintRvcImm6Addi16sp(Instruction *instr)
void DecodeRvvIVX(Instruction *instr)
void DecodeSType(Instruction *instr)
void PrintImm12X(Instruction *instr)
void DecodeCBType(Instruction *instr)
void PrintRvcShamt(Instruction *instr)
void DecodeIType(Instruction *instr)
void PrintRs2(Instruction *instr)
void DecodeJType(Instruction *instr)
void DecodeCJType(Instruction *instr)
void Unknown(Instruction *instr)
void DecodeCIWType(Instruction *instr)
void PrintRs1(Instruction *instr)
void PrintCSRReg(Instruction *instr)
void DecodeRType(Instruction *instr)
void PrintRvcImm5D(Instruction *instr)
void PrintVRegister(int reg)
int FormatFPURegisterOrRoundMode(Instruction *instr, const char *option)
void DecodeCLType(Instruction *instr)
void DecodeBType(Instruction *instr)
void PrintRvcImm8Addi4spn(Instruction *instr)
void PrintRvvSEW(Instruction *instr)
const disasm::NameConverter & converter_
void DecodeRvvMVV(Instruction *instr)
void DecodeCRType(Instruction *instr)
void PrintRvcImm5W(Instruction *instr)
void PrintRvvLMUL(Instruction *instr)
void PrintRvcImm6U(Instruction *instr)
void PrintTarget(Instruction *instr)
void PrintVs1(Instruction *instr)
void PrintImm20U(Instruction *instr)
void PrintRegister(int reg)
void DecodeR4Type(Instruction *instr)
void PrintUimm(Instruction *instr)
void PrintAcquireRelease(Instruction *instr)
void DecodeUType(Instruction *instr)
void DecodeRvvIVV(Instruction *instr)
Decoder(const disasm::NameConverter &converter, v8::base::Vector< char > out_buffer)
void PrintRd(Instruction *instr)
void PrintRvvSimm5(Instruction *instr)
void DecodeRvvVS(Instruction *instr)
void PrintRvcImm8B(Instruction *instr)
void PrintChar(const char ch)
int switch_nf(Instruction *instr)
int FormatRvcImm(Instruction *instr, const char *option)
v8::base::Vector< char > out_buffer_
void PrintStoreOffset(Instruction *instr)
void PrintRvcImm6(Instruction *instr)
void PrintInstructionName(Instruction *instr)
int FormatOption(Instruction *instr, const char *option)
void DecodeRvvVL(Instruction *instr)
int FormatRegister(Instruction *instr, const char *option)
void DecodeVType(Instruction *instr)
void PrintImm20J(Instruction *instr)
void PrintImm12(Instruction *instr)
void PrintRvvUimm5(Instruction *instr)
void PrintRvcImm6Ldsp(Instruction *instr)
void PrintRvvVm(Instruction *instr)
void PrintMemoryOrder(Instruction *instr, bool is_pred)
Decoder(const Decoder &)=delete
void PrintFRs3(Instruction *instr)
void PrintRvcImm11CJ(Instruction *instr)
void Print(const char *str)
Decoder & operator=(const Decoder &)=delete
void PrintShamt(Instruction *instr)
static const char * Name(int reg)
static Instruction * At(Address pc)
static const char * Name(int reg)
static const char * Name(int reg)
#define STRING_STARTS_WITH(string, compare_string)
int SNPrintF(Vector< char > str, const char *format,...)
constexpr Opcode RO_V_VSSEG4
constexpr Opcode RO_V_VNCLIP_WX
constexpr Opcode RO_FLE_S
const uint32_t kRvvMewMask
constexpr Opcode RO_V_VFWADD_VV
constexpr Opcode RO_V_VFSLIDE1DOWN_VF
constexpr Opcode RO_V_VMSGT_VI
constexpr Opcode RO_FMADD_S
constexpr Opcode RO_C_AND
constexpr Opcode RO_V_VFWSUB_VF
constexpr Opcode RO_CZERO_EQZ
constexpr Opcode RO_FCVT_S_W
constexpr Opcode RO_V_VSLIDEUP_VX
constexpr Opcode RO_V_VNCLIPU_WV
constexpr Opcode RO_V_VADD_VI
constexpr Opcode RO_V_VSSEG3
constexpr Opcode RO_C_SUB
constexpr Opcode RO_V_VFNMADD_VF
constexpr Opcode RO_V_VFNMADD_VV
constexpr Opcode RO_V_VFADD_VF
constexpr Opcode RO_FSGNJ_D
const uint32_t kRATypeMask
constexpr Opcode RO_V_VLSEG6
constexpr Opcode RO_V_VNCLIP_WV
constexpr Opcode RO_MULHU
constexpr Opcode RO_V_VMIN_VX
constexpr Opcode RO_C_MISC_ALU
constexpr Opcode RO_V_VLXSEG4
constexpr Opcode RO_V_VFMADD_VV
constexpr Opcode RO_V_VMULHU_VV
constexpr Opcode RO_V_VFWNMSAC_VV
constexpr Opcode RO_V_VFSGNJN_VF
constexpr Opcode RO_V_VMSLEU_VI
constexpr Opcode RO_SLTIU
constexpr Opcode RO_V_VFWMSAC_VF
constexpr Opcode RO_V_VFNMACC_VF
const uint32_t kRvvNfMask
constexpr Opcode RO_V_VFNMSUB_VV
constexpr Opcode RO_FCVT_D_W
constexpr Opcode RO_V_VSSSEG4
const uint32_t kITypeMask
constexpr Opcode RO_V_VRGATHER_VI
constexpr Opcode RO_V_VSRL_VI
constexpr Opcode RO_V_VMSLTU_VX
constexpr Opcode RO_V_VSSSEG5
constexpr Opcode RO_V_VSSSEG3
constexpr Opcode RO_V_VMUL_VX
constexpr Opcode RO_V_VMINU_VV
const uint32_t kFunct3Mask
constexpr Opcode RO_V_VSLL_VX
constexpr Opcode RO_V_VSXSEG6
constexpr Opcode RO_BCLRI
constexpr Opcode RO_V_VLSEG5
constexpr Opcode VFRSQRT7_V
constexpr Opcode RO_V_VLSEG3
constexpr Opcode RO_V_VSSEG6
const uint32_t kSTypeMask
constexpr Opcode VFWCVT_F_X_V
constexpr Opcode RO_V_VFWADD_W_VF
constexpr Opcode RO_V_VREDMIN
constexpr Opcode RO_C_NOP_ADDI
constexpr Opcode RO_V_VSSUB_VX
constexpr Opcode RO_V_VSLIDE1UP_VX
constexpr Opcode RO_V_VFWMUL_VV
void PrintF(const char *format,...)
constexpr Opcode RO_V_VMSEQ_VX
constexpr Opcode RO_V_VSX
constexpr Opcode RO_V_VSLL_VI
constexpr Opcode RO_V_VMSLT_VX
constexpr Opcode RO_FCVT_W_D
constexpr Opcode RO_V_VSLIDEDOWN_VX
constexpr Opcode RO_V_VSXSEG8
constexpr Opcode RO_V_VLXSEG2
constexpr Opcode RO_V_VSSEG5
constexpr Opcode VFNCVT_XU_F_W
constexpr Opcode RO_V_VDIVU_VX
constexpr Opcode RO_V_VFSUB_VV
const uint32_t kRvvMopMask
constexpr Opcode RO_V_VMFNE_VV
constexpr Opcode RO_V_VFUNARY1
constexpr Opcode RO_V_VFMACC_VF
const uint32_t kRFPTypeMask
constexpr Opcode RO_V_VMSEQ_VV
constexpr Opcode RO_V_VXOR_VV
constexpr Opcode RO_V_VMSGT_VX
constexpr Opcode RO_V_VADD_VV
constexpr Opcode RO_C_LWSP
constexpr Opcode RO_V_VFMV_FS
constexpr Opcode RO_V_VMV_VV
constexpr Opcode RO_V_VSXSEG7
constexpr Opcode RO_V_VSMUL_VX
constexpr Opcode RO_AMOMAX_W
constexpr Opcode RO_V_VMULHU_VX
constexpr Opcode RO_C_ADDI4SPN
constexpr Opcode RO_V_VFWSUB_VV
constexpr Opcode RO_V_VFWMACC_VV
constexpr Opcode RO_V_VFMV_SF
constexpr Opcode RO_V_VNCLIPU_WX
constexpr Opcode RO_V_VMFLT_VV
constexpr Opcode RO_V_VDIVU_VV
constexpr Opcode RO_V_VMSLEU_VX
constexpr Opcode RO_V_VFWMACC_VF
constexpr Opcode RO_V_VFMSAC_VV
constexpr Opcode RO_C_FLD
constexpr Opcode RO_V_VMSEQ_VI
constexpr Opcode RO_V_VMSLEU_VV
constexpr Opcode RO_V_VMUL_VV
constexpr Opcode RO_V_VMV_VI
constexpr Opcode RO_CZERO_NEZ
constexpr Opcode RO_V_VSLIDEUP_VI
constexpr Opcode RO_V_VFREDMAX_VV
constexpr Opcode RO_V_VFWSUB_W_VV
constexpr Opcode VFNCVT_X_F_W
constexpr Opcode RO_C_XOR
constexpr Opcode VFCVT_X_F_V
constexpr Opcode RO_V_VFMAX_VV
constexpr Opcode RO_V_VFWREDOSUM_VS
constexpr Opcode RO_V_VWMUL_VV
constexpr Opcode VFSQRT_V
constexpr Opcode RO_V_VMADC_VV
constexpr Opcode RO_V_VXOR_VX
constexpr Opcode RO_V_VSXSEG5
const uint32_t kBTypeMask
constexpr Opcode RO_V_VFWNMACC_VF
constexpr Opcode RO_V_VFNMSAC_VV
constexpr Opcode RO_V_VLSEG4
constexpr Opcode RO_V_VFSGNJN_VV
constexpr Opcode RO_V_VMFEQ_VV
constexpr Opcode VFCLASS_V
constexpr Opcode RO_FCVT_W_S
constexpr Opcode RO_CSRRWI
constexpr Opcode RO_V_VSADDU_VI
constexpr Opcode RO_AMOOR_W
constexpr Opcode VFWCVT_F_F_V
constexpr Opcode RO_V_VFMSUB_VF
constexpr Opcode RO_V_VSADDU_VX
constexpr Opcode RO_V_VFWMUL_VF
constexpr Opcode RO_ECALL
constexpr Opcode RO_V_VSLIDE1DOWN_VX
constexpr Opcode RO_V_VSSSEG6
constexpr Opcode RO_V_VWXUNARY0
constexpr Opcode RO_FCLASS_D
constexpr Opcode RO_V_VNCLIP_WI
constexpr Opcode RO_CSRRS
constexpr Opcode RO_V_VLSSEG3
constexpr Opcode RO_V_VSLIDEDOWN_VI
constexpr Opcode RO_BEXTI
const uint32_t kR4TypeMask
constexpr Opcode RO_V_VSXSEG4
constexpr Opcode RO_V_VDIV_VV
constexpr Opcode RO_FMIN_S
constexpr Opcode RO_V_VMSLE_VV
constexpr Opcode RO_V_VMAX_VV
constexpr Opcode RO_V_VLSSEG6
constexpr Opcode RO_V_VMFLE_VV
constexpr Opcode RO_V_VSETVL
constexpr Opcode RO_V_VSADD_VX
const uint32_t kRvvWidthMask
constexpr Opcode RO_V_VFWSUB_W_VF
constexpr Opcode RO_FCVT_D_S
constexpr Opcode RO_FSQRT_D
constexpr Opcode RO_V_VLX
constexpr Opcode RO_V_VSRL_VX
constexpr Opcode RO_V_VADD_VX
constexpr Opcode RO_V_VMIN_VV
constexpr Opcode RO_SH2ADD
constexpr Opcode RO_AMOADD_W
constexpr Opcode RO_V_VLSEG7
constexpr Opcode RO_FSUB_S
constexpr Opcode RO_V_VSUB_VX
constexpr Opcode RO_V_VWMUL_VX
constexpr Opcode RO_V_VXOR_VI
constexpr Opcode RO_V_VFSGNJX_VF
constexpr Opcode RO_C_FSDSP
constexpr Opcode RO_C_BEQZ
constexpr Opcode RO_V_VLSSEG7
constexpr Opcode RO_FNMADD_D
constexpr Opcode RO_CSRRCI
constexpr Opcode RO_V_VMSLE_VX
constexpr Opcode RO_FADD_D
constexpr Opcode RO_FSGNJ_S
constexpr Opcode RO_V_VRSUB_VX
constexpr Opcode RO_V_VLSSEG2
constexpr Opcode RO_V_VMV_VX
constexpr Opcode RO_V_VMINU_VX
constexpr Opcode RO_V_VSSSEG2
const uint32_t kFunct6Mask
constexpr Opcode RO_C_SWSP
constexpr Opcode RO_V_VFUNARY0
constexpr Opcode RO_V_VLXSEG3
constexpr Opcode RO_V_VSSEG8
constexpr Opcode RO_V_VFNMSUB_VF
constexpr Opcode RO_V_VFMSAC_VF
constexpr Opcode RO_FMADD_D
constexpr Opcode RO_V_VFWNMACC_VV
constexpr Opcode RO_V_VMAXU_VX
constexpr Opcode RO_V_VFMSUB_VV
constexpr Opcode VFCVT_F_X_V
constexpr Opcode RO_V_VOR_VV
constexpr Opcode RO_V_VSRA_VI
constexpr Opcode RO_C_BNEZ
constexpr Opcode RO_V_VFSLIDE1UP_VF
constexpr Opcode RO_V_VREDMAXU
constexpr Opcode RO_V_VSUB_VV
constexpr Opcode RO_SH3ADD
constexpr Opcode RO_V_VWADD_VV
constexpr Opcode RO_V_VADC_VV
constexpr Opcode RO_V_VCOMPRESS_VV
constexpr Opcode RO_V_VFSGNJX_VV
constexpr Opcode RO_V_VMSNE_VX
constexpr Opcode RO_FADD_S
constexpr Opcode RO_V_VSMUL_VV
constexpr Opcode RO_MULHSU
constexpr Opcode RO_AMOMINU_W
constexpr Opcode RO_V_VMAXU_VV
V8_EXPORT_PRIVATE FlagValues v8_flags
constexpr Opcode RO_V_VMADC_VI
constexpr Opcode RO_AMOMAXU_W
constexpr Opcode RO_V_VRGATHER_VX
constexpr Opcode RO_CSRRC
constexpr Opcode RO_AMOAND_W
constexpr Opcode RO_V_VLXSEG6
constexpr Opcode RO_V_VMUNARY0
const uint32_t kRTypeMask
constexpr Opcode RO_V_VMSNE_VI
constexpr Opcode RO_FCVT_S_D
constexpr Opcode RO_V_VAND_VV
constexpr Opcode RO_V_VMSLE_VI
constexpr Opcode VFWCVT_X_F_V
constexpr Opcode RO_V_VSXSEG2
constexpr Opcode RO_V_VFWADD_W_VV
constexpr Opcode RO_V_VXUNARY0
constexpr Opcode RO_V_VWADDUW_VX
constexpr Opcode RO_V_VSSEG7
constexpr Opcode RO_V_VFMADD_VF
constexpr Opcode RO_V_VWADDU_VX
constexpr Opcode RO_V_VADC_VI
constexpr Opcode RO_CSRRSI
constexpr Opcode RO_V_VSSSEG8
constexpr Opcode RO_V_VMSLT_VV
constexpr Opcode RO_V_VMADC_VX
constexpr Opcode RO_V_VSETVLI
constexpr Opcode RO_FMSUB_D
constexpr Opcode VFNCVT_F_F_W
constexpr Opcode RO_V_VWADD_VX
constexpr Opcode RO_FSUB_D
constexpr Opcode RO_V_VSRA_VV
constexpr Opcode RO_FENCE_I
const uint32_t kRvvRs2Mask
constexpr Opcode RO_V_VRSUB_VI
constexpr Opcode RO_V_VFSGNJ_VF
constexpr Opcode VFWCVT_F_XU_V
constexpr Opcode RO_V_VREDMINU
constexpr Opcode VFCVT_F_XU_V
constexpr Opcode RO_AMOMIN_W
constexpr Opcode RO_V_VLS
constexpr Opcode RO_FMUL_D
constexpr Opcode RO_V_VFMUL_VV
constexpr Opcode RO_V_VMSLTU_VV
constexpr Opcode RO_FMV_W_X
constexpr Opcode RO_FNMSUB_D
constexpr Opcode RO_V_VSADD_VV
constexpr Opcode RO_V_VWMULU_VX
constexpr Opcode RO_V_VDIV_VX
constexpr Opcode RO_V_VFSGNJ_VV
constexpr Opcode RO_V_VLSSEG5
constexpr Opcode RO_V_VOR_VX
constexpr Opcode RO_V_VLSEG2
constexpr Opcode RO_V_VLXSEG5
constexpr Opcode RO_V_VFMACC_VV
constexpr Opcode RO_V_VREDMAX
constexpr Opcode RO_V_VWADDU_VV
constexpr Opcode RO_FMUL_S
constexpr Opcode RO_V_VRGATHER_VV
constexpr Opcode RO_BSETI
constexpr Opcode RO_C_FSD
constexpr Opcode RO_V_VSLL_VV
constexpr Opcode RO_FDIV_D
constexpr Opcode RO_V_VMAX_VX
constexpr Opcode RO_V_VFWMSAC_VV
constexpr Opcode VFCVT_XU_F_V
const uint32_t kCATypeMask
constexpr Opcode RO_FLE_D
constexpr Opcode RO_V_VMSGTU_VX
constexpr Opcode RO_C_FLDSP
constexpr Opcode RO_V_VLXSEG7
constexpr Opcode VFREC7_V
constexpr Opcode RO_AMOSWAP_W
constexpr Opcode RO_V_VRXUNARY0
constexpr Opcode RO_V_VSADDU_VV
constexpr Opcode RO_V_VAND_VI
constexpr Opcode RO_V_VSSSEG7
constexpr Opcode RO_FMIN_D
constexpr Opcode RO_V_VSRA_VX
constexpr Opcode RO_V_VADC_VX
constexpr Opcode RO_SH1ADD
constexpr Opcode RO_V_VLSSEG8
constexpr Opcode RO_V_VLXSEG8
constexpr Opcode RO_V_VSSUB_VV
constexpr Opcode RO_V_VFMIN_VV
constexpr Opcode RO_V_VNCLIPU_WI
constexpr Opcode RO_CSRRW
constexpr Opcode RO_V_VSRL_VV
constexpr Opcode RO_V_VFWNMSAC_VF
constexpr Opcode RO_FENCE
constexpr Opcode RO_V_VFMV_VF
constexpr Opcode RO_C_LUI_ADD
constexpr Opcode RO_V_VSU
constexpr Opcode RO_FNMSUB_S
constexpr Opcode RO_FSQRT_S
constexpr Opcode RO_V_VFNMSAC_VF
constexpr Opcode RO_V_VSXSEG3
constexpr Opcode RO_V_VLSEG8
constexpr Opcode RO_V_VLSSEG4
const uint32_t kBaseOpcodeMask
constexpr Opcode RO_V_VFADD_VV
constexpr Opcode RO_V_VOR_VI
constexpr Opcode RO_V_VSADD_VI
constexpr Opcode RO_C_SLLI
constexpr Opcode RO_V_VFWREDUSUM_VS
constexpr Opcode RO_V_VMSNE_VV
constexpr Opcode RO_FNMADD_S
constexpr Opcode RO_V_VAND_VX
constexpr Opcode RO_V_VSS
constexpr Opcode RO_V_VSSEG2
constexpr Opcode RO_V_VFDIV_VV
constexpr Opcode VFWCVT_XU_F_V
constexpr Opcode RO_FDIV_S
constexpr Opcode RO_AMOXOR_W
constexpr Opcode RO_V_VSSUBU_VV
constexpr Opcode RO_V_VFWADD_VF
constexpr Opcode RO_V_VMSGTU_VI
constexpr Opcode RO_V_VWMULU_VV
const uint32_t kVTypeMask
constexpr Opcode OP_COUNT
constexpr Opcode RO_FMSUB_S
constexpr Opcode RO_BINVI
constexpr Opcode RO_V_VFNMACC_VV
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)