1 //===- SparcV9_F2.td - Format 2 instructions: SparcV9 Target --------------===//
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 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
13 class F2 : InstV9 { // Format 2 instructions
16 let Inst{24-22} = op2;
19 // Format 2.1 instructions
20 class F2_1<string name> : F2 {
29 class F2_br : F2 { // Format 2 Branch instruction
30 let isBranch = 1; // All instances are branch instructions
33 class F2_2<bits<4> cond, string name> : F2_br { // Format 2.2 instructions
35 bit annul = 0; // currently unused by SparcV9 backend
39 let Inst{28-25} = cond;
40 let Inst{21-0} = disp;
43 class F2_3<bits<4> cond, string name> : F2_br { // Format 2.3 instructions
47 bit annul = 0; // currently unused by SparcV9 backend
51 let Inst{28-25} = cond;
53 let Inst{19} = predict;
54 let Inst{18-0} = disp;
57 class F2_4<bits<3> rcond, string name> : F2_br { // Format 2.4 instructions
61 bit annul = 0; // currently unused by SparcV9 backend
66 let Inst{27-25} = rcond;
67 let Inst{21-20} = disp{15-14};
68 let Inst{19} = predict;
69 let Inst{18-14} = rs1;
70 let Inst{13-0 } = disp{13-0};