diff options
Diffstat (limited to 'lib/Target/PIC16/PIC16InstrFormats.td')
-rw-r--r-- | lib/Target/PIC16/PIC16InstrFormats.td | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/lib/Target/PIC16/PIC16InstrFormats.td b/lib/Target/PIC16/PIC16InstrFormats.td deleted file mode 100644 index e213ea8..0000000 --- a/lib/Target/PIC16/PIC16InstrFormats.td +++ /dev/null @@ -1,117 +0,0 @@ -//===- PIC16InstrFormats.td - PIC16 Instruction Formats-------*- tblgen -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//===----------------------------------------------------------------------===// -// Describe PIC16 instructions format -// -// All the possible PIC16 fields are: -// -// opcode - operation code. -// f - 7-bit register file address. -// d - 1-bit direction specifier -// k - 8/11 bit literals -// b - 3 bits bit num specifier -// -//===----------------------------------------------------------------------===// - -// Generic PIC16 Format -// PIC16 Instructions are 14-bit wide. - -// FIXME: Add Cooper Specific Formats if any. - -class PIC16Inst<dag outs, dag ins, string asmstr, list<dag> pattern> - : Instruction { - field bits<14> Inst; - - let Namespace = "PIC16"; - dag OutOperandList = outs; - dag InOperandList = ins; - let AsmString = asmstr; - let Pattern = pattern; -} - - -//===----------------------------------------------------------------------===// -// Byte Oriented instruction class in PIC16 : <|opcode|d|f|> -// opcode = 6 bits. -// d = direction = 1 bit. -// f = file register address = 7 bits. -//===----------------------------------------------------------------------===// - -class ByteFormat<bits<6> opcode, dag outs, dag ins, string asmstr, - list<dag> pattern> - :PIC16Inst<outs, ins, asmstr, pattern> { - bits<1> d; - bits<7> f; - - let Inst{13-8} = opcode; - - let Inst{7} = d; - let Inst{6-0} = f; -} - -//===----------------------------------------------------------------------===// -// Bit Oriented instruction class in PIC16 : <|opcode|b|f|> -// opcode = 4 bits. -// b = bit specifier = 3 bits. -// f = file register address = 7 bits. -//===----------------------------------------------------------------------===// - -class BitFormat<bits<4> opcode, dag outs, dag ins, string asmstr, - list<dag> pattern> - : PIC16Inst<outs, ins, asmstr, pattern> { - bits<3> b; - bits<7> f; - - let Inst{13-10} = opcode; - - let Inst{9-7} = b; - let Inst{6-0} = f; -} - -//===----------------------------------------------------------------------===// -// Literal Format instruction class in PIC16 : <|opcode|k|> -// opcode = 6 bits -// k = literal = 8 bits -//===----------------------------------------------------------------------===// - -class LiteralFormat<bits<6> opcode, dag outs, dag ins, string asmstr, - list<dag> pattern> - : PIC16Inst<outs, ins, asmstr, pattern> { - bits<8> k; - - let Inst{13-8} = opcode; - - let Inst{7-0} = k; -} - -//===----------------------------------------------------------------------===// -// Control Format instruction class in PIC16 : <|opcode|k|> -// opcode = 3 bits. -// k = jump address = 11 bits. -//===----------------------------------------------------------------------===// - -class ControlFormat<bits<3> opcode, dag outs, dag ins, string asmstr, - list<dag> pattern> - : PIC16Inst<outs, ins, asmstr, pattern> { - bits<11> k; - - let Inst{13-11} = opcode; - - let Inst{10-0} = k; -} - -//===----------------------------------------------------------------------===// -// Pseudo instruction class in PIC16 -//===----------------------------------------------------------------------===// - -class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern> - : PIC16Inst<outs, ins, asmstr, pattern> { - let Inst{13-6} = 0; -} |