diff options
author | Chris Lattner <sabre@nondot.org> | 2004-08-01 05:04:00 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-08-01 05:04:00 +0000 |
commit | ec3524064c57fbc2c5976ca301bbaadc94006d07 (patch) | |
tree | 3573ecb2d47dc12b96dfd076e79b71eeb848ea0c /utils/TableGen/CodeGenInstruction.h | |
parent | c139203f049e1a10e19f3ec4f6785e21323dec6e (diff) | |
download | llvm-ec3524064c57fbc2c5976ca301bbaadc94006d07.tar.gz llvm-ec3524064c57fbc2c5976ca301bbaadc94006d07.tar.bz2 llvm-ec3524064c57fbc2c5976ca301bbaadc94006d07.tar.xz |
Add, and start using, the CodeGenInstruction class. This class represents
an instance of the Instruction tablegen class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15385 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/CodeGenInstruction.h')
-rw-r--r-- | utils/TableGen/CodeGenInstruction.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/utils/TableGen/CodeGenInstruction.h b/utils/TableGen/CodeGenInstruction.h new file mode 100644 index 0000000000..88f2c17d9d --- /dev/null +++ b/utils/TableGen/CodeGenInstruction.h @@ -0,0 +1,49 @@ +//===- CodeGenInstruction.h - Instruction Class Wrapper ---------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a wrapper class for the 'Instruction' TableGen class. +// +//===----------------------------------------------------------------------===// + +#ifndef CODEGEN_INSTRUCTION_H +#define CODEGEN_INSTRUCTION_H + +#include <string> +#include <vector> +#include <utility> + +namespace llvm { + class Record; + + struct CodeGenInstruction { + Record *TheDef; // The actual record defining this instruction. + std::string Name; // Contents of the 'Name' field. + std::string Namespace; // The namespace the instruction is in. + + /// AsmString - The format string used to emit a .s file for the + /// instruction. + std::string AsmString; + + /// OperandList - The list of declared operands, along with their declared + /// type (which is a record). + std::vector<std::pair<Record*, std::string> > OperandList; + + // Various boolean values we track for the instruction. + bool isReturn; + bool isBranch; + bool isBarrier; + bool isCall; + bool isTwoAddress; + bool isTerminator; + + CodeGenInstruction(Record *R); + }; +} + +#endif |