aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PIC16/PIC16RegisterInfo.td
blob: 938974f4d48ec2cc11b6f211ac8986fa0ea28d75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//===- 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 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 STATUSR: RegisterClass<"PIC16", [i8], 8, [STATUS]>;