mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Make x86 asm parser to check for xmm vs ymm for index register in gather instructions. Also fix Intel syntax for gather instructions to use 'DWORD PTR' or 'QWORD PTR' to match gas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160420 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -331,6 +331,23 @@ struct X86Operand : public MCParsedAsmOperand {
|
||||
return Kind == Memory && (!Mem.Size || Mem.Size == 256);
|
||||
}
|
||||
|
||||
bool isMemVX32() const {
|
||||
return Kind == Memory && (!Mem.Size || Mem.Size == 32) &&
|
||||
getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM15;
|
||||
}
|
||||
bool isMemVY32() const {
|
||||
return Kind == Memory && (!Mem.Size || Mem.Size == 32) &&
|
||||
getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM15;
|
||||
}
|
||||
bool isMemVX64() const {
|
||||
return Kind == Memory && (!Mem.Size || Mem.Size == 64) &&
|
||||
getMemIndexReg() >= X86::XMM0 && getMemIndexReg() <= X86::XMM15;
|
||||
}
|
||||
bool isMemVY64() const {
|
||||
return Kind == Memory && (!Mem.Size || Mem.Size == 64) &&
|
||||
getMemIndexReg() >= X86::YMM0 && getMemIndexReg() <= X86::YMM15;
|
||||
}
|
||||
|
||||
bool isAbsMem() const {
|
||||
return Kind == Memory && !getMemSegReg() && !getMemBaseReg() &&
|
||||
!getMemIndexReg() && getMemScale() == 1;
|
||||
@@ -377,6 +394,18 @@ struct X86Operand : public MCParsedAsmOperand {
|
||||
void addMem256Operands(MCInst &Inst, unsigned N) const {
|
||||
addMemOperands(Inst, N);
|
||||
}
|
||||
void addMemVX32Operands(MCInst &Inst, unsigned N) const {
|
||||
addMemOperands(Inst, N);
|
||||
}
|
||||
void addMemVY32Operands(MCInst &Inst, unsigned N) const {
|
||||
addMemOperands(Inst, N);
|
||||
}
|
||||
void addMemVX64Operands(MCInst &Inst, unsigned N) const {
|
||||
addMemOperands(Inst, N);
|
||||
}
|
||||
void addMemVY64Operands(MCInst &Inst, unsigned N) const {
|
||||
addMemOperands(Inst, N);
|
||||
}
|
||||
|
||||
void addMemOperands(MCInst &Inst, unsigned N) const {
|
||||
assert((N == 5) && "Invalid number of operands!");
|
||||
|
Reference in New Issue
Block a user