New feature: add support for target intrinsics being defined in the
[oota-llvm.git] / lib / Target / PIC16 / PIC16RegisterInfo.td
1 //===- PIC16RegisterInfo.td - PIC16 Register defs ------------*- tblgen -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source 
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 //===----------------------------------------------------------------------===//
11 //  Declarations that describe the PIC16 register file
12 //===----------------------------------------------------------------------===//
13
14 class PIC16Reg<string n> : Register<n> {
15   let Namespace = "PIC16";
16 }
17
18 // PIC16 Registers.
19 def W   : PIC16Reg<"W">;
20 def FSR0   : PIC16Reg<"FSR0">;
21 def FSR1   : PIC16Reg<"FSR1">;
22 def BS     : PIC16Reg<"BS">;
23
24 def STATUS : PIC16Reg<"STATUS">;
25
26 // PIC16 Register classes.
27 def GPR    : RegisterClass<"PIC16", [i8], 8, [W]>;
28 def FSR16  : RegisterClass<"PIC16", [i16], 8, [FSR0, FSR1]>;
29 def BSR  : RegisterClass<"PIC16", [i8], 8, [BS]>;
30
31 def STATUSR: RegisterClass<"PIC16", [i8], 8, [STATUS]>;
32