Keep V8 debug ABI checks optimizer independent
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user