mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Issue libcalls __udivmod*i4 / __divmod*i4 for div / rem pairs.
rdar://8911343 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128696 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -72,6 +72,11 @@ ARMInterworking("arm-interworking", cl::Hidden,
|
||||
cl::desc("Enable / disable ARM interworking (for debugging only)"),
|
||||
cl::init(true));
|
||||
|
||||
static cl::opt<bool>
|
||||
UseDivMod("arm-divmod-libcall", cl::Hidden,
|
||||
cl::desc("Use __{u}divmod libcalls for div / rem pairs"),
|
||||
cl::init(false));
|
||||
|
||||
void ARMTargetLowering::addTypeForNEON(EVT VT, EVT PromotedLdStVT,
|
||||
EVT PromotedBitwiseVT) {
|
||||
if (VT != PromotedLdStVT) {
|
||||
@@ -393,6 +398,11 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
|
||||
setLibcallCallingConv(RTLIB::UDIV_I32, CallingConv::ARM_AAPCS);
|
||||
}
|
||||
|
||||
if (UseDivMod) {
|
||||
setLibcallName(RTLIB::SDIVREM_I32, "__divmodsi4");
|
||||
setLibcallName(RTLIB::UDIVREM_I32, "__udivmodsi4");
|
||||
}
|
||||
|
||||
if (Subtarget->isThumb1Only())
|
||||
addRegisterClass(MVT::i32, ARM::tGPRRegisterClass);
|
||||
else
|
||||
|
Reference in New Issue
Block a user