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

// A generic AVR instruction.
class AVRInst<dag outs, dag ins, string asmstr, list<dag> pattern> : Instruction
{
  let Namespace = "AVR";

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

  field bits<32> SoftFail = 0;
}

/// A 16-bit AVR instruction.
class AVRInst16<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst<outs, ins, asmstr, pattern>
{
  field bits<16> Inst;

  let Size = 2;
}

/// a 32-bit AVR instruction.
class AVRInst32<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst<outs, ins, asmstr, pattern>
{
  field bits<32> Inst;

  let Size = 4;
}

// A class for pseudo instructions.
// Psuedo instructions are not real AVR instructions. The DAG stores
// psuedo instructions which are replaced by real AVR instructions by
// AVRExpandPseudoInsts.cpp.
//
// For example, the ADDW (add wide, as in add 16 bit values) instruction
// is defined as a pseudo instruction. In AVRExpandPseudoInsts.cpp,
// the instruction is then replaced by two add instructions - one for each byte.
class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  let Pattern = pattern;

  let isPseudo = 1;
  let isCodeGenOnly = 1;
}

//===----------------------------------------------------------------------===//
// Register / register instruction: <|opcode|ffrd|dddd|rrrr|>
// opcode = 4 bits.
// f = secondary opcode = 2 bits
// d = destination = 5 bits
// r = source = 5 bits
// (Accepts all registers)
//===----------------------------------------------------------------------===//
class FRdRr<bits<4> opcode, bits<2> f, dag outs, dag ins, string asmstr,
            list<dag> pattern> : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> rd;
  bits<5> rr;

  let Inst{15-12} = opcode;
  let Inst{11-10} = f;
  let Inst{9} = rr{4};
  let Inst{8-4} = rd;
  let Inst{3-0} = rr{3-0};
}

class FTST<bits<4> opcode, bits<2> f, dag outs, dag ins, string asmstr,
            list<dag> pattern> : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> rd;

  let Inst{15-12} = opcode;
  let Inst{11-10} = f;
  let Inst{9} = rd{4};
  let Inst{8-4} = rd;
  let Inst{3-0} = rd{3-0};
}

//===----------------------------------------------------------------------===//
// Instruction of the format `<mnemonic> Z, Rd`
// <|1001|001r|rrrr|0ttt>
//===----------------------------------------------------------------------===//
class FZRd<bits<3> t, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> rd;

  let Inst{15-12} = 0b1001;

  let Inst{11-9} = 0b001;
  let Inst{8} = rd{4};

  let Inst{7-4} = rd{3-0};

  let Inst{3} = 0;
  let Inst{2-0} = t;
}

//===----------------------------------------------------------------------===//
// Register / immediate8 instruction: <|opcode|KKKK|dddd|KKKK|>
// opcode = 4 bits.
// K = constant data = 8 bits
// d = destination = 4 bits
// (Only accepts r16-r31)
//===----------------------------------------------------------------------===//
class FRdK<bits<4> opcode, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<4> rd;
  bits<8> k;

  let Inst{15-12} = opcode;
  let Inst{11-8} = k{7-4};
  let Inst{7-4} = rd{3-0};
  let Inst{3-0} = k{3-0};

  let isAsCheapAsAMove = 1;
}

//===----------------------------------------------------------------------===//
// Register instruction: <|opcode|fffd|dddd|ffff|>
// opcode = 4 bits.
// f = secondary opcode = 7 bits
// d = destination = 5 bits
// (Accepts all registers)
//===----------------------------------------------------------------------===//
class FRd<bits<4> opcode, bits<7> f, dag outs, dag ins, string asmstr,
          list<dag> pattern> : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> d;

  let Inst{15-12} = opcode;
  let Inst{11-9} = f{6-4};
  let Inst{8-4} = d;
  let Inst{3-0} = f{3-0};
}

//===----------------------------------------------------------------------===//
// [STD/LDD] P+q, Rr special encoding: <|10q0|qqtr|rrrr|pqqq>
// t = type (1 for STD, 0 for LDD)
// q = displacement (6 bits)
// r = register (5 bits)
// p = pointer register (1 bit) [1 for Y, 0 for Z]
//===----------------------------------------------------------------------===//
class FSTDLDD<bit type, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<7> memri;
  bits<5> reg; // the GP register

  let Inst{15-14} = 0b10;
  let Inst{13} = memri{5};
  let Inst{12} = 0;

  let Inst{11-10} = memri{4-3};
  let Inst{9} = type;
  let Inst{8} = reg{4};

  let Inst{7-4} = reg{3-0};

  let Inst{3} = memri{6};
  let Inst{2-0} = memri{2-0};
}

