Skip to content

Commit

Permalink
[X86] Add function isPrefix()
Browse files Browse the repository at this point in the history
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.

Differential Revision: https://reviews.llvm.org/D73013
  • Loading branch information
KanRobert committed Jan 30, 2020
1 parent 0e67212 commit eb05457
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
Expand Up @@ -346,6 +346,33 @@ namespace X86 {
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,
Expand Down

0 comments on commit eb05457

Please sign in to comment.