diff options
author | Chris Lattner <sabre@nondot.org> | 2002-11-18 06:56:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-11-18 06:56:24 +0000 |
commit | f21dfcddcf199444440004bfa74bb222e2d3ce9e (patch) | |
tree | b0f94a3d7cbe6419d16cfb4c10a5074c31c2085b | |
parent | 6aab9cf65cd1e96f9d0fa99f8453da454648bba1 (diff) |
Expose base opcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4742 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86InstrInfo.cpp | 13 | ||||
-rw-r--r-- | lib/Target/X86/X86InstrInfo.h | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index c4785e7346..fa3537c648 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -25,3 +25,16 @@ X86InstrInfo::X86InstrInfo() } +static unsigned char BaseOpcodes[] = { +#define I(ENUM, NAME, BASEOPCODE, FLAGS, TSFLAGS) BASEOPCODE, +#include "X86InstrInfo.def" +}; + +// getBaseOpcodeFor - This function returns the "base" X86 opcode for the +// specified opcode number. +// +unsigned char X86InstrInfo::getBaseOpcodeFor(unsigned Opcode) const { + assert(Opcode < sizeof(BaseOpcodes)/sizeof(BaseOpcodes[0]) && + "Opcode out of range!"); + return BaseOpcodes[Opcode]; +} diff --git a/lib/Target/X86/X86InstrInfo.h b/lib/Target/X86/X86InstrInfo.h index 415d81a05c..65536818bf 100644 --- a/lib/Target/X86/X86InstrInfo.h +++ b/lib/Target/X86/X86InstrInfo.h @@ -54,6 +54,7 @@ namespace X86II { /// TODO: Mod/RM that uses a fixed opcode extension, like /0 + FormMask = 7, //===------------------------------------------------------------------===// // Actual flags... @@ -83,6 +84,12 @@ public: virtual void print(const MachineInstr *MI, std::ostream &O, const TargetMachine &TM) const; + // getBaseOpcodeFor - This function returns the "base" X86 opcode for the + // specified opcode number. + // + unsigned char getBaseOpcodeFor(unsigned Opcode) const; + + //===--------------------------------------------------------------------===// // |