diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2018-06-13 13:53:56 +0000 |
---|---|---|
committer | Guillaume Chatelet <gchatelet@google.com> | 2018-06-13 13:53:56 +0000 |
commit | 60e3d582f664486507119dc2b7fc3a876b065664 (patch) | |
tree | ac00c0cb2c7c054e9e3ce29c8850b3960d7522b8 /llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp | |
parent | 3e039f86cccf39e18161cac86940a7c78563dcc4 (diff) | |
download | bcm5719-llvm-60e3d582f664486507119dc2b7fc3a876b065664.tar.gz bcm5719-llvm-60e3d582f664486507119dc2b7fc3a876b065664.zip |
[llvm-exegesis] Fix failing assert when creating Snippet for LAHF.
Reviewers: courbet
Subscribers: tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D48123
llvm-svn: 334599
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp')
-rw-r--r-- | llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp b/llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp index c57696979d5..110053829a6 100644 --- a/llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp +++ b/llvm/tools/llvm-exegesis/lib/MCInstrDescView.cpp @@ -208,13 +208,17 @@ static void randomize(const Variable &Var, llvm::MCOperand &AssignedValue) { static void setRegisterOperandValue(const RegisterOperandAssignment &ROV, InstructionInstance &II) { assert(ROV.Op); - assert(ROV.Op->IsExplicit); - auto &AssignedValue = II.getValueFor(*ROV.Op); - if (AssignedValue.isValid()) { - assert(AssignedValue.isReg() && AssignedValue.getReg() == ROV.Reg); - return; + if (ROV.Op->IsExplicit) { + auto &AssignedValue = II.getValueFor(*ROV.Op); + if (AssignedValue.isValid()) { + assert(AssignedValue.isReg() && AssignedValue.getReg() == ROV.Reg); + return; + } + AssignedValue = llvm::MCOperand::createReg(ROV.Reg); + } else { + assert(ROV.Op->ImplicitReg != nullptr); + assert(ROV.Reg == *ROV.Op->ImplicitReg); } - AssignedValue = llvm::MCOperand::createReg(ROV.Reg); } size_t randomBit(const llvm::BitVector &Vector) { |