1 //===- AlphaInstrFormats.td - Alpha Instruction Formats ----*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
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.
8 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
20 //===----------------------------------------------------------------------===//
21 // Instruction format superclass
22 //===----------------------------------------------------------------------===//
24 class InstAlpha<bits<6> op, dag OL, string asmstr> : Instruction { // Alpha instruction baseline
26 let Namespace = "Alpha";
28 let AsmString = asmstr;
35 class MForm<bits<6> opcode, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
42 let Inst{15-0} = disp;
46 let isBranch = 1, isTerminator = 1 in
47 class BForm<bits<6> opcode, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
52 let Inst{20-0} = disp;
56 class OForm<bits<6> opcode, bits<7> fun, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
60 bits<7> Function = fun;
65 let Inst{15-13} = SBZ;
67 let Inst{11-5} = Function;
72 class OFormL<bits<6> opcode, bits<7> fun, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
75 bits<7> Function = fun;
79 let Inst{20-13} = LIT;
81 let Inst{11-5} = Function;
86 class FPForm<bits<6> opcode, bits<11> fun, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
89 bits<11> Function = fun;
94 let Inst{15-5} = Function;
99 class PALForm<bits<6> opcode, dag OL, string asmstr> : InstAlpha<opcode, OL, asmstr> {
102 let Inst{25-0} = Function;
106 // Pseudo instructions.
107 class PseudoInstAlpha<dag OL, string nm> : InstAlpha<0, OL, nm> {