//===- MipsEVAInstrFormats.td - Mips Instruction Formats ---*- tablegen -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file describes Mips32r6 instruction formats.
//
//===----------------------------------------------------------------------===//

class MipsEVAInst : MipsInst<(outs), (ins), "", [], NoItinerary, FrmOther>,
                    StdArch {
  let DecoderNamespace = "Mips";
  let EncodingPredicates = [HasStdEnc];
}

//===----------------------------------------------------------------------===//
//
// Field Values
//
//===----------------------------------------------------------------------===//

// Memory Load/Store EVA
def OPCODE6_LBE        : OPCODE6<0b101100>;
def OPCODE6_LBuE       : OPCODE6<0b101000>;
def OPCODE6_LHE        : OPCODE6<0b101101>;
def OPCODE6_LHuE       : OPCODE6<0b101001>;
def OPCODE6_LWE        : OPCODE6<0b101111>;

def OPCODE6_SBE        : OPCODE6<0b011100>;
def OPCODE6_SHE        : OPCODE6<0b011101>;
def OPCODE6_SWE        : OPCODE6<0b011111>;

// load/store left/right EVA
def OPCODE6_LWLE       : OPCODE6<0b011001>;
def OPCODE6_LWRE       : OPCODE6<0b011010>;
def OPCODE6_SWLE       : OPCODE6<0b100001>;
def OPCODE6_SWRE       : OPCODE6<0b100010>;

// Load-linked EVA, Store-conditional EVA
def OPCODE6_LLE        : OPCODE6<0b101110>;
def OPCODE6_SCE        : OPCODE6<0b011110>;

def OPCODE6_TLBINV     : OPCODE6<0b000011>;
def OPCODE6_TLBINVF    : OPCODE6<0b000100>;

def OPCODE6_CACHEE     : OPCODE6<0b011011>;
def OPCODE6_PREFE      : OPCODE6<0b100011>;

def OPGROUP_COP0_TLB   : OPGROUP<0b010000>;

//===----------------------------------------------------------------------===//
//
// Encoding Formats
//
//===----------------------------------------------------------------------===//

class SPECIAL3_EVA_LOAD_STORE_FM<OPCODE6 Operation> : MipsEVAInst {
  bits<21> addr;
  bits<5> rt;
  bits<5> base = addr{20-16};
  bits<9> offset = addr{8-0};

  bits<32> Inst;

  let Inst{31-26} = OPGROUP_SPECIAL3.Value;
  let Inst{25-21} = base;
  let Inst{20-16} = rt;
  let Inst{15-7}  = offset;
  let Inst{6}     = 0;
  let Inst{5-0}   = Operation.Value;
}

class TLB_FM<OPCODE6 Operation> : MipsEVAInst {
  bits<32> Inst;

  let Inst{31-26} = OPGROUP_COP0_TLB.Value;
  let Inst{25} = 1;       // CO
  let Inst{24-6} = 0;
  let Inst{5-0} = Operation.Value;
}
