From 0d74debd077cca13b17e9c58e6d8790fa3bd2ac0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 4 Aug 2003 21:07:37 +0000 Subject: [PATCH] Allow instructions to have a DAG pattern associated with them. Define a few preliminary node types. llvm-svn: 7579 --- llvm/lib/Target/Target.td | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/llvm/lib/Target/Target.td b/llvm/lib/Target/Target.td index bb0e525bb676..0cdebcd7cd5c 100644 --- a/llvm/lib/Target/Target.td +++ b/llvm/lib/Target/Target.td @@ -103,6 +103,10 @@ class Instruction { bit isCall = 0; // Is this instruction a call instruction? bit isTwoAddress = 0; // Is this a two address instruction? bit isTerminator = 0; // Is this part of the terminator for a basic block? + + // Pattern - Set to the DAG pattern for this instruction, if we know of one, + // otherwise, uninitialized. + dag Pattern; } // InstrInfo - This class should only be instantiated once to provide parameters @@ -135,3 +139,19 @@ class Target { // InstructionSet - Instruction set description for this target InstrInfo InstructionSet; } + + +//===----------------------------------------------------------------------===// +// DAG node definitions used by the instruction selector... +// +def set; // FIXME: these are subject to substantial change +def plus; +def minus; +def mult; +def div; +def udiv; +def mod; +def umod; +def imm8; +def imm16; +def imm32;