mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
ARM: support stack probe size on Windows on ARM
Now that -mstack-probe-size is piped through to the backend via the function attribute as on Windows x86, honour the value to permit handling of non-default values for stack probes. This is needed /Gs with the clang-cl driver or -mstack-probe-size with the clang driver when targeting Windows on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227667 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -164,9 +164,13 @@ static int sizeOfSPAdjustment(const MachineInstr *MI) {
|
||||
static bool WindowsRequiresStackProbe(const MachineFunction &MF,
|
||||
size_t StackSizeInBytes) {
|
||||
const MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
if (MFI->getStackProtectorIndex() > 0)
|
||||
return StackSizeInBytes >= 4080;
|
||||
return StackSizeInBytes >= 4096;
|
||||
const Function *F = MF.getFunction();
|
||||
unsigned StackProbeSize = (MFI->getStackProtectorIndex() > 0) ? 4080 : 4096;
|
||||
if (F->hasFnAttribute("stack-probe-size"))
|
||||
F->getFnAttribute("stack-probe-size")
|
||||
.getValueAsString()
|
||||
.getAsInteger(0, StackProbeSize);
|
||||
return StackSizeInBytes >= StackProbeSize;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
Reference in New Issue
Block a user