mirror of
https://github.com/hedge-dev/XenonRecomp.git
synced 2025-07-27 07:23:56 +00:00
Add missing thirdparty files
This commit is contained in:
49
thirdparty/capstone/suite/synctools/tablegen/X86/X86SchedPredicates.td
vendored
Normal file
49
thirdparty/capstone/suite/synctools/tablegen/X86/X86SchedPredicates.td
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
//===-- X86SchedPredicates.td - X86 Scheduling Predicates --*- tablegen -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file defines scheduling predicate definitions that are common to
|
||||
// all X86 subtargets.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// A predicate used to identify dependency-breaking instructions that clear the
|
||||
// content of the destination register. Note that this predicate only checks if
|
||||
// input registers are the same. This predicate doesn't make any assumptions on
|
||||
// the expected instruction opcodes, because different processors may implement
|
||||
// different zero-idioms.
|
||||
def ZeroIdiomPredicate : CheckSameRegOperand<1, 2>;
|
||||
|
||||
// A predicate used to check if an instruction is a LEA, and if it uses all
|
||||
// three source operands: base, index, and offset.
|
||||
def IsThreeOperandsLEAPredicate: CheckAll<[
|
||||
CheckOpcode<[LEA32r, LEA64r, LEA64_32r, LEA16r]>,
|
||||
|
||||
// isRegOperand(Base)
|
||||
CheckIsRegOperand<1>,
|
||||
CheckNot<CheckInvalidRegOperand<1>>,
|
||||
|
||||
// isRegOperand(Index)
|
||||
CheckIsRegOperand<3>,
|
||||
CheckNot<CheckInvalidRegOperand<3>>,
|
||||
|
||||
// hasLEAOffset(Offset)
|
||||
CheckAny<[
|
||||
CheckAll<[
|
||||
CheckIsImmOperand<4>,
|
||||
CheckNot<CheckZeroOperand<4>>
|
||||
]>,
|
||||
CheckNonPortable<"MI.getOperand(4).isGlobal()">
|
||||
]>
|
||||
]>;
|
||||
|
||||
// This predicate evaluates to true only if the input machine instruction is a
|
||||
// 3-operands LEA. Tablegen automatically generates a new method for it in
|
||||
// X86GenInstrInfo.
|
||||
def IsThreeOperandsLEAFn :
|
||||
TIIPredicate<"X86", "isThreeOperandsLEA", IsThreeOperandsLEAPredicate>;
|
Reference in New Issue
Block a user