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 | c860ecafe1586342a9e13763991b279895adc399 (patch) | |
| tree | 2c0fa3d39bd0cad4d36f4d0d4c73ff0e070bdec8 /llvm/utils/TableGen/CodeGenInstruction.h | |
| parent | fd6893837c4d2659e5f59e66ade0d0142c3aed54 (diff) | |
| download | bcm5719-llvm-c860ecafe1586342a9e13763991b279895adc399.tar.gz bcm5719-llvm-c860ecafe1586342a9e13763991b279895adc399.zip | |
Add, and start using, the CodeGenInstruction class. This class represents
an instance of the Instruction tablegen class.
llvm-svn: 15385
Diffstat (limited to 'llvm/utils/TableGen/CodeGenInstruction.h')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.h b/llvm/utils/TableGen/CodeGenInstruction.h new file mode 100644 index 00000000000..88f2c17d9d8 --- /dev/null +++ b/llvm/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 |

