mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
Remove dead header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227884 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dd0c5bb156
commit
c0663bab1a
@ -1,149 +0,0 @@
|
||||
//===-- HexagonVarargsCallingConvention.h - Calling Conventions -*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file declares the functions that assign locations to outgoing function
|
||||
// arguments. Adapted from the target independent version but this handles
|
||||
// calls to varargs functions
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
static bool RetCC_Hexagon32_VarArgs(unsigned ValNo, EVT ValVT,
|
||||
EVT LocVT, CCValAssign::LocInfo LocInfo,
|
||||
ISD::ArgFlagsTy ArgFlags,
|
||||
Hexagon_CCState &State,
|
||||
int NonVarArgsParams,
|
||||
int CurrentParam,
|
||||
bool ForceMem);
|
||||
|
||||
|
||||
static bool CC_Hexagon32_VarArgs(unsigned ValNo, EVT ValVT,
|
||||
EVT LocVT, CCValAssign::LocInfo LocInfo,
|
||||
ISD::ArgFlagsTy ArgFlags,
|
||||
Hexagon_CCState &State,
|
||||
int NonVarArgsParams,
|
||||
int CurrentParam,
|
||||
bool ForceMem) {
|
||||
unsigned ByValSize = 0;
|
||||
if (ArgFlags.isByVal() &&
|
||||
((ByValSize = ArgFlags.getByValSize()) >
|
||||
(MVT(MVT::i64).getSizeInBits() / 8))) {
|
||||
ForceMem = true;
|
||||
}
|
||||
|
||||
|
||||
// Only assign registers for named (non-varargs) arguments
|
||||
if ( !ForceMem && ((NonVarArgsParams == -1) || (CurrentParam <=
|
||||
NonVarArgsParams))) {
|
||||
|
||||
if (LocVT == MVT::i32 ||
|
||||
LocVT == MVT::i16 ||
|
||||
LocVT == MVT::i8 ||
|
||||
LocVT == MVT::f32) {
|
||||
static const unsigned RegList1[] = {
|
||||
Hexagon::R0, Hexagon::R1, Hexagon::R2, Hexagon::R3, Hexagon::R4,
|
||||
Hexagon::R5
|
||||
};
|
||||
if (unsigned Reg = State.AllocateReg(RegList1, 6)) {
|
||||
State.addLoc(CCValAssign::getReg(ValNo, ValVT.getSimpleVT(), Reg,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (LocVT == MVT::i64 ||
|
||||
LocVT == MVT::f64) {
|
||||
static const unsigned RegList2[] = {
|
||||
Hexagon::D0, Hexagon::D1, Hexagon::D2
|
||||
};
|
||||
if (unsigned Reg = State.AllocateReg(RegList2, 3)) {
|
||||
State.addLoc(CCValAssign::getReg(ValNo, ValVT.getSimpleVT(), Reg,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const Type* ArgTy = LocVT.getTypeForEVT(State.getContext());
|
||||
unsigned Alignment = State.getTarget()
|
||||
.getSubtargetImpl()
|
||||
->getDataLayout()
|
||||
->getABITypeAlignment(ArgTy);
|
||||
unsigned Size =
|
||||
State.getTarget().getSubtargetImpl()->getDataLayout()->getTypeSizeInBits(
|
||||
ArgTy) /
|
||||
8;
|
||||
|
||||
// If it's passed by value, then we need the size of the aggregate not of
|
||||
// the pointer.
|
||||
if (ArgFlags.isByVal()) {
|
||||
Size = ByValSize;
|
||||
|
||||
// Hexagon_TODO: Get the alignment of the contained type here.
|
||||
Alignment = 8;
|
||||
}
|
||||
|
||||
unsigned Offset3 = State.AllocateStack(Size, Alignment);
|
||||
State.addLoc(CCValAssign::getMem(ValNo, ValVT.getSimpleVT(), Offset3,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static bool RetCC_Hexagon32_VarArgs(unsigned ValNo, EVT ValVT,
|
||||
EVT LocVT, CCValAssign::LocInfo LocInfo,
|
||||
ISD::ArgFlagsTy ArgFlags,
|
||||
Hexagon_CCState &State,
|
||||
int NonVarArgsParams,
|
||||
int CurrentParam,
|
||||
bool ForceMem) {
|
||||
|
||||
if (LocVT == MVT::i32 ||
|
||||
LocVT == MVT::f32) {
|
||||
static const unsigned RegList1[] = {
|
||||
Hexagon::R0, Hexagon::R1, Hexagon::R2, Hexagon::R3, Hexagon::R4,
|
||||
Hexagon::R5
|
||||
};
|
||||
if (unsigned Reg = State.AllocateReg(RegList1, 6)) {
|
||||
State.addLoc(CCValAssign::getReg(ValNo, ValVT.getSimpleVT(), Reg,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (LocVT == MVT::i64 ||
|
||||
LocVT == MVT::f64) {
|
||||
static const unsigned RegList2[] = {
|
||||
Hexagon::D0, Hexagon::D1, Hexagon::D2
|
||||
};
|
||||
if (unsigned Reg = State.AllocateReg(RegList2, 3)) {
|
||||
State.addLoc(CCValAssign::getReg(ValNo, ValVT.getSimpleVT(), Reg,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const Type* ArgTy = LocVT.getTypeForEVT(State.getContext());
|
||||
unsigned Alignment = State.getTarget()
|
||||
.getSubtargetImpl()
|
||||
->getDataLayout()
|
||||
->getABITypeAlignment(ArgTy);
|
||||
unsigned Size =
|
||||
State.getTarget().getSubtargetImpl()->getDataLayout()->getTypeSizeInBits(
|
||||
ArgTy) /
|
||||
8;
|
||||
|
||||
unsigned Offset3 = State.AllocateStack(Size, Alignment);
|
||||
State.addLoc(CCValAssign::getMem(ValNo, ValVT.getSimpleVT(), Offset3,
|
||||
LocVT.getSimpleVT(), LocInfo));
|
||||
return false;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user