[PATCH] D73013: [X86] Add function isPrefix()
Kan Shengchen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jan 19 18:31:47 PST 2020
skan created this revision.
skan added reviewers: craig.topper, courbet, LuoYuanke, annita.zhang, tianqing.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
Currently some prefixes are emitted as instructions, to distinguish them from real instruction, fuction isPrefix() is added. The kinds of prefix are consistent with X86GenInstrInfo.inc.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D73013
Files:
llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
Index: llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
===================================================================
--- llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
+++ llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
@@ -346,6 +346,33 @@
llvm_unreachable("unknown fusion type");
}
+ /// \returns true if the instruction with given opcode is a prefix.
+ inline bool isPrefix(unsigned Opcode) {
+ switch (Opcode) {
+ default:
+ return false;
+ // segment override prefix
+ case X86::CS_PREFIX:
+ case X86::DS_PREFIX:
+ case X86::ES_PREFIX:
+ case X86::FS_PREFIX:
+ case X86::GS_PREFIX:
+ case X86::SS_PREFIX:
+ // operand-size override prefix
+ case X86::DATA16_PREFIX:
+ // lock and repeat prefix
+ case X86::LOCK_PREFIX:
+ case X86::REPNE_PREFIX:
+ case X86::REP_PREFIX:
+ // rex64 prefix
+ case X86::REX64_PREFIX:
+ // acquire and release prefix
+ case X86::XACQUIRE_PREFIX:
+ case X86::XRELEASE_PREFIX:
+ return true;
+ }
+ }
+
/// Defines the possible values of the branch boundary alignment mask.
enum AlignBranchBoundaryKind : uint8_t {
AlignBranchNone = 0,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73013.239018.patch
Type: text/x-patch
Size: 1177 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200120/6b603dc2/attachment.bin>
More information about the llvm-commits
mailing list