1*9880d681SAndroid Build Coastguard Worker//===-- BPFRegisterInfo.td - BPF Register defs -------------*- tablegen -*-===// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 11*9880d681SAndroid Build Coastguard Worker// Declarations that describe the BPF register file 12*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker// Registers are identified with 4-bit ID numbers. 15*9880d681SAndroid Build Coastguard Worker// Ri - 64-bit integer registers 16*9880d681SAndroid Build Coastguard Workerclass Ri<bits<16> Enc, string n> : Register<n> { 17*9880d681SAndroid Build Coastguard Worker let Namespace = "BPF"; 18*9880d681SAndroid Build Coastguard Worker let HWEncoding = Enc; 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker// Integer registers 22*9880d681SAndroid Build Coastguard Workerdef R0 : Ri< 0, "r0">, DwarfRegNum<[0]>; 23*9880d681SAndroid Build Coastguard Workerdef R1 : Ri< 1, "r1">, DwarfRegNum<[1]>; 24*9880d681SAndroid Build Coastguard Workerdef R2 : Ri< 2, "r2">, DwarfRegNum<[2]>; 25*9880d681SAndroid Build Coastguard Workerdef R3 : Ri< 3, "r3">, DwarfRegNum<[3]>; 26*9880d681SAndroid Build Coastguard Workerdef R4 : Ri< 4, "r4">, DwarfRegNum<[4]>; 27*9880d681SAndroid Build Coastguard Workerdef R5 : Ri< 5, "r5">, DwarfRegNum<[5]>; 28*9880d681SAndroid Build Coastguard Workerdef R6 : Ri< 6, "r6">, DwarfRegNum<[6]>; 29*9880d681SAndroid Build Coastguard Workerdef R7 : Ri< 7, "r7">, DwarfRegNum<[7]>; 30*9880d681SAndroid Build Coastguard Workerdef R8 : Ri< 8, "r8">, DwarfRegNum<[8]>; 31*9880d681SAndroid Build Coastguard Workerdef R9 : Ri< 9, "r9">, DwarfRegNum<[9]>; 32*9880d681SAndroid Build Coastguard Workerdef R10 : Ri<10, "r10">, DwarfRegNum<[10]>; 33*9880d681SAndroid Build Coastguard Workerdef R11 : Ri<11, "r11">, DwarfRegNum<[11]>; 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker// Register classes. 36*9880d681SAndroid Build Coastguard Workerdef GPR : RegisterClass<"BPF", [i64], 64, (add R1, R2, R3, R4, R5, 37*9880d681SAndroid Build Coastguard Worker R6, R7, R8, R9, // callee saved 38*9880d681SAndroid Build Coastguard Worker R0, // return value 39*9880d681SAndroid Build Coastguard Worker R11, // stack ptr 40*9880d681SAndroid Build Coastguard Worker R10 // frame ptr 41*9880d681SAndroid Build Coastguard Worker )>; 42