//===---------------------------------------------------------------------===//
// An ST/LD instruction.
// <|100i|00tr|rrrr|ppaa|>
// t = type (1 for store, 0 for load)
// a = regular/postinc/predec (reg = 0b00, postinc = 0b01, predec = 0b10)
// p = pointer register
// r = src/dst register
//
// Note that the bit labelled 'i' above does not follow a simple pattern,
// so there exists a post encoder method to set it manually.
//===---------------------------------------------------------------------===//
class FSTLD<bit type, bits<2> mode, dag outs, dag ins,
            string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<2> ptrreg;
  bits<5> reg;

  let Inst{15-13} = 0b100;
  // This bit varies depending on the arguments and the mode.
  // We have a post encoder method to set this bit manually.
  let Inst{12} = 0;

  let Inst{11-10} = 0b00;
  let Inst{9} = type;
  let Inst{8} = reg{4};

  let Inst{7-4} = reg{3-0};

  let Inst{3-2} = ptrreg{1-0};
  let Inst{1-0} = mode{1-0};

  let PostEncoderMethod = "loadStorePostEncoder";
}

//===---------------------------------------------------------------------===//
// Special format for the LPM/ELPM instructions
// [E]LPM Rd, Z[+]
// <|1001|000d|dddd|01ep>
// d = destination register
// e = is elpm
// p = is postincrement
//===---------------------------------------------------------------------===//
class FLPMX<bit e, bit p, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
   bits<5> reg;

   let Inst{15-12} = 0b1001;

   let Inst{11-9} = 0b000;
   let Inst{8} = reg{4};

   let Inst{7-4} = reg{3-0};

   let Inst{3-2} = 0b01;
   let Inst{1} = e;
   let Inst{0} = p;
}

//===----------------------------------------------------------------------===//
// MOVWRdRr special encoding: <|0000|0001|dddd|rrrr|>
// d = destination = 4 bits
// r = source = 4 bits
// (Only accepts even registers)
//===----------------------------------------------------------------------===//
class FMOVWRdRr<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> d;
  bits<5> r;

  let Inst{15-8} = 0b00000001;
  let Inst{7-4} = d{4-1};
  let Inst{3-0} = r{4-1};
}

//===----------------------------------------------------------------------===//
// MULSrr special encoding: <|0000|0010|dddd|rrrr|>
// d = multiplicand = 4 bits
// r = multiplier = 4 bits
// (Only accepts r16-r31)
//===----------------------------------------------------------------------===//
class FMUL2RdRr<bit f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> rd;              // accept 5 bits but only encode the lower 4
  bits<5> rr;              // accept 5 bits but only encode the lower 4

  let Inst{15-9} = 0b0000001;
  let Inst{8} = f;
  let Inst{7-4} = rd{3-0};
  let Inst{3-0} = rr{3-0};
}

// Special encoding for the FMUL family of instructions.
//
// <0000|0011|fddd|frrr|>
//
// ff = 0b01 for FMUL
//      0b10 for FMULS
//      0b11 for FMULSU
//
// ddd = destination register
// rrr = source register
class FFMULRdRr<bits<2> f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<3> rd;
  bits<3> rr;

  let Inst{15-8} = 0b00000011;
  let Inst{7} = f{1};
  let Inst{6-4} = rd;
  let Inst{3} = f{0};
  let Inst{2-0} = rr;
}


//===----------------------------------------------------------------------===//
// Arithmetic word instructions (ADIW / SBIW): <|1001|011f|kkdd|kkkk|>
// f = secondary opcode = 1 bit
// k = constant data = 6 bits
// d = destination = 4 bits
// (Only accepts r25:24 r27:26 r29:28 r31:30)
//===----------------------------------------------------------------------===//
class FWRdK<bit f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> dst;              // accept 5 bits but only encode bits 1 and 2
  bits<6> k;

  let Inst{15-9} = 0b1001011;
  let Inst{8} = f;
  let Inst{7-6} = k{5-4};
  let Inst{5-4} = dst{2-1};
  let Inst{3-0} = k{3-0};
}

//===----------------------------------------------------------------------===//
// In I/O instruction: <|1011|0AAd|dddd|AAAA|>
// A = I/O location address = 6 bits
// d = destination = 5 bits
// (Accepts all registers)
//===----------------------------------------------------------------------===//
class FIORdA<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> d;
  bits<6> A;

  let Inst{15-11} = 0b10110;
  let Inst{10-9} = A{5-4};
  let Inst{8-4} = d;
  let Inst{3-0} = A{3-0};
}

//===----------------------------------------------------------------------===//
// Out I/O instruction: <|1011|1AAr|rrrr|AAAA|>
// A = I/O location address = 6 bits
// d = destination = 5 bits
// (Accepts all registers)
//===----------------------------------------------------------------------===//
class FIOARr<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<6> A;
  bits<5> r;

  let Inst{15-11} = 0b10111;
  let Inst{10-9} = A{5-4};
  let Inst{8-4} = r;
  let Inst{3-0} = A{3-0};
}

//===----------------------------------------------------------------------===//
// I/O bit instruction.
// <|1001|10tt|AAAA|Abbb>
// t = type (1 for SBI, 0 for CBI)
// A = I/O location address (5 bits)
// b = bit number
//===----------------------------------------------------------------------===//
class FIOBIT<bits<2> t, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> A;
  bits<3> b;

  let Inst{15-12} = 0b1001;

  let Inst{11-10} = 0b10;
  let Inst{9-8} = t;

  let Inst{7-4} = A{4-1};

  let Inst{3} = A{0};
  let Inst{2-0} = b{2-0};
}

