forked from OSchip/llvm-project
[X86] Reduce the number of operand 'types' the disassembler needs to deal with. NFCI
We were frequently checking for a list of types and the different types conveyed no real information. So lump them together explicitly. llvm-svn: 292095
This commit is contained in:
parent
3173a1f8ff
commit
ad944a1cac
|
@ -392,8 +392,7 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
|
|||
}
|
||||
}
|
||||
// By default sign-extend all X86 immediates based on their encoding.
|
||||
else if (type == TYPE_IMM8 || type == TYPE_IMM16 || type == TYPE_IMM32 ||
|
||||
type == TYPE_IMM64 || type == TYPE_IMMv) {
|
||||
else if (type == TYPE_IMM) {
|
||||
switch (operand.encoding) {
|
||||
default:
|
||||
break;
|
||||
|
@ -620,15 +619,13 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
|
|||
}
|
||||
|
||||
switch (type) {
|
||||
case TYPE_XMM32:
|
||||
case TYPE_XMM64:
|
||||
case TYPE_XMM128:
|
||||
case TYPE_XMM:
|
||||
mcInst.addOperand(MCOperand::createReg(X86::XMM0 + (immediate >> 4)));
|
||||
return;
|
||||
case TYPE_XMM256:
|
||||
case TYPE_YMM:
|
||||
mcInst.addOperand(MCOperand::createReg(X86::YMM0 + (immediate >> 4)));
|
||||
return;
|
||||
case TYPE_XMM512:
|
||||
case TYPE_ZMM:
|
||||
mcInst.addOperand(MCOperand::createReg(X86::ZMM0 + (immediate >> 4)));
|
||||
return;
|
||||
case TYPE_BNDR:
|
||||
|
@ -662,8 +659,7 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
|
|||
mcInst, Dis))
|
||||
mcInst.addOperand(MCOperand::createImm(immediate));
|
||||
|
||||
if (type == TYPE_MOFFS8 || type == TYPE_MOFFS16 ||
|
||||
type == TYPE_MOFFS32 || type == TYPE_MOFFS64) {
|
||||
if (type == TYPE_MOFFS) {
|
||||
MCOperand segmentReg;
|
||||
segmentReg = MCOperand::createReg(segmentRegnums[insn.segmentOverride]);
|
||||
mcInst.addOperand(segmentReg);
|
||||
|
@ -965,38 +961,15 @@ static bool translateRM(MCInst &mcInst, const OperandSpecifier &operand,
|
|||
case TYPE_R64:
|
||||
case TYPE_Rv:
|
||||
case TYPE_MM64:
|
||||
case TYPE_XMM32:
|
||||
case TYPE_XMM64:
|
||||
case TYPE_XMM128:
|
||||
case TYPE_XMM256:
|
||||
case TYPE_XMM512:
|
||||
case TYPE_VK1:
|
||||
case TYPE_VK2:
|
||||
case TYPE_VK4:
|
||||
case TYPE_VK8:
|
||||
case TYPE_VK16:
|
||||
case TYPE_VK32:
|
||||
case TYPE_VK64:
|
||||
case TYPE_XMM:
|
||||
case TYPE_YMM:
|
||||
case TYPE_ZMM:
|
||||
case TYPE_VK:
|
||||
case TYPE_DEBUGREG:
|
||||
case TYPE_CONTROLREG:
|
||||
case TYPE_BNDR:
|
||||
return translateRMRegister(mcInst, insn);
|
||||
case TYPE_M:
|
||||
case TYPE_M8:
|
||||
case TYPE_M16:
|
||||
case TYPE_M32:
|
||||
case TYPE_M64:
|
||||
case TYPE_M128:
|
||||
case TYPE_M256:
|
||||
case TYPE_M512:
|
||||
case TYPE_Mv:
|
||||
case TYPE_M32FP:
|
||||
case TYPE_M64FP:
|
||||
case TYPE_M80FP:
|
||||
case TYPE_M1616:
|
||||
case TYPE_M1632:
|
||||
case TYPE_M1664:
|
||||
case TYPE_LEA:
|
||||
return translateRMMemory(mcInst, insn, Dis);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1475,21 +1475,13 @@ static int readModRM(struct InternalInstruction* insn) {
|
|||
return prefix##_EAX + index; \
|
||||
case TYPE_R64: \
|
||||
return prefix##_RAX + index; \
|
||||
case TYPE_XMM512: \
|
||||
case TYPE_ZMM: \
|
||||
return prefix##_ZMM0 + index; \
|
||||
case TYPE_XMM256: \
|
||||
case TYPE_YMM: \
|
||||
return prefix##_YMM0 + index; \
|
||||
case TYPE_XMM128: \
|
||||
case TYPE_XMM64: \
|
||||
case TYPE_XMM32: \
|
||||
case TYPE_XMM: \
|
||||
return prefix##_XMM0 + index; \
|
||||
case TYPE_VK1: \
|
||||
case TYPE_VK2: \
|
||||
case TYPE_VK4: \
|
||||
case TYPE_VK8: \
|
||||
case TYPE_VK16: \
|
||||
case TYPE_VK32: \
|
||||
case TYPE_VK64: \
|
||||
case TYPE_VK: \
|
||||
if (index > 7) \
|
||||
*valid = 0; \
|
||||
return prefix##_K0 + index; \
|
||||
|
@ -1787,8 +1779,7 @@ static int readOperands(struct InternalInstruction* insn) {
|
|||
}
|
||||
if (readImmediate(insn, 1))
|
||||
return -1;
|
||||
if (Op.type == TYPE_XMM128 ||
|
||||
Op.type == TYPE_XMM256)
|
||||
if (Op.type == TYPE_XMM || Op.type == TYPE_YMM)
|
||||
sawRegImm = 1;
|
||||
break;
|
||||
case ENCODING_IW:
|
||||
|
|
|
@ -403,81 +403,37 @@ enum OperandEncoding {
|
|||
ENUM_ENTRY(TYPE_REL16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_REL32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_REL64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_PTR1616, "2+2-byte segment+offset address") \
|
||||
ENUM_ENTRY(TYPE_PTR1632, "2+4-byte") \
|
||||
ENUM_ENTRY(TYPE_PTR1664, "2+8-byte") \
|
||||
ENUM_ENTRY(TYPE_R8, "1-byte register operand") \
|
||||
ENUM_ENTRY(TYPE_R16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_R32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_R64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_IMM8, "1-byte immediate operand") \
|
||||
ENUM_ENTRY(TYPE_IMM16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_IMM32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_IMM64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_IMM, "immediate operand") \
|
||||
ENUM_ENTRY(TYPE_IMM3, "1-byte immediate operand between 0 and 7") \
|
||||
ENUM_ENTRY(TYPE_IMM5, "1-byte immediate operand between 0 and 31") \
|
||||
ENUM_ENTRY(TYPE_AVX512ICC, "1-byte immediate operand for AVX512 icmp") \
|
||||
ENUM_ENTRY(TYPE_UIMM8, "1-byte unsigned immediate operand") \
|
||||
ENUM_ENTRY(TYPE_RM8, "1-byte register or memory operand") \
|
||||
ENUM_ENTRY(TYPE_RM16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_RM32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_RM64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_M, "Memory operand") \
|
||||
ENUM_ENTRY(TYPE_M8, "1-byte") \
|
||||
ENUM_ENTRY(TYPE_M16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_M32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_M64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_LEA, "Effective address") \
|
||||
ENUM_ENTRY(TYPE_M128, "16-byte (SSE/SSE2)") \
|
||||
ENUM_ENTRY(TYPE_M256, "256-byte (AVX)") \
|
||||
ENUM_ENTRY(TYPE_M1616, "2+2-byte segment+offset address") \
|
||||
ENUM_ENTRY(TYPE_M1632, "2+4-byte") \
|
||||
ENUM_ENTRY(TYPE_M1664, "2+8-byte") \
|
||||
ENUM_ENTRY(TYPE_SRCIDX8, "1-byte memory at source index") \
|
||||
ENUM_ENTRY(TYPE_SRCIDX16, "2-byte memory at source index") \
|
||||
ENUM_ENTRY(TYPE_SRCIDX32, "4-byte memory at source index") \
|
||||
ENUM_ENTRY(TYPE_SRCIDX64, "8-byte memory at source index") \
|
||||
ENUM_ENTRY(TYPE_DSTIDX8, "1-byte memory at destination index") \
|
||||
ENUM_ENTRY(TYPE_DSTIDX16, "2-byte memory at destination index") \
|
||||
ENUM_ENTRY(TYPE_DSTIDX32, "4-byte memory at destination index") \
|
||||
ENUM_ENTRY(TYPE_DSTIDX64, "8-byte memory at destination index") \
|
||||
ENUM_ENTRY(TYPE_MOFFS8, "1-byte memory offset (relative to segment " \
|
||||
"base)") \
|
||||
ENUM_ENTRY(TYPE_MOFFS16, "2-byte") \
|
||||
ENUM_ENTRY(TYPE_MOFFS32, "4-byte") \
|
||||
ENUM_ENTRY(TYPE_MOFFS64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_M32FP, "32-bit IEE754 memory floating-point operand") \
|
||||
ENUM_ENTRY(TYPE_M64FP, "64-bit") \
|
||||
ENUM_ENTRY(TYPE_M80FP, "80-bit extended") \
|
||||
ENUM_ENTRY(TYPE_SRCIDX, "memory at source index") \
|
||||
ENUM_ENTRY(TYPE_DSTIDX, "memory at destination index") \
|
||||
ENUM_ENTRY(TYPE_MOFFS, "memory offset (relative to segment base)") \
|
||||
ENUM_ENTRY(TYPE_ST, "Position on the floating-point stack") \
|
||||
ENUM_ENTRY(TYPE_MM64, "8-byte MMX register") \
|
||||
ENUM_ENTRY(TYPE_XMM32, "4-byte XMM register or memory operand") \
|
||||
ENUM_ENTRY(TYPE_XMM64, "8-byte") \
|
||||
ENUM_ENTRY(TYPE_XMM128, "16-byte") \
|
||||
ENUM_ENTRY(TYPE_XMM256, "32-byte") \
|
||||
ENUM_ENTRY(TYPE_XMM512, "64-byte") \
|
||||
ENUM_ENTRY(TYPE_VK1, "1-bit") \
|
||||
ENUM_ENTRY(TYPE_VK2, "2-bit") \
|
||||
ENUM_ENTRY(TYPE_VK4, "4-bit") \
|
||||
ENUM_ENTRY(TYPE_VK8, "8-bit") \
|
||||
ENUM_ENTRY(TYPE_VK16, "16-bit") \
|
||||
ENUM_ENTRY(TYPE_VK32, "32-bit") \
|
||||
ENUM_ENTRY(TYPE_VK64, "64-bit") \
|
||||
ENUM_ENTRY(TYPE_XMM, "16-byte") \
|
||||
ENUM_ENTRY(TYPE_YMM, "32-byte") \
|
||||
ENUM_ENTRY(TYPE_ZMM, "64-byte") \
|
||||
ENUM_ENTRY(TYPE_VK, "mask register") \
|
||||
ENUM_ENTRY(TYPE_SEGMENTREG, "Segment register operand") \
|
||||
ENUM_ENTRY(TYPE_DEBUGREG, "Debug register operand") \
|
||||
ENUM_ENTRY(TYPE_CONTROLREG, "Control register operand") \
|
||||
ENUM_ENTRY(TYPE_BNDR, "MPX bounds register") \
|
||||
\
|
||||
ENUM_ENTRY(TYPE_Mv, "Memory operand of operand size") \
|
||||
ENUM_ENTRY(TYPE_Rv, "Register operand of operand size") \
|
||||
ENUM_ENTRY(TYPE_IMMv, "Immediate operand of operand size") \
|
||||
ENUM_ENTRY(TYPE_RELv, "Immediate address of operand size") \
|
||||
ENUM_ENTRY(TYPE_DUP0, "Duplicate of operand 0") \
|
||||
ENUM_ENTRY(TYPE_DUP1, "operand 1") \
|
||||
ENUM_ENTRY(TYPE_DUP2, "operand 2") \
|
||||
ENUM_ENTRY(TYPE_DUP3, "operand 3") \
|
||||
ENUM_ENTRY(TYPE_DUP4, "operand 4") \
|
||||
ENUM_ENTRY(TYPE_M512, "512-bit FPU/MMX/XMM/MXCSR state")
|
||||
|
||||
#define ENUM_ENTRY(n, d) n,
|
||||
enum OperandType {
|
||||
|
|
|
@ -946,48 +946,47 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
|
|||
// For OpSize16 instructions, a declared 16-bit register or
|
||||
// immediate encoding is special.
|
||||
TYPE("GR16", TYPE_Rv)
|
||||
TYPE("i16imm", TYPE_IMMv)
|
||||
} else if(OpSize == X86Local::OpSize32) {
|
||||
// For OpSize32 instructions, a declared 32-bit register or
|
||||
// immediate encoding is special.
|
||||
TYPE("GR32", TYPE_Rv)
|
||||
}
|
||||
TYPE("i16mem", TYPE_Mv)
|
||||
TYPE("i16imm", TYPE_IMM16)
|
||||
TYPE("i16i8imm", TYPE_IMMv)
|
||||
TYPE("i16mem", TYPE_M)
|
||||
TYPE("i16imm", TYPE_IMM)
|
||||
TYPE("i16i8imm", TYPE_IMM)
|
||||
TYPE("GR16", TYPE_R16)
|
||||
TYPE("i32mem", TYPE_Mv)
|
||||
TYPE("i32imm", TYPE_IMMv)
|
||||
TYPE("i32i8imm", TYPE_IMM32)
|
||||
TYPE("i32mem", TYPE_M)
|
||||
TYPE("i32imm", TYPE_IMM)
|
||||
TYPE("i32i8imm", TYPE_IMM)
|
||||
TYPE("GR32", TYPE_R32)
|
||||
TYPE("GR32orGR64", TYPE_R32)
|
||||
TYPE("i64mem", TYPE_Mv)
|
||||
TYPE("i64i32imm", TYPE_IMM64)
|
||||
TYPE("i64i8imm", TYPE_IMM64)
|
||||
TYPE("i64mem", TYPE_M)
|
||||
TYPE("i64i32imm", TYPE_IMM)
|
||||
TYPE("i64i8imm", TYPE_IMM)
|
||||
TYPE("GR64", TYPE_R64)
|
||||
TYPE("i8mem", TYPE_M8)
|
||||
TYPE("i8imm", TYPE_IMM8)
|
||||
TYPE("i8mem", TYPE_M)
|
||||
TYPE("i8imm", TYPE_IMM)
|
||||
TYPE("u8imm", TYPE_UIMM8)
|
||||
TYPE("i32u8imm", TYPE_UIMM8)
|
||||
TYPE("GR8", TYPE_R8)
|
||||
TYPE("VR128", TYPE_XMM128)
|
||||
TYPE("VR128X", TYPE_XMM128)
|
||||
TYPE("f128mem", TYPE_M128)
|
||||
TYPE("f256mem", TYPE_M256)
|
||||
TYPE("f512mem", TYPE_M512)
|
||||
TYPE("FR128", TYPE_XMM128)
|
||||
TYPE("FR64", TYPE_XMM64)
|
||||
TYPE("FR64X", TYPE_XMM64)
|
||||
TYPE("f64mem", TYPE_M64FP)
|
||||
TYPE("sdmem", TYPE_M64FP)
|
||||
TYPE("FR32", TYPE_XMM32)
|
||||
TYPE("FR32X", TYPE_XMM32)
|
||||
TYPE("f32mem", TYPE_M32FP)
|
||||
TYPE("ssmem", TYPE_M32FP)
|
||||
TYPE("VR128", TYPE_XMM)
|
||||
TYPE("VR128X", TYPE_XMM)
|
||||
TYPE("f128mem", TYPE_M)
|
||||
TYPE("f256mem", TYPE_M)
|
||||
TYPE("f512mem", TYPE_M)
|
||||
TYPE("FR128", TYPE_XMM)
|
||||
TYPE("FR64", TYPE_XMM)
|
||||
TYPE("FR64X", TYPE_XMM)
|
||||
TYPE("f64mem", TYPE_M)
|
||||
TYPE("sdmem", TYPE_M)
|
||||
TYPE("FR32", TYPE_XMM)
|
||||
TYPE("FR32X", TYPE_XMM)
|
||||
TYPE("f32mem", TYPE_M)
|
||||
TYPE("ssmem", TYPE_M)
|
||||
TYPE("RST", TYPE_ST)
|
||||
TYPE("i128mem", TYPE_M128)
|
||||
TYPE("i256mem", TYPE_M256)
|
||||
TYPE("i512mem", TYPE_M512)
|
||||
TYPE("i128mem", TYPE_M)
|
||||
TYPE("i256mem", TYPE_M)
|
||||
TYPE("i512mem", TYPE_M)
|
||||
TYPE("i64i32imm_pcrel", TYPE_REL64)
|
||||
TYPE("i16imm_pcrel", TYPE_REL16)
|
||||
TYPE("i32imm_pcrel", TYPE_REL32)
|
||||
|
@ -995,73 +994,73 @@ OperandType RecognizableInstr::typeFromString(const std::string &s,
|
|||
TYPE("XOPCC", TYPE_IMM3)
|
||||
TYPE("AVXCC", TYPE_IMM5)
|
||||
TYPE("AVX512ICC", TYPE_AVX512ICC)
|
||||
TYPE("AVX512RC", TYPE_IMM32)
|
||||
TYPE("AVX512RC", TYPE_IMM)
|
||||
TYPE("brtarget32", TYPE_RELv)
|
||||
TYPE("brtarget16", TYPE_RELv)
|
||||
TYPE("brtarget8", TYPE_REL8)
|
||||
TYPE("f80mem", TYPE_M80FP)
|
||||
TYPE("lea64_32mem", TYPE_LEA)
|
||||
TYPE("lea64mem", TYPE_LEA)
|
||||
TYPE("f80mem", TYPE_M)
|
||||
TYPE("lea64_32mem", TYPE_M)
|
||||
TYPE("lea64mem", TYPE_M)
|
||||
TYPE("VR64", TYPE_MM64)
|
||||
TYPE("i64imm", TYPE_IMMv)
|
||||
TYPE("i64imm", TYPE_IMM)
|
||||
TYPE("anymem", TYPE_M)
|
||||
TYPE("opaque32mem", TYPE_M1616)
|
||||
TYPE("opaque48mem", TYPE_M1632)
|
||||
TYPE("opaque80mem", TYPE_M1664)
|
||||
TYPE("opaque512mem", TYPE_M512)
|
||||
TYPE("opaque32mem", TYPE_M)
|
||||
TYPE("opaque48mem", TYPE_M)
|
||||
TYPE("opaque80mem", TYPE_M)
|
||||
TYPE("opaque512mem", TYPE_M)
|
||||
TYPE("SEGMENT_REG", TYPE_SEGMENTREG)
|
||||
TYPE("DEBUG_REG", TYPE_DEBUGREG)
|
||||
TYPE("CONTROL_REG", TYPE_CONTROLREG)
|
||||
TYPE("srcidx8", TYPE_SRCIDX8)
|
||||
TYPE("srcidx16", TYPE_SRCIDX16)
|
||||
TYPE("srcidx32", TYPE_SRCIDX32)
|
||||
TYPE("srcidx64", TYPE_SRCIDX64)
|
||||
TYPE("dstidx8", TYPE_DSTIDX8)
|
||||
TYPE("dstidx16", TYPE_DSTIDX16)
|
||||
TYPE("dstidx32", TYPE_DSTIDX32)
|
||||
TYPE("dstidx64", TYPE_DSTIDX64)
|
||||
TYPE("offset16_8", TYPE_MOFFS8)
|
||||
TYPE("offset16_16", TYPE_MOFFS16)
|
||||
TYPE("offset16_32", TYPE_MOFFS32)
|
||||
TYPE("offset32_8", TYPE_MOFFS8)
|
||||
TYPE("offset32_16", TYPE_MOFFS16)
|
||||
TYPE("offset32_32", TYPE_MOFFS32)
|
||||
TYPE("offset32_64", TYPE_MOFFS64)
|
||||
TYPE("offset64_8", TYPE_MOFFS8)
|
||||
TYPE("offset64_16", TYPE_MOFFS16)
|
||||
TYPE("offset64_32", TYPE_MOFFS32)
|
||||
TYPE("offset64_64", TYPE_MOFFS64)
|
||||
TYPE("VR256", TYPE_XMM256)
|
||||
TYPE("VR256X", TYPE_XMM256)
|
||||
TYPE("VR512", TYPE_XMM512)
|
||||
TYPE("VK1", TYPE_VK1)
|
||||
TYPE("VK1WM", TYPE_VK1)
|
||||
TYPE("VK2", TYPE_VK2)
|
||||
TYPE("VK2WM", TYPE_VK2)
|
||||
TYPE("VK4", TYPE_VK4)
|
||||
TYPE("VK4WM", TYPE_VK4)
|
||||
TYPE("VK8", TYPE_VK8)
|
||||
TYPE("VK8WM", TYPE_VK8)
|
||||
TYPE("VK16", TYPE_VK16)
|
||||
TYPE("VK16WM", TYPE_VK16)
|
||||
TYPE("VK32", TYPE_VK32)
|
||||
TYPE("VK32WM", TYPE_VK32)
|
||||
TYPE("VK64", TYPE_VK64)
|
||||
TYPE("VK64WM", TYPE_VK64)
|
||||
TYPE("srcidx8", TYPE_SRCIDX)
|
||||
TYPE("srcidx16", TYPE_SRCIDX)
|
||||
TYPE("srcidx32", TYPE_SRCIDX)
|
||||
TYPE("srcidx64", TYPE_SRCIDX)
|
||||
TYPE("dstidx8", TYPE_DSTIDX)
|
||||
TYPE("dstidx16", TYPE_DSTIDX)
|
||||
TYPE("dstidx32", TYPE_DSTIDX)
|
||||
TYPE("dstidx64", TYPE_DSTIDX)
|
||||
TYPE("offset16_8", TYPE_MOFFS)
|
||||
TYPE("offset16_16", TYPE_MOFFS)
|
||||
TYPE("offset16_32", TYPE_MOFFS)
|
||||
TYPE("offset32_8", TYPE_MOFFS)
|
||||
TYPE("offset32_16", TYPE_MOFFS)
|
||||
TYPE("offset32_32", TYPE_MOFFS)
|
||||
TYPE("offset32_64", TYPE_MOFFS)
|
||||
TYPE("offset64_8", TYPE_MOFFS)
|
||||
TYPE("offset64_16", TYPE_MOFFS)
|
||||
TYPE("offset64_32", TYPE_MOFFS)
|
||||
TYPE("offset64_64", TYPE_MOFFS)
|
||||
TYPE("VR256", TYPE_YMM)
|
||||
TYPE("VR256X", TYPE_YMM)
|
||||
TYPE("VR512", TYPE_ZMM)
|
||||
TYPE("VK1", TYPE_VK)
|
||||
TYPE("VK1WM", TYPE_VK)
|
||||
TYPE("VK2", TYPE_VK)
|
||||
TYPE("VK2WM", TYPE_VK)
|
||||
TYPE("VK4", TYPE_VK)
|
||||
TYPE("VK4WM", TYPE_VK)
|
||||
TYPE("VK8", TYPE_VK)
|
||||
TYPE("VK8WM", TYPE_VK)
|
||||
TYPE("VK16", TYPE_VK)
|
||||
TYPE("VK16WM", TYPE_VK)
|
||||
TYPE("VK32", TYPE_VK)
|
||||
TYPE("VK32WM", TYPE_VK)
|
||||
TYPE("VK64", TYPE_VK)
|
||||
TYPE("VK64WM", TYPE_VK)
|
||||
TYPE("GR32_NOAX", TYPE_Rv)
|
||||
TYPE("vx64mem", TYPE_M64)
|
||||
TYPE("vx128mem", TYPE_M128)
|
||||
TYPE("vx256mem", TYPE_M256)
|
||||
TYPE("vy128mem", TYPE_M128)
|
||||
TYPE("vy256mem", TYPE_M256)
|
||||
TYPE("vx64xmem", TYPE_M64)
|
||||
TYPE("vx128xmem", TYPE_M128)
|
||||
TYPE("vx256xmem", TYPE_M256)
|
||||
TYPE("vy128xmem", TYPE_M128)
|
||||
TYPE("vy256xmem", TYPE_M256)
|
||||
TYPE("vy512mem", TYPE_M512)
|
||||
TYPE("vz256xmem", TYPE_M256)
|
||||
TYPE("vz512mem", TYPE_M512)
|
||||
TYPE("vx64mem", TYPE_M)
|
||||
TYPE("vx128mem", TYPE_M)
|
||||
TYPE("vx256mem", TYPE_M)
|
||||
TYPE("vy128mem", TYPE_M)
|
||||
TYPE("vy256mem", TYPE_M)
|
||||
TYPE("vx64xmem", TYPE_M)
|
||||
TYPE("vx128xmem", TYPE_M)
|
||||
TYPE("vx256xmem", TYPE_M)
|
||||
TYPE("vy128xmem", TYPE_M)
|
||||
TYPE("vy256xmem", TYPE_M)
|
||||
TYPE("vy512mem", TYPE_M)
|
||||
TYPE("vz256xmem", TYPE_M)
|
||||
TYPE("vz512mem", TYPE_M)
|
||||
TYPE("BNDR", TYPE_BNDR)
|
||||
errs() << "Unhandled type string " << s << "\n";
|
||||
llvm_unreachable("Unhandled type string");
|
||||
|
|
Loading…
Reference in New Issue