mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 22:23:10 +00:00
[mips] Move ABI-dependent register selections to MipsABIInfo. NFC.
Summary: For example, a common idiom was 'isN64 ? Mips::SP_64 : Mips::SP'. This has been moved to MipsABIInfo and replaced with 'ABI.GetStackPtr()'. There are others that should also be moved. This patch sticks to the ones that are obviously non-functional. The others have minor mistakes that need fixing at the same time, mostly involving checks for 64-bit GPR's instead of checks for 64-bit pointers. Reviewers: tomatabacu Reviewed By: tomatabacu Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8972 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235173 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -90,3 +90,35 @@ MipsABIInfo MipsABIInfo::computeTargetABI(Triple TT, StringRef CPU,
|
||||
.Case("octeon", MipsABIInfo::N64())
|
||||
.Default(MipsABIInfo::Unknown());
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetStackPtr() const {
|
||||
return ArePtrs64bit() ? Mips::SP_64 : Mips::SP;
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetFramePtr() const {
|
||||
return ArePtrs64bit() ? Mips::FP_64 : Mips::FP;
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetNullPtr() const {
|
||||
return ArePtrs64bit() ? Mips::ZERO_64 : Mips::ZERO;
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetPtrAdduOp() const {
|
||||
return ArePtrs64bit() ? Mips::DADDu : Mips::ADDu;
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetPtrAddiuOp() const {
|
||||
return ArePtrs64bit() ? Mips::DADDiu : Mips::ADDiu;
|
||||
}
|
||||
|
||||
unsigned MipsABIInfo::GetEhDataReg(unsigned I) const {
|
||||
static const unsigned EhDataReg[] = {
|
||||
Mips::A0, Mips::A1, Mips::A2, Mips::A3
|
||||
};
|
||||
static const unsigned EhDataReg64[] = {
|
||||
Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64
|
||||
};
|
||||
|
||||
return IsN64() ? EhDataReg64[I] : EhDataReg[I];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user