mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-15 19:24:33 +00:00
capture implicit uses and defs in CodeGenInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98879 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -123,6 +123,8 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr)
|
||||
hasExtraDefRegAllocReq = R->getValueAsBit("hasExtraDefRegAllocReq");
|
||||
hasOptionalDef = false;
|
||||
isVariadic = false;
|
||||
ImplicitDefs = R->getValueAsListOfDefs("Defs");
|
||||
ImplicitUses = R->getValueAsListOfDefs("Uses");
|
||||
|
||||
if (neverHasSideEffects + hasSideEffects > 1)
|
||||
throw R->getName() + ": multiple conflicting side-effect flags set!";
|
||||
|
@@ -114,6 +114,10 @@ namespace llvm {
|
||||
/// type (which is a record).
|
||||
std::vector<OperandInfo> OperandList;
|
||||
|
||||
/// ImplicitDefs/ImplicitUses - These are lists of registers that are
|
||||
/// implicitly defined and used by the instruction.
|
||||
std::vector<Record*> ImplicitDefs, ImplicitUses;
|
||||
|
||||
// Various boolean values we track for the instruction.
|
||||
bool isReturn;
|
||||
bool isBranch;
|
||||
|
Reference in New Issue
Block a user