//===----------------------------------------------------------------------===//
// BST/BLD instruction.
// <|1111|1ttd|dddd|0bbb>
// t = type (1 for BST, 0 for BLD)
// d = destination register
// b = bit
//===----------------------------------------------------------------------===//
class FRdB<bits<2> t, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<5> rd;
  bits<3> b;

  let Inst{15-12} = 0b1111;

  let Inst{11} = 0b1;
  let Inst{10-9} = t;
  let Inst{8} = rd{4};

  let Inst{7-4} = rd{3-0};

  let Inst{3} = 0;
  let Inst{2-0} = b;
}

// Special encoding for the `DES K` instruction.
//
// <|1001|0100|KKKK|1011>
//
// KKKK = 4 bit immediate
class FDES<dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<4> k;

  let Inst{15-12} = 0b1001;

  let Inst{11-8} = 0b0100;

  let Inst{7-4} = k;

  let Inst{3-0} = 0b1011;
}

//===----------------------------------------------------------------------===//
// Conditional Branching instructions: <|1111|0fkk|kkkk|ksss|>
// f = secondary opcode = 1 bit
// k = constant address = 7 bits
// s = bit in status register = 3 bits
//===----------------------------------------------------------------------===//
class FBRsk<bit f, bits<3> s, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<7> k;

  let Inst{15-11} = 0b11110;
  let Inst{10} = f;
  let Inst{9-3} = k;
  let Inst{2-0} = s;
}

//===----------------------------------------------------------------------===//
// Special, opcode only instructions: <|opcode|>
//===----------------------------------------------------------------------===//

class F16<bits<16> opcode, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  let Inst = opcode;
}

class F32<bits<32> opcode, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst32<outs, ins, asmstr, pattern>
{
  let Inst = opcode;
}

//===----------------------------------------------------------------------===//
// Branching instructions with immediate12: <|110f|kkkk|kkkk|kkkk|>
// f = secondary opcode = 1 bit
// k = constant address = 12 bits
//===----------------------------------------------------------------------===//
class FBRk<bit f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<12> k;

  let Inst{15-13} = 0b110;
  let Inst{12} = f;
  let Inst{11-0} = k;
}

//===----------------------------------------------------------------------===//
// 32 bits branching instructions: <|1001|010k|kkkk|fffk|kkkk|kkkk|kkkk|kkkk|>
// f = secondary opcode = 3 bits
// k = constant address = 22 bits
//===----------------------------------------------------------------------===//
class F32BRk<bits<3> f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst32<outs, ins, asmstr, pattern>
{
  bits<22> k;

  let Inst{31-25} = 0b1001010;
  let Inst{24-20} = k{21-17};
  let Inst{19-17} = f;
  let Inst{16-0} = k{16-0};
}

//===----------------------------------------------------------------------===//
// 32 bits direct mem instructions: <|1001|00fd|dddd|0000|kkkk|kkkk|kkkk|kkkk|> 
// f = secondary opcode = 1 bit
// d = destination = 5 bits
// k = constant address = 16 bits
// (Accepts all registers)
//===----------------------------------------------------------------------===//
class F32DM<bit f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst32<outs, ins, asmstr, pattern>
{
  bits<5> rd;
  bits<16> k;

  let Inst{31-28} = 0b1001;

  let Inst{27-26} = 0b00;
  let Inst{25} = f;
  let Inst{24} = rd{4};

  let Inst{23-20} = rd{3-0};

  let Inst{19-16} = 0b0000;

  let Inst{15-0} = k;
}

// <|1001|0100|bfff|1000>
class FS<bit b, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<3> s;

  let Inst{15-12} = 0b1001;

  let Inst{11-8} = 0b0100;

  let Inst{7} = b;
  let Inst{6-4} = s;

  let Inst{3-0} = 0b1000;
}

// Set/clr bit in status flag instructions/
// <BRBS|BRBC> s, k
// ---------------------
// <|1111|0fkk|kkkk|ksss>
class FSK<bit f, dag outs, dag ins, string asmstr, list<dag> pattern>
  : AVRInst16<outs, ins, asmstr, pattern>
{
  bits<7> k;
  bits<3> s;

  let Inst{15-12} = 0b1111;

  let Inst{11} = 0;
  let Inst{10} = f;
  let Inst{9-8} = k{6-5};

  let Inst{7-4} = k{4-1};

  let Inst{3} = k{0};
  let Inst{2-0} = s;
}

class ExtensionPseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : Pseudo<outs, ins, asmstr, pattern>
{
  let Defs = [SREG];
}

class StorePseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : Pseudo<outs, ins, asmstr, pattern>
{
  let Defs = [SP];
}

class SelectPseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : Pseudo<outs, ins, asmstr, pattern>
{
  let usesCustomInserter = 1;

  let Uses = [SREG];
}

class ShiftPseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
  : Pseudo<outs, ins, asmstr, pattern>
{
  let usesCustomInserter = 1;

  let Defs = [SREG];
}

