mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
Remove MRMInitReg form now that it's last use is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198257 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e27bded358
commit
64f275b59c
@ -268,10 +268,6 @@ namespace X86II {
|
||||
MRM0m = 24, MRM1m = 25, MRM2m = 26, MRM3m = 27, // Format /0 /1 /2 /3
|
||||
MRM4m = 28, MRM5m = 29, MRM6m = 30, MRM7m = 31, // Format /4 /5 /6 /7
|
||||
|
||||
// MRMInitReg - This form is used for instructions whose source and
|
||||
// destinations are the same register.
|
||||
MRMInitReg = 32,
|
||||
|
||||
//// MRM_XX - A mod/rm byte of exactly 0xXX.
|
||||
MRM_C1 = 33, MRM_C2 = 34, MRM_C3 = 35, MRM_C4 = 36,
|
||||
MRM_C8 = 37, MRM_C9 = 38, MRM_CA = 39, MRM_CB = 40,
|
||||
@ -596,9 +592,6 @@ namespace X86II {
|
||||
///
|
||||
inline int getMemoryOperandNo(uint64_t TSFlags, unsigned Opcode) {
|
||||
switch (TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg:
|
||||
// FIXME: Remove this form.
|
||||
return -1;
|
||||
default: llvm_unreachable("Unknown FormMask value in getMemoryOperandNo!");
|
||||
case X86II::Pseudo:
|
||||
case X86II::RawFrm:
|
||||
|
@ -694,7 +694,6 @@ void X86MCCodeEmitter::EmitVEXOpcodePrefix(uint64_t TSFlags, unsigned &CurByte,
|
||||
++CurOp;
|
||||
|
||||
switch (TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg: llvm_unreachable("FIXME: Remove this!");
|
||||
case X86II::MRMDestMem: {
|
||||
// MRMDestMem instructions forms:
|
||||
// MemAddr, src1(ModR/M)
|
||||
@ -974,7 +973,6 @@ static unsigned DetermineREXPrefix(const MCInst &MI, uint64_t TSFlags,
|
||||
}
|
||||
|
||||
switch (TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg: llvm_unreachable("FIXME: Remove this!");
|
||||
case X86II::MRMSrcReg:
|
||||
if (MI.getOperand(0).isReg() &&
|
||||
X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
|
||||
@ -1225,8 +1223,6 @@ EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
||||
|
||||
unsigned SrcRegNum = 0;
|
||||
switch (TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg:
|
||||
llvm_unreachable("FIXME: Remove this form when the JIT moves to MCCodeEmitter!");
|
||||
default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n";
|
||||
llvm_unreachable("Unknown FormMask value in X86MCCodeEmitter!");
|
||||
case X86II::Pseudo:
|
||||
|
@ -186,10 +186,6 @@ static unsigned determineREX(const MachineInstr &MI) {
|
||||
}
|
||||
|
||||
switch (Desc.TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg:
|
||||
if (X86InstrInfo::isX86_64ExtendedReg(MI.getOperand(0)))
|
||||
REX |= (1 << 0) | (1 << 2);
|
||||
break;
|
||||
case X86II::MRMSrcReg: {
|
||||
if (X86InstrInfo::isX86_64ExtendedReg(MI.getOperand(0)))
|
||||
REX |= 1 << 2;
|
||||
@ -941,18 +937,6 @@ void Emitter<CodeEmitter>::emitVEXOpcodePrefix(uint64_t TSFlags,
|
||||
}
|
||||
|
||||
switch (TSFlags & X86II::FormMask) {
|
||||
case X86II::MRMInitReg:
|
||||
// Duplicate register.
|
||||
if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
|
||||
VEX_R = 0x0;
|
||||
|
||||
if (HasVEX_4V)
|
||||
VEX_4V = getVEXRegisterEncoding(MI, CurOp);
|
||||
if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
|
||||
VEX_B = 0x0;
|
||||
if (HasVEX_4VOp3)
|
||||
VEX_4V = getVEXRegisterEncoding(MI, CurOp);
|
||||
break;
|
||||
case X86II::MRMDestMem: {
|
||||
// MRMDestMem instructions forms:
|
||||
// MemAddr, src1(ModR/M)
|
||||
@ -1432,14 +1416,6 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI,
|
||||
break;
|
||||
}
|
||||
|
||||
case X86II::MRMInitReg:
|
||||
MCE.emitByte(BaseOpcode);
|
||||
// Duplicate register, used by things like MOV8r0 (aka xor reg,reg).
|
||||
emitRegModRMByte(MI.getOperand(CurOp).getReg(),
|
||||
getX86RegNum(MI.getOperand(CurOp).getReg()));
|
||||
++CurOp;
|
||||
break;
|
||||
|
||||
case X86II::MRM_C1:
|
||||
MCE.emitByte(BaseOpcode);
|
||||
MCE.emitByte(0xC1);
|
||||
|
@ -28,7 +28,6 @@ def MRM6r : Format<22>; def MRM7r : Format<23>;
|
||||
def MRM0m : Format<24>; def MRM1m : Format<25>; def MRM2m : Format<26>;
|
||||
def MRM3m : Format<27>; def MRM4m : Format<28>; def MRM5m : Format<29>;
|
||||
def MRM6m : Format<30>; def MRM7m : Format<31>;
|
||||
def MRMInitReg : Format<32>;
|
||||
def MRM_C1 : Format<33>;
|
||||
def MRM_C2 : Format<34>;
|
||||
def MRM_C3 : Format<35>;
|
||||
|
Loading…
Reference in New Issue
Block a user