summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib/Target.h
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2019-04-06 14:16:26 +0000
committerRoman Lebedev <lebedev.ri@gmail.com>2019-04-06 14:16:26 +0000
commit404bdb1c9efb84ea530ed0079a5797dc8c0e41f8 (patch)
treeac49b85be65040502c7ad31d4f3890ce469a0bf6 /llvm/tools/llvm-exegesis/lib/Target.h
parentd23611f9ad97173edbea6a30d4638e527cf5abeb (diff)
downloadbcm5719-llvm-404bdb1c9efb84ea530ed0079a5797dc8c0e41f8.tar.gz
bcm5719-llvm-404bdb1c9efb84ea530ed0079a5797dc8c0e41f8.zip
[llvm-exegesis][X86] Handle CMOVcc/SETcc OPERAND_COND_CODE OperandType
Summary: D60041 / D60138 refactoring changed how CMOV/SETcc opcodes are handled. concode is now an immediate, with it's own operand type. This at least allows to not crash on the opcode. However, this still won't generate all the snippets with all the condcode enumerators. D60066 does that. Reviewers: courbet, gchatelet Reviewed By: gchatelet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60057 llvm-svn: 357841
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/Target.h')
-rw-r--r--llvm/tools/llvm-exegesis/lib/Target.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/Target.h b/llvm/tools/llvm-exegesis/lib/Target.h
index ab760bfa820..0c574780865 100644
--- a/llvm/tools/llvm-exegesis/lib/Target.h
+++ b/llvm/tools/llvm-exegesis/lib/Target.h
@@ -102,6 +102,14 @@ public:
// matter as long as it's large enough.
virtual unsigned getMaxMemoryAccessSize() const { return 0; }
+ // Assigns a random operand of the right type to variable Var.
+ // The default implementation only handles generic operand types.
+ // The target is responsible for handling any operand
+ // starting from OPERAND_FIRST_TARGET.
+ virtual void randomizeMCOperand(const Instruction &Instr, const Variable &Var,
+ llvm::MCOperand &AssignedValue,
+ const llvm::BitVector &ForbiddenRegs) const;
+
// Creates a snippet generator for the given mode.
std::unique_ptr<SnippetGenerator>
createSnippetGenerator(InstructionBenchmark::ModeE Mode,
OpenPOWER on IntegriCloud