//===- PPC64RegisterInfo.td - The PowerPC64 Register File --*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by the LLVM research group and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // //===----------------------------------------------------------------------===// include "PowerPCRegisterInfo.td" /// Register classes // Allocate volatiles first // then nonvolatiles in reverse order since stmw/lmw save from rN to r31 def GPRC : RegisterClass { let Methods = [{ iterator allocation_order_begin(MachineFunction &MF) const { return begin() + ((TargetAIX == PPCTarget) ? 1 : 0); } iterator allocation_order_end(MachineFunction &MF) const { if (hasFP(MF)) return end()-4; else return end()-3; } }]; } def FPRC : RegisterClass; def CRRC : RegisterClass;