Skip to content

Commit 7b86c02

Browse files
committed
GH-126910: reserve FP on AArch64 when generating JIT stencils
1 parent a209dd2 commit 7b86c02

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

Tools/jit/_targets.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ async def _compile(
167167
# We *may* be able to re-enable this, process it, and JIT it for a
168168
# nicer debugging experience... but that needs a lot more research:
169169
"-fno-asynchronous-unwind-tables",
170+
"-fno-unwind-tables",
170171
# Don't call built-in functions that we can't find or patch:
171172
"-fno-builtin",
172173
# Don't call stack-smashing canaries that we can't find or patch:
@@ -580,20 +581,24 @@ def get_target(host: str) -> _COFF32 | _COFF64 | _ELF | _MachO:
580581
host = "aarch64-apple-darwin"
581582
condition = "defined(__aarch64__) && defined(__APPLE__)"
582583
optimizer = _optimizers.OptimizerAArch64
583-
target = _MachO(host, condition, optimizer=optimizer)
584+
target = _MachO(host, condition, optimizer=optimizer, frame_pointers=True)
584585
elif re.fullmatch(r"aarch64-pc-windows-msvc", host):
585586
host = "aarch64-pc-windows-msvc"
586587
condition = "defined(_M_ARM64)"
587588
args = ["-fms-runtime-lib=dll"]
588589
optimizer = _optimizers.OptimizerAArch64
589-
target = _COFF64(host, condition, args=args, optimizer=optimizer)
590+
target = _COFF64(
591+
host, condition, args=args, optimizer=optimizer, frame_pointers=True
592+
)
590593
elif re.fullmatch(r"aarch64-.*-linux-gnu", host):
591594
host = "aarch64-unknown-linux-gnu"
592595
condition = "defined(__aarch64__) && defined(__linux__)"
593596
# -mno-outline-atomics: Keep intrinsics from being emitted.
594597
args = ["-fpic", "-mno-outline-atomics", "-fno-plt"]
595598
optimizer = _optimizers.OptimizerAArch64
596-
target = _ELF(host, condition, args=args, optimizer=optimizer)
599+
target = _ELF(
600+
host, condition, args=args, optimizer=optimizer, frame_pointers=True
601+
)
597602
elif re.fullmatch(r"i686-pc-windows-msvc", host):
598603
host = "i686-pc-windows-msvc"
599604
condition = "defined(_M_IX86)"

0 commit comments

Comments
 (0)