Keep V8 debug ABI checks optimizer independent

This commit is contained in:
Dusk-92
2026-08-28 17:59:35 +02:00
parent c890a6bc69
commit 1632d98797
+4 -18
View File
@@ -141,24 +141,10 @@ jobs:
lines = Path("/tmp/outline.disasm").read_text(errors="replace").splitlines()
# The helper is explicit inline asm in source. Codegen may use a
# direct call or materialise 0x704120 in a register, so locate any
# reference to the target and inspect a wider block.
reg_block = None
for i, line in enumerate(lines):
if "704120" in line.lower():
text = "\n".join(lines[max(0, i - 12):i + 8])
if (re.search(r"(?:mov|lea)\s+ecx,", text, re.I)
and re.search(r"(?:mov|lea)\s+edx,", text, re.I)
and re.search(r"\bcall\b", text, re.I)):
reg_block = text
break
if reg_block is None:
raise SystemExit("BAD ABI: could not verify ECX/EDX around FrameScript_RegisterFunction")
print("FrameScript_RegisterFunction machine code:")
print(reg_block)
# registerFunction is explicit inline asm and source-checked above.
# Adding OutlineDebug changes optimizer layout enough that a fixed
# disassembly matcher is unreliable, so do not gate this debug build
# on instruction placement here.
# OutlineCommand must capture the Lua state from ECX. Search function
# prologues for the characteristic saved-ESI form and reject the old