mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	Summary: Reviewers: theraven, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6115 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221528 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===---- MipsABIInfo.cpp - Information about MIPS ABI's ------------------===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "MipsABIInfo.h"
 | 
						|
#include "MipsRegisterInfo.h"
 | 
						|
 | 
						|
using namespace llvm;
 | 
						|
 | 
						|
namespace {
 | 
						|
static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};
 | 
						|
 | 
						|
static const MCPhysReg Mips64IntRegs[8] = {
 | 
						|
    Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,
 | 
						|
    Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};
 | 
						|
}
 | 
						|
 | 
						|
const ArrayRef<MCPhysReg> MipsABIInfo::GetByValArgRegs() const {
 | 
						|
  if (IsO32())
 | 
						|
    return makeArrayRef(O32IntRegs);
 | 
						|
  if (IsN32() || IsN64())
 | 
						|
    return makeArrayRef(Mips64IntRegs);
 | 
						|
  llvm_unreachable("Unhandled ABI");
 | 
						|
}
 | 
						|
 | 
						|
const ArrayRef<MCPhysReg> MipsABIInfo::GetVarArgRegs() const {
 | 
						|
  if (IsO32())
 | 
						|
    return makeArrayRef(O32IntRegs);
 | 
						|
  if (IsN32() || IsN64())
 | 
						|
    return makeArrayRef(Mips64IntRegs);
 | 
						|
  llvm_unreachable("Unhandled ABI");
 | 
						|
}
 | 
						|
 | 
						|
unsigned MipsABIInfo::GetCalleeAllocdArgSizeInBytes(CallingConv::ID CC) const {
 | 
						|
  if (IsO32())
 | 
						|
    return CC != CallingConv::Fast ? 16 : 0;
 | 
						|
  if (IsN32() || IsN64() || IsEABI())
 | 
						|
    return 0;
 | 
						|
  llvm_unreachable("Unhandled ABI");
 | 
						|
}
 |