//===- PIC16RegisterInfo.td - PIC16 Register defs ------------*- tblgen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source 
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

//===----------------------------------------------------------------------===//
//  Declarations that describe the PIC16 register file
//===----------------------------------------------------------------------===//

class PIC16Reg<string n> : Register<n> {
  let Namespace = "PIC16";
}

// PIC16 Registers.
def W   : PIC16Reg<"W">;
def FSR0   : PIC16Reg<"FSR0">;
def FSR1   : PIC16Reg<"FSR1">;
def BS     : PIC16Reg<"BS">;
def PCLATH : PIC16Reg<"PCLATH">;

def STATUS : PIC16Reg<"STATUS">;

// PIC16 Register classes.
def GPR     : RegisterClass<"PIC16", [i8],  8, [W]>;
def FSR16   : RegisterClass<"PIC16", [i16], 8, [FSR0, FSR1]>;
def BSR     : RegisterClass<"PIC16", [i8],  8, [BS]>;
def PCLATHR : RegisterClass<"PIC16", [i8],  8, [PCLATH]>;
def STATUSR : RegisterClass<"PIC16", [i8],  8, [STATUS]>;

