//===-- BPFInstrFormats.td - BPF Instruction Formats -------*- tablegen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

class BPFOpClass<bits<3> val> {
  bits<3> Value = val;
}

def BPF_LD    : BPFOpClass<0x0>;
def BPF_LDX   : BPFOpClass<0x1>;
def BPF_ST    : BPFOpClass<0x2>;
def BPF_STX   : BPFOpClass<0x3>;
def BPF_ALU   : BPFOpClass<0x4>;
def BPF_JMP   : BPFOpClass<0x5>;
def BPF_ALU64 : BPFOpClass<0x7>;

class BPFSrcType<bits<1> val> {
  bits<1> Value = val;
}

def BPF_K : BPFSrcType<0x0>;
def BPF_X : BPFSrcType<0x1>;

class BPFArithOp<bits<4> val> {
  bits<4> Value = val;
}

def BPF_ADD  : BPFArithOp<0x0>;
def BPF_SUB  : BPFArithOp<0x1>;
def BPF_MUL  : BPFArithOp<0x2>;
def BPF_DIV  : BPFArithOp<0x3>;
def BPF_OR   : BPFArithOp<0x4>;
def BPF_AND  : BPFArithOp<0x5>;
def BPF_LSH  : BPFArithOp<0x6>;
def BPF_RSH  : BPFArithOp<0x7>;
def BPF_NEG  : BPFArithOp<0x8>;
def BPF_XOR  : BPFArithOp<0xa>;
def BPF_MOV  : BPFArithOp<0xb>;
def BPF_ARSH : BPFArithOp<0xc>;
def BPF_END  : BPFArithOp<0xd>;

class BPFEndDir<bits<1> val> {
  bits<1> Value = val;
}

def BPF_TO_LE : BPFSrcType<0x0>;
def BPF_TO_BE : BPFSrcType<0x1>;

class BPFJumpOp<bits<4> val> {
  bits<4> Value = val;
}

def BPF_JA   : BPFJumpOp<0x0>;
def BPF_JEQ  : BPFJumpOp<0x1>;
def BPF_JGT  : BPFJumpOp<0x2>;
def BPF_JGE  : BPFJumpOp<0x3>;
def BPF_JNE  : BPFJumpOp<0x5>;
def BPF_JSGT : BPFJumpOp<0x6>;
def BPF_JSGE : BPFJumpOp<0x7>;
def BPF_CALL : BPFJumpOp<0x8>;
def BPF_EXIT : BPFJumpOp<0x9>;
def BPF_JLT  : BPFJumpOp<0xa>;
def BPF_JLE  : BPFJumpOp<0xb>;
def BPF_JSLT : BPFJumpOp<0xc>;
def BPF_JSLE : BPFJumpOp<0xd>;

class BPFWidthModifer<bits<2> val> {
  bits<2> Value = val;
}

def BPF_W  : BPFWidthModifer<0x0>;
def BPF_H  : BPFWidthModifer<0x1>;
def BPF_B  : BPFWidthModifer<0x2>;
def BPF_DW : BPFWidthModifer<0x3>;

class BPFModeModifer<bits<3> val> {
  bits<3> Value = val;
}

def BPF_IMM  : BPFModeModifer<0x0>;
def BPF_ABS  : BPFModeModifer<0x1>;
def BPF_IND  : BPFModeModifer<0x2>;
def BPF_MEM  : BPFModeModifer<0x3>;
def BPF_XADD : BPFModeModifer<0x6>;

class InstBPF<dag outs, dag ins, string asmstr, list<dag> pattern>
  : Instruction {
  field bits<64> Inst;
  field bits<64> SoftFail = 0;
  let Size = 8;

  let Namespace = "BPF";
  let DecoderNamespace = "BPF";

  BPFOpClass BPFClass;
  let Inst{58-56} = BPFClass.Value;

  dag OutOperandList = outs;
  dag InOperandList = ins;
  let AsmString = asmstr;
  let Pattern = pattern;
}

// Pseudo instructions
class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : InstBPF<outs, ins, asmstr, pattern> {
  let Inst{63-0} = 0;
  let isPseudo = 1;
}
