1 //===- PIC16RegisterInfo.td - PIC16 Register defs ------------*- tblgen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
11 // Declarations that describe the PIC16 register file
12 //===----------------------------------------------------------------------===//
14 class PIC16Reg<string n> : Register<n> {
15 let Namespace = "PIC16";
19 def W : PIC16Reg<"W">;
20 def FSR0 : PIC16Reg<"FSR0">;
21 def FSR1 : PIC16Reg<"FSR1">;
22 def BS : PIC16Reg<"BS">;
23 def PCLATH : PIC16Reg<"PCLATH">;
25 def STATUS : PIC16Reg<"STATUS">;
27 // PIC16 Register classes.
28 def GPR : RegisterClass<"PIC16", [i8], 8, [W]>;
29 def FSR16 : RegisterClass<"PIC16", [i16], 8, [FSR0, FSR1]>;
30 def BSR : RegisterClass<"PIC16", [i8], 8, [BS]>;
31 def PCLATHR : RegisterClass<"PIC16", [i8], 8, [PCLATH]>;
32 def STATUSR : RegisterClass<"PIC16", [i8], 8, [STATUS]>;