Expose base opcode
authorChris Lattner <sabre@nondot.org>
Mon, 18 Nov 2002 06:56:24 +0000 (06:56 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 18 Nov 2002 06:56:24 +0000 (06:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4742 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrInfo.h

index c4785e7346cda6d610508b9ff8bb853d8c463c36..fa3537c6482c2064f9c90adebac3e68b71ebeee1 100644 (file)
@@ -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];
+}
index 415d81a05cfc60c754bdfa8d8bb2bcd8a1a121ed..65536818bf0f2bebf51db707b9ea8069d08573e7 100644 (file)
@@ -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;
+
+
 
   //===--------------------------------------------------------------------===//
   //