Move XForm instructions over to the auto-generated asm writer
[oota-llvm.git] / lib / Target / Skeleton / SkeletonInstrInfo.td
1 //===- SkeletonInstrInfo.td - Describe the Instruction Set ------*- C++ -*-===//
2 // 
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9 //
10 // Skeleton instruction information.  Fill in stuff here.
11 //
12 //===----------------------------------------------------------------------===//
13
14 class Format<bits<4> val> {
15   bits<4> Value = val;
16 }
17
18 // Some of the powerpc instruction formats, plus a pseudo-instruction format:
19 def Pseudo : Format<0>;
20 def IForm : Format<1>;
21 def BForm : Format<2>;
22
23 // Look at how other targets factor commonality between instructions.
24 class SkelInst<string nm, bits<6> opcd, Format f> : Instruction {
25   let Namespace = "Skeleton";
26
27   let Name = nm;
28   bits<6> Opcode = opcd;
29   Format Form = f;
30   bits<4> FormBits = Form.Value;
31 }
32
33 // Pseudo-instructions:
34 def PHI : SkelInst<"PHI", 0, Pseudo>;          // PHI node...
35 def NOP : SkelInst<"NOP", 0, Pseudo>;          // No-op
36 def ADJCALLSTACKDOWN : SkelInst<"ADJCALLSTACKDOWN", 0, Pseudo>;
37 def ADJCALLSTACKUP : SkelInst<"ADJCALLSTACKUP", 0, Pseudo>;
38
39