mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-20 12:31:40 +00:00
whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127065 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
58bfcdbcf6
commit
8d4a422513
@ -33,15 +33,15 @@ namespace X86 {
|
|||||||
AddrScaleAmt = 1,
|
AddrScaleAmt = 1,
|
||||||
AddrIndexReg = 2,
|
AddrIndexReg = 2,
|
||||||
AddrDisp = 3,
|
AddrDisp = 3,
|
||||||
|
|
||||||
/// AddrSegmentReg - The operand # of the segment in the memory operand.
|
/// AddrSegmentReg - The operand # of the segment in the memory operand.
|
||||||
AddrSegmentReg = 4,
|
AddrSegmentReg = 4,
|
||||||
|
|
||||||
/// AddrNumOperands - Total number of operands in a memory reference.
|
/// AddrNumOperands - Total number of operands in a memory reference.
|
||||||
AddrNumOperands = 5
|
AddrNumOperands = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// X86 specific condition code. These correspond to X86_*_COND in
|
// X86 specific condition code. These correspond to X86_*_COND in
|
||||||
// X86InstrInfo.td. They must be kept in synch.
|
// X86InstrInfo.td. They must be kept in synch.
|
||||||
enum CondCode {
|
enum CondCode {
|
||||||
@ -72,16 +72,16 @@ namespace X86 {
|
|||||||
|
|
||||||
COND_INVALID
|
COND_INVALID
|
||||||
};
|
};
|
||||||
|
|
||||||
// Turn condition code into conditional branch opcode.
|
// Turn condition code into conditional branch opcode.
|
||||||
unsigned GetCondBranchFromCond(CondCode CC);
|
unsigned GetCondBranchFromCond(CondCode CC);
|
||||||
|
|
||||||
/// GetOppositeBranchCondition - Return the inverse of the specified cond,
|
/// GetOppositeBranchCondition - Return the inverse of the specified cond,
|
||||||
/// e.g. turning COND_E to COND_NE.
|
/// e.g. turning COND_E to COND_NE.
|
||||||
CondCode GetOppositeBranchCondition(X86::CondCode CC);
|
CondCode GetOppositeBranchCondition(X86::CondCode CC);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// X86II - This namespace holds all of the target specific flags that
|
/// X86II - This namespace holds all of the target specific flags that
|
||||||
/// instruction info tracks.
|
/// instruction info tracks.
|
||||||
///
|
///
|
||||||
@ -90,14 +90,14 @@ namespace X86II {
|
|||||||
enum TOF {
|
enum TOF {
|
||||||
//===------------------------------------------------------------------===//
|
//===------------------------------------------------------------------===//
|
||||||
// X86 Specific MachineOperand flags.
|
// X86 Specific MachineOperand flags.
|
||||||
|
|
||||||
MO_NO_FLAG,
|
MO_NO_FLAG,
|
||||||
|
|
||||||
/// MO_GOT_ABSOLUTE_ADDRESS - On a symbol operand, this represents a
|
/// MO_GOT_ABSOLUTE_ADDRESS - On a symbol operand, this represents a
|
||||||
/// relocation of:
|
/// relocation of:
|
||||||
/// SYMBOL_LABEL + [. - PICBASELABEL]
|
/// SYMBOL_LABEL + [. - PICBASELABEL]
|
||||||
MO_GOT_ABSOLUTE_ADDRESS,
|
MO_GOT_ABSOLUTE_ADDRESS,
|
||||||
|
|
||||||
/// MO_PIC_BASE_OFFSET - On a symbol operand this indicates that the
|
/// MO_PIC_BASE_OFFSET - On a symbol operand this indicates that the
|
||||||
/// immediate should get the value of the symbol minus the PIC base label:
|
/// immediate should get the value of the symbol minus the PIC base label:
|
||||||
/// SYMBOL_LABEL - PICBASELABEL
|
/// SYMBOL_LABEL - PICBASELABEL
|
||||||
@ -106,77 +106,77 @@ namespace X86II {
|
|||||||
/// MO_GOT - On a symbol operand this indicates that the immediate is the
|
/// MO_GOT - On a symbol operand this indicates that the immediate is the
|
||||||
/// offset to the GOT entry for the symbol name from the base of the GOT.
|
/// offset to the GOT entry for the symbol name from the base of the GOT.
|
||||||
///
|
///
|
||||||
/// See the X86-64 ELF ABI supplement for more details.
|
/// See the X86-64 ELF ABI supplement for more details.
|
||||||
/// SYMBOL_LABEL @GOT
|
/// SYMBOL_LABEL @GOT
|
||||||
MO_GOT,
|
MO_GOT,
|
||||||
|
|
||||||
/// MO_GOTOFF - On a symbol operand this indicates that the immediate is
|
/// MO_GOTOFF - On a symbol operand this indicates that the immediate is
|
||||||
/// the offset to the location of the symbol name from the base of the GOT.
|
/// the offset to the location of the symbol name from the base of the GOT.
|
||||||
///
|
///
|
||||||
/// See the X86-64 ELF ABI supplement for more details.
|
/// See the X86-64 ELF ABI supplement for more details.
|
||||||
/// SYMBOL_LABEL @GOTOFF
|
/// SYMBOL_LABEL @GOTOFF
|
||||||
MO_GOTOFF,
|
MO_GOTOFF,
|
||||||
|
|
||||||
/// MO_GOTPCREL - On a symbol operand this indicates that the immediate is
|
/// MO_GOTPCREL - On a symbol operand this indicates that the immediate is
|
||||||
/// offset to the GOT entry for the symbol name from the current code
|
/// offset to the GOT entry for the symbol name from the current code
|
||||||
/// location.
|
/// location.
|
||||||
///
|
///
|
||||||
/// See the X86-64 ELF ABI supplement for more details.
|
/// See the X86-64 ELF ABI supplement for more details.
|
||||||
/// SYMBOL_LABEL @GOTPCREL
|
/// SYMBOL_LABEL @GOTPCREL
|
||||||
MO_GOTPCREL,
|
MO_GOTPCREL,
|
||||||
|
|
||||||
/// MO_PLT - On a symbol operand this indicates that the immediate is
|
/// MO_PLT - On a symbol operand this indicates that the immediate is
|
||||||
/// offset to the PLT entry of symbol name from the current code location.
|
/// offset to the PLT entry of symbol name from the current code location.
|
||||||
///
|
///
|
||||||
/// See the X86-64 ELF ABI supplement for more details.
|
/// See the X86-64 ELF ABI supplement for more details.
|
||||||
/// SYMBOL_LABEL @PLT
|
/// SYMBOL_LABEL @PLT
|
||||||
MO_PLT,
|
MO_PLT,
|
||||||
|
|
||||||
/// MO_TLSGD - On a symbol operand this indicates that the immediate is
|
/// MO_TLSGD - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
||||||
/// SYMBOL_LABEL @TLSGD
|
/// SYMBOL_LABEL @TLSGD
|
||||||
MO_TLSGD,
|
MO_TLSGD,
|
||||||
|
|
||||||
/// MO_GOTTPOFF - On a symbol operand this indicates that the immediate is
|
/// MO_GOTTPOFF - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
||||||
/// SYMBOL_LABEL @GOTTPOFF
|
/// SYMBOL_LABEL @GOTTPOFF
|
||||||
MO_GOTTPOFF,
|
MO_GOTTPOFF,
|
||||||
|
|
||||||
/// MO_INDNTPOFF - On a symbol operand this indicates that the immediate is
|
/// MO_INDNTPOFF - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
||||||
/// SYMBOL_LABEL @INDNTPOFF
|
/// SYMBOL_LABEL @INDNTPOFF
|
||||||
MO_INDNTPOFF,
|
MO_INDNTPOFF,
|
||||||
|
|
||||||
/// MO_TPOFF - On a symbol operand this indicates that the immediate is
|
/// MO_TPOFF - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
||||||
/// SYMBOL_LABEL @TPOFF
|
/// SYMBOL_LABEL @TPOFF
|
||||||
MO_TPOFF,
|
MO_TPOFF,
|
||||||
|
|
||||||
/// MO_NTPOFF - On a symbol operand this indicates that the immediate is
|
/// MO_NTPOFF - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
/// See 'ELF Handling for Thread-Local Storage' for more details.
|
||||||
/// SYMBOL_LABEL @NTPOFF
|
/// SYMBOL_LABEL @NTPOFF
|
||||||
MO_NTPOFF,
|
MO_NTPOFF,
|
||||||
|
|
||||||
/// MO_DLLIMPORT - On a symbol operand "FOO", this indicates that the
|
/// MO_DLLIMPORT - On a symbol operand "FOO", this indicates that the
|
||||||
/// reference is actually to the "__imp_FOO" symbol. This is used for
|
/// reference is actually to the "__imp_FOO" symbol. This is used for
|
||||||
/// dllimport linkage on windows.
|
/// dllimport linkage on windows.
|
||||||
MO_DLLIMPORT,
|
MO_DLLIMPORT,
|
||||||
|
|
||||||
/// MO_DARWIN_STUB - On a symbol operand "FOO", this indicates that the
|
/// MO_DARWIN_STUB - On a symbol operand "FOO", this indicates that the
|
||||||
/// reference is actually to the "FOO$stub" symbol. This is used for calls
|
/// reference is actually to the "FOO$stub" symbol. This is used for calls
|
||||||
/// and jumps to external functions on Tiger and earlier.
|
/// and jumps to external functions on Tiger and earlier.
|
||||||
MO_DARWIN_STUB,
|
MO_DARWIN_STUB,
|
||||||
|
|
||||||
/// MO_DARWIN_NONLAZY - On a symbol operand "FOO", this indicates that the
|
/// MO_DARWIN_NONLAZY - On a symbol operand "FOO", this indicates that the
|
||||||
/// reference is actually to the "FOO$non_lazy_ptr" symbol, which is a
|
/// reference is actually to the "FOO$non_lazy_ptr" symbol, which is a
|
||||||
/// non-PIC-base-relative reference to a non-hidden dyld lazy pointer stub.
|
/// non-PIC-base-relative reference to a non-hidden dyld lazy pointer stub.
|
||||||
@ -186,19 +186,19 @@ namespace X86II {
|
|||||||
/// that the reference is actually to "FOO$non_lazy_ptr - PICBASE", which is
|
/// that the reference is actually to "FOO$non_lazy_ptr - PICBASE", which is
|
||||||
/// a PIC-base-relative reference to a non-hidden dyld lazy pointer stub.
|
/// a PIC-base-relative reference to a non-hidden dyld lazy pointer stub.
|
||||||
MO_DARWIN_NONLAZY_PIC_BASE,
|
MO_DARWIN_NONLAZY_PIC_BASE,
|
||||||
|
|
||||||
/// MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE - On a symbol operand "FOO", this
|
/// MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE - On a symbol operand "FOO", this
|
||||||
/// indicates that the reference is actually to "FOO$non_lazy_ptr -PICBASE",
|
/// indicates that the reference is actually to "FOO$non_lazy_ptr -PICBASE",
|
||||||
/// which is a PIC-base-relative reference to a hidden dyld lazy pointer
|
/// which is a PIC-base-relative reference to a hidden dyld lazy pointer
|
||||||
/// stub.
|
/// stub.
|
||||||
MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE,
|
MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE,
|
||||||
|
|
||||||
/// MO_TLVP - On a symbol operand this indicates that the immediate is
|
/// MO_TLVP - On a symbol operand this indicates that the immediate is
|
||||||
/// some TLS offset.
|
/// some TLS offset.
|
||||||
///
|
///
|
||||||
/// This is the TLS offset for the Darwin TLS mechanism.
|
/// This is the TLS offset for the Darwin TLS mechanism.
|
||||||
MO_TLVP,
|
MO_TLVP,
|
||||||
|
|
||||||
/// MO_TLVP_PIC_BASE - On a symbol operand this indicates that the immediate
|
/// MO_TLVP_PIC_BASE - On a symbol operand this indicates that the immediate
|
||||||
/// is some TLS offset from the picbase.
|
/// is some TLS offset from the picbase.
|
||||||
///
|
///
|
||||||
@ -239,7 +239,7 @@ inline static bool isGlobalRelativeToPICBase(unsigned char TargetFlag) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// X86II - This namespace holds all of the target specific flags that
|
/// X86II - This namespace holds all of the target specific flags that
|
||||||
/// instruction info tracks.
|
/// instruction info tracks.
|
||||||
///
|
///
|
||||||
@ -299,7 +299,7 @@ namespace X86II {
|
|||||||
// MRMInitReg - This form is used for instructions whose source and
|
// MRMInitReg - This form is used for instructions whose source and
|
||||||
// destinations are the same register.
|
// destinations are the same register.
|
||||||
MRMInitReg = 32,
|
MRMInitReg = 32,
|
||||||
|
|
||||||
//// MRM_C1 - A mod/rm byte of exactly 0xC1.
|
//// MRM_C1 - A mod/rm byte of exactly 0xC1.
|
||||||
MRM_C1 = 33,
|
MRM_C1 = 33,
|
||||||
MRM_C2 = 34,
|
MRM_C2 = 34,
|
||||||
@ -318,7 +318,7 @@ namespace X86II {
|
|||||||
/// immediates, the first of which is a 16-bit immediate (specified by
|
/// immediates, the first of which is a 16-bit immediate (specified by
|
||||||
/// the imm encoding) and the second is a 8-bit fixed value.
|
/// the imm encoding) and the second is a 8-bit fixed value.
|
||||||
RawFrmImm8 = 43,
|
RawFrmImm8 = 43,
|
||||||
|
|
||||||
/// RawFrmImm16 - This is used for CALL FAR instructions, which have two
|
/// RawFrmImm16 - This is used for CALL FAR instructions, which have two
|
||||||
/// immediates, the first of which is a 16 or 32-bit immediate (specified by
|
/// immediates, the first of which is a 16 or 32-bit immediate (specified by
|
||||||
/// the imm encoding) and the second is a 16-bit fixed value. In the AMD
|
/// the imm encoding) and the second is a 16-bit fixed value. In the AMD
|
||||||
@ -370,7 +370,7 @@ namespace X86II {
|
|||||||
|
|
||||||
// T8, TA - Prefix after the 0x0F prefix.
|
// T8, TA - Prefix after the 0x0F prefix.
|
||||||
T8 = 13 << Op0Shift, TA = 14 << Op0Shift,
|
T8 = 13 << Op0Shift, TA = 14 << Op0Shift,
|
||||||
|
|
||||||
// TF - Prefix before and after 0x0F
|
// TF - Prefix before and after 0x0F
|
||||||
TF = 15 << Op0Shift,
|
TF = 15 << Op0Shift,
|
||||||
|
|
||||||
@ -473,7 +473,7 @@ namespace X86II {
|
|||||||
/// if a VR256 register is used, but some AVX instructions also have this
|
/// if a VR256 register is used, but some AVX instructions also have this
|
||||||
/// field marked when using a f256 memory references.
|
/// field marked when using a f256 memory references.
|
||||||
VEX_L = 1U << 4,
|
VEX_L = 1U << 4,
|
||||||
|
|
||||||
/// Has3DNow0F0FOpcode - This flag indicates that the instruction uses the
|
/// Has3DNow0F0FOpcode - This flag indicates that the instruction uses the
|
||||||
/// wacky 0x0F 0x0F prefix for 3DNow! instructions. The manual documents
|
/// wacky 0x0F 0x0F prefix for 3DNow! instructions. The manual documents
|
||||||
/// this as having a 0x0F prefix with a 0x0F opcode, and each instruction
|
/// this as having a 0x0F prefix with a 0x0F opcode, and each instruction
|
||||||
@ -482,18 +482,18 @@ namespace X86II {
|
|||||||
/// this flag to indicate that the encoder should do the wacky 3DNow! thing.
|
/// this flag to indicate that the encoder should do the wacky 3DNow! thing.
|
||||||
Has3DNow0F0FOpcode = 1U << 5
|
Has3DNow0F0FOpcode = 1U << 5
|
||||||
};
|
};
|
||||||
|
|
||||||
// getBaseOpcodeFor - This function returns the "base" X86 opcode for the
|
// getBaseOpcodeFor - This function returns the "base" X86 opcode for the
|
||||||
// specified machine instruction.
|
// specified machine instruction.
|
||||||
//
|
//
|
||||||
static inline unsigned char getBaseOpcodeFor(uint64_t TSFlags) {
|
static inline unsigned char getBaseOpcodeFor(uint64_t TSFlags) {
|
||||||
return TSFlags >> X86II::OpcodeShift;
|
return TSFlags >> X86II::OpcodeShift;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool hasImm(uint64_t TSFlags) {
|
static inline bool hasImm(uint64_t TSFlags) {
|
||||||
return (TSFlags & X86II::ImmMask) != 0;
|
return (TSFlags & X86II::ImmMask) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getSizeOfImm - Decode the "size of immediate" field from the TSFlags field
|
/// getSizeOfImm - Decode the "size of immediate" field from the TSFlags field
|
||||||
/// of the specified instruction.
|
/// of the specified instruction.
|
||||||
static inline unsigned getSizeOfImm(uint64_t TSFlags) {
|
static inline unsigned getSizeOfImm(uint64_t TSFlags) {
|
||||||
@ -508,7 +508,7 @@ namespace X86II {
|
|||||||
case X86II::Imm64: return 8;
|
case X86II::Imm64: return 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// isImmPCRel - Return true if the immediate of the specified instruction's
|
/// isImmPCRel - Return true if the immediate of the specified instruction's
|
||||||
/// TSFlags indicates that it is pc relative.
|
/// TSFlags indicates that it is pc relative.
|
||||||
static inline unsigned isImmPCRel(uint64_t TSFlags) {
|
static inline unsigned isImmPCRel(uint64_t TSFlags) {
|
||||||
@ -525,7 +525,7 @@ namespace X86II {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getMemoryOperandNo - The function returns the MCInst operand # for the
|
/// getMemoryOperandNo - The function returns the MCInst operand # for the
|
||||||
/// first field of the memory operand. If the instruction doesn't have a
|
/// first field of the memory operand. If the instruction doesn't have a
|
||||||
/// memory operand, this returns -1.
|
/// memory operand, this returns -1.
|
||||||
@ -553,7 +553,7 @@ namespace X86II {
|
|||||||
unsigned FirstMemOp = 1;
|
unsigned FirstMemOp = 1;
|
||||||
if (HasVEX_4V)
|
if (HasVEX_4V)
|
||||||
++FirstMemOp;// Skip the register source (which is encoded in VEX_VVVV).
|
++FirstMemOp;// Skip the register source (which is encoded in VEX_VVVV).
|
||||||
|
|
||||||
// FIXME: Maybe lea should have its own form? This is a horrible hack.
|
// FIXME: Maybe lea should have its own form? This is a horrible hack.
|
||||||
//if (Opcode == X86::LEA64r || Opcode == X86::LEA64_32r ||
|
//if (Opcode == X86::LEA64r || Opcode == X86::LEA64_32r ||
|
||||||
// Opcode == X86::LEA16r || Opcode == X86::LEA32r)
|
// Opcode == X86::LEA16r || Opcode == X86::LEA32r)
|
||||||
@ -613,7 +613,7 @@ inline static bool isMem(const MachineInstr *MI, unsigned Op) {
|
|||||||
class X86InstrInfo : public TargetInstrInfoImpl {
|
class X86InstrInfo : public TargetInstrInfoImpl {
|
||||||
X86TargetMachine &TM;
|
X86TargetMachine &TM;
|
||||||
const X86RegisterInfo RI;
|
const X86RegisterInfo RI;
|
||||||
|
|
||||||
/// RegOp2MemOpTable2Addr, RegOp2MemOpTable0, RegOp2MemOpTable1,
|
/// RegOp2MemOpTable2Addr, RegOp2MemOpTable0, RegOp2MemOpTable1,
|
||||||
/// RegOp2MemOpTable2 - Load / store folding opcode maps.
|
/// RegOp2MemOpTable2 - Load / store folding opcode maps.
|
||||||
///
|
///
|
||||||
@ -621,7 +621,7 @@ class X86InstrInfo : public TargetInstrInfoImpl {
|
|||||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable0;
|
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable0;
|
||||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable1;
|
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable1;
|
||||||
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable2;
|
DenseMap<unsigned, std::pair<unsigned,unsigned> > RegOp2MemOpTable2;
|
||||||
|
|
||||||
/// MemOp2RegOpTable - Load / store unfolding opcode map.
|
/// MemOp2RegOpTable - Load / store unfolding opcode map.
|
||||||
///
|
///
|
||||||
DenseMap<unsigned, std::pair<unsigned, unsigned> > MemOp2RegOpTable;
|
DenseMap<unsigned, std::pair<unsigned, unsigned> > MemOp2RegOpTable;
|
||||||
@ -795,7 +795,7 @@ public:
|
|||||||
virtual unsigned getOpcodeAfterMemoryUnfold(unsigned Opc,
|
virtual unsigned getOpcodeAfterMemoryUnfold(unsigned Opc,
|
||||||
bool UnfoldLoad, bool UnfoldStore,
|
bool UnfoldLoad, bool UnfoldStore,
|
||||||
unsigned *LoadRegIndex = 0) const;
|
unsigned *LoadRegIndex = 0) const;
|
||||||
|
|
||||||
/// areLoadsFromSameBasePtr - This is used by the pre-regalloc scheduler
|
/// areLoadsFromSameBasePtr - This is used by the pre-regalloc scheduler
|
||||||
/// to determine if two loads are loading from the same base address. It
|
/// to determine if two loads are loading from the same base address. It
|
||||||
/// should only return true if the base pointers are the same and the
|
/// should only return true if the base pointers are the same and the
|
||||||
@ -829,7 +829,7 @@ public:
|
|||||||
return (reg == X86::SPL || reg == X86::BPL ||
|
return (reg == X86::SPL || reg == X86::BPL ||
|
||||||
reg == X86::SIL || reg == X86::DIL);
|
reg == X86::SIL || reg == X86::DIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isX86_64ExtendedReg(const MachineOperand &MO) {
|
static bool isX86_64ExtendedReg(const MachineOperand &MO) {
|
||||||
if (!MO.isReg()) return false;
|
if (!MO.isReg()) return false;
|
||||||
return isX86_64ExtendedReg(MO.getReg());
|
return isX86_64ExtendedReg(MO.getReg());
|
||||||
@ -862,7 +862,7 @@ public:
|
|||||||
const MachineRegisterInfo *MRI,
|
const MachineRegisterInfo *MRI,
|
||||||
const MachineInstr *DefMI, unsigned DefIdx,
|
const MachineInstr *DefMI, unsigned DefIdx,
|
||||||
const MachineInstr *UseMI, unsigned UseIdx) const;
|
const MachineInstr *UseMI, unsigned UseIdx) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MachineInstr * convertToThreeAddressWithLEA(unsigned MIOpc,
|
MachineInstr * convertToThreeAddressWithLEA(unsigned MIOpc,
|
||||||
MachineFunction::iterator &MFI,
|
MachineFunction::iterator &MFI,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user