blob: c10af8a9ad49037b534847f3be2229a398ba287f [file] [log] [blame]
Chris Lattner25c29d12004-07-16 06:29:19 +00001//===- 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
14class Format<bits<4> val> {
15 bits<4> Value = val;
16}
17
Chris Lattner5ad021c2004-07-16 07:11:15 +000018// Some of the powerpc instruction formats, plus a pseudo-instruction format:
Chris Lattner25c29d12004-07-16 06:29:19 +000019def Pseudo : Format<0>;
20def IForm : Format<1>;
21def BForm : Format<2>;
22
23// Look at how other targets factor commonality between instructions.
Chris Lattner8cbee4e2004-09-21 17:30:54 +000024class SkelInst<string nm, bits<6> opcd, dag ops, Format f> : Instruction {
Chris Lattner25c29d12004-07-16 06:29:19 +000025 let Namespace = "Skeleton";
26
27 let Name = nm;
Chris Lattner8cbee4e2004-09-21 17:30:54 +000028 let OperandList = ops;
Chris Lattner25c29d12004-07-16 06:29:19 +000029 bits<6> Opcode = opcd;
30 Format Form = f;
31 bits<4> FormBits = Form.Value;
32}
33
34// Pseudo-instructions:
Chris Lattner8cbee4e2004-09-21 17:30:54 +000035def PHI : SkelInst<"PHI", 0, (ops), Pseudo>; // PHI node...
36def NOP : SkelInst<"NOP", 0, (ops), Pseudo>; // No-op
37def ADJCALLSTACKDOWN : SkelInst<"ADJCALLSTACKDOWN", 0, (ops), Pseudo>;
38def ADJCALLSTACKUP : SkelInst<"ADJCALLSTACKUP", 0, (ops), Pseudo>;
Chris Lattner25c29d12004-07-16 06:29:19 +000039
40