003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/Target/Lanai
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
Target
/
Lanai
/
📁
..
📁
AsmParser
📁
Disassembler
📄
Lanai.h
(1.4 KB)
📄
Lanai.td
(1.71 KB)
📄
LanaiAluCode.h
(3.55 KB)
📄
LanaiAsmPrinter.cpp
(8.15 KB)
📄
LanaiCallingConv.td
(1.76 KB)
📄
LanaiCondCode.h
(2.9 KB)
📄
LanaiDelaySlotFiller.cpp
(8.89 KB)
📄
LanaiFrameLowering.cpp
(8 KB)
📄
LanaiFrameLowering.h
(1.91 KB)
📄
LanaiISelDAGToDAG.cpp
(11.67 KB)
📄
LanaiISelLowering.cpp
(55.19 KB)
📄
LanaiISelLowering.h
(5.99 KB)
📄
LanaiInstrFormats.td
(20.83 KB)
📄
LanaiInstrInfo.cpp
(27.4 KB)
📄
LanaiInstrInfo.h
(7.02 KB)
📄
LanaiInstrInfo.td
(30.89 KB)
📄
LanaiMCInstLower.cpp
(4.52 KB)
📄
LanaiMCInstLower.h
(1.43 KB)
📄
LanaiMachineFunctionInfo.cpp
(469 B)
📄
LanaiMachineFunctionInfo.h
(1.95 KB)
📄
LanaiMemAluCombiner.cpp
(13.52 KB)
📄
LanaiRegisterInfo.cpp
(8.54 KB)
📄
LanaiRegisterInfo.h
(1.78 KB)
📄
LanaiRegisterInfo.td
(2.2 KB)
📄
LanaiSchedule.td
(2.25 KB)
📄
LanaiSelectionDAGInfo.cpp
(1.1 KB)
📄
LanaiSelectionDAGInfo.h
(1.32 KB)
📄
LanaiSubtarget.cpp
(1.66 KB)
📄
LanaiSubtarget.h
(2.44 KB)
📄
LanaiTargetMachine.cpp
(3.92 KB)
📄
LanaiTargetMachine.h
(1.9 KB)
📄
LanaiTargetObjectFile.cpp
(4.8 KB)
📄
LanaiTargetObjectFile.h
(1.78 KB)
📄
LanaiTargetTransformInfo.h
(4.2 KB)
📁
MCTargetDesc
📁
TargetInfo
Editing: LanaiRegisterInfo.td
//===- LanaiRegisterInfo.td - Lanai Register defs ------------*- tablegen -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Declarations that describe the Lanai register file //===----------------------------------------------------------------------===// // Registers are identified with 5-bit ID numbers. class LanaiReg<bits<5> num, string n, list<Register> subregs = [], list<string> altNames = []> : Register<n, altNames> { field bits<5> Num; let Num = num; let Namespace = "Lanai"; let SubRegs = subregs; } let Namespace = "Lanai" in { def sub_32 : SubRegIndex<32>; } // Integer registers foreach i = 0-31 in { def R#i : LanaiReg<i, "r"#i>, DwarfRegNum<[i]>; } // Register aliases let SubRegIndices = [sub_32] in { def PC : LanaiReg< 2, "pc", [R2]>, DwarfRegAlias<R2>; def SP : LanaiReg< 4, "sp", [R4]>, DwarfRegAlias<R4>; def FP : LanaiReg< 5, "fp", [R5]>, DwarfRegAlias<R5>; def RV : LanaiReg< 8, "rv", [R8]>, DwarfRegAlias<R8>; def RR1 : LanaiReg<10, "rr1", [R10]>, DwarfRegAlias<R10>; def RR2 : LanaiReg<11, "rr2", [R11]>, DwarfRegAlias<R11>; def RCA : LanaiReg<15, "rca", [R15]>, DwarfRegAlias<R15>; } // Define a status register to capture the dependencies between the set flag // and setcc instructions def SR : LanaiReg< 0, "sw">; // Register classes. def GPR : RegisterClass<"Lanai", [i32], 32, (add R3, R9, R12, R13, R14, R16, R17, (sequence "R%i", 20, 31), R6, R7, R18, R19, // registers for passing arguments R15, RCA, // register for constant addresses R10, RR1, R11, RR2, // programmer controlled registers R8, RV, // return value R5, FP, // frame pointer R4, SP, // stack pointer R2, PC, // program counter R1, // all 1s (0xffffffff) R0 // constant 0 )>; // Condition code register class def CCR : RegisterClass<"Lanai", [i32], 32, (add SR)> { let CopyCost = -1; // Don't allow copying of status registers let isAllocatable = 0; }
Upload File
Create Folder