xref: /aosp_15_r20/external/llvm/lib/Target/BPF/BPFInstrFormats.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//===-- BPFInstrFormats.td - BPF Instruction Formats -------*- tablegen -*-===//
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker//                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker//
5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker//
8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerclass InstBPF<dag outs, dag ins, string asmstr, list<dag> pattern>
11*9880d681SAndroid Build Coastguard Worker  : Instruction {
12*9880d681SAndroid Build Coastguard Worker  field bits<64> Inst;
13*9880d681SAndroid Build Coastguard Worker  field bits<64> SoftFail = 0;
14*9880d681SAndroid Build Coastguard Worker  let Size = 8;
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker  let Namespace = "BPF";
17*9880d681SAndroid Build Coastguard Worker  let DecoderNamespace = "BPF";
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker  bits<3> BPFClass;
20*9880d681SAndroid Build Coastguard Worker  let Inst{58-56} = BPFClass;
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker  dag OutOperandList = outs;
23*9880d681SAndroid Build Coastguard Worker  dag InOperandList = ins;
24*9880d681SAndroid Build Coastguard Worker  let AsmString = asmstr;
25*9880d681SAndroid Build Coastguard Worker  let Pattern = pattern;
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker// Pseudo instructions
29*9880d681SAndroid Build Coastguard Workerclass Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
30*9880d681SAndroid Build Coastguard Worker  : InstBPF<outs, ins, asmstr, pattern> {
31*9880d681SAndroid Build Coastguard Worker  let Inst{63-0} = 0;
32*9880d681SAndroid Build Coastguard Worker  let isPseudo = 1;
33*9880d681SAndroid Build Coastguard Worker}
34