mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-03 15:36:21 +00:00
[mips] Remove android calling convention.
This calling convention was added just to handle functions which return vector of floats. The fix committed in r165585 solves the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176530 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1e3e869899
commit
5ffd24c49f
@ -44,8 +44,6 @@ def FeatureN64 : SubtargetFeature<"n64", "MipsABI", "N64",
|
||||
"Enable n64 ABI">;
|
||||
def FeatureEABI : SubtargetFeature<"eabi", "MipsABI", "EABI",
|
||||
"Enable eabi ABI">;
|
||||
def FeatureAndroid : SubtargetFeature<"android", "IsAndroid", "true",
|
||||
"Target is android">;
|
||||
def FeatureVFPU : SubtargetFeature<"vfpu", "HasVFPU",
|
||||
"true", "Enable vector FPU instructions.">;
|
||||
def FeatureSEInReg : SubtargetFeature<"seinreg", "HasSEInReg", "true",
|
||||
|
@ -144,17 +144,6 @@ def RetCC_MipsEABI : CallingConv<[
|
||||
CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", CCAssignToReg<[D0]>>>
|
||||
]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Mips Android Calling Convention
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def RetCC_MipsAndroid : CallingConv<[
|
||||
// f32 are returned in registers F0, F2, F1, F3
|
||||
CCIfType<[f32], CCAssignToReg<[F0, F2, F1, F3]>>,
|
||||
|
||||
CCDelegateTo<RetCC_MipsO32>
|
||||
]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Mips FastCC Calling Convention
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -215,7 +204,6 @@ def RetCC_Mips : CallingConv<[
|
||||
CCIfSubtarget<"isABI_EABI()", CCDelegateTo<RetCC_MipsEABI>>,
|
||||
CCIfSubtarget<"isABI_N32()", CCDelegateTo<RetCC_MipsN>>,
|
||||
CCIfSubtarget<"isABI_N64()", CCDelegateTo<RetCC_MipsN>>,
|
||||
CCIfSubtarget<"isAndroid()", CCDelegateTo<RetCC_MipsAndroid>>,
|
||||
CCDelegateTo<RetCC_MipsO32>
|
||||
]>;
|
||||
|
||||
|
@ -33,7 +33,7 @@ MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &CPU,
|
||||
IsLinux(true), HasSEInReg(false), HasCondMov(false), HasSwap(false),
|
||||
HasBitCount(false), HasFPIdx(false),
|
||||
InMips16Mode(false), InMicroMipsMode(false), HasDSP(false), HasDSPR2(false),
|
||||
IsAndroid(false), RM(_RM)
|
||||
RM(_RM)
|
||||
{
|
||||
std::string CPUName = CPU;
|
||||
if (CPUName.empty())
|
||||
|
@ -95,9 +95,6 @@ protected:
|
||||
// HasDSP, HasDSPR2 -- supports DSP ASE.
|
||||
bool HasDSP, HasDSPR2;
|
||||
|
||||
// IsAndroid -- target is android
|
||||
bool IsAndroid;
|
||||
|
||||
InstrItineraryData InstrItins;
|
||||
|
||||
// The instance to the register info section object
|
||||
@ -144,7 +141,6 @@ public:
|
||||
bool inMicroMipsMode() const { return InMicroMipsMode; }
|
||||
bool hasDSP() const { return HasDSP; }
|
||||
bool hasDSPR2() const { return HasDSPR2; }
|
||||
bool isAndroid() const { return IsAndroid; }
|
||||
bool isLinux() const { return IsLinux; }
|
||||
bool useSmallSection() const { return UseSmallSection; }
|
||||
|
||||
|
@ -1,12 +0,0 @@
|
||||
; RUN: llc -march=mipsel -mattr=+android < %s | FileCheck %s
|
||||
|
||||
define <4 x float> @retvec4() nounwind readnone {
|
||||
entry:
|
||||
; CHECK: lwc1 $f0
|
||||
; CHECK: lwc1 $f2
|
||||
; CHECK: lwc1 $f1
|
||||
; CHECK: lwc1 $f3
|
||||
|
||||
ret <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user