summaryrefslogtreecommitdiff
path: root/parser_st.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2025-08-22 12:59:31 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2025-08-22 20:13:22 -0400
commit5b5b5b3af555a0349c3d7e4e2a50f36ecd848560 (patch)
treed7ac0dd013c0117468f3318163133d90595ef101 /parser_st.c
parent8c24e6683b236a390587282998d5885c932cfef4 (diff)
ZJIT: Spill whole FrameState in `Insn::SendWithoutBlock`HEADmaster
Previously, we only spilled the arguments necessary for the particular send. In case the callee raises and a rescue resumes the ISEQ, that did not present a complete stack state. E.g. in `[1, (raise rescue 2)]` the raise send only spills `self`, when `1` also needs to be spilled. Spill the whole stack. Adjust parsing for `opt_aref_with` since the key argument for the send now needs to be described by the frame state of the send. This changes the contract for `Insn::SendWithoutBlock` to use arguments from the interpreter stack as described by its frame state.
Diffstat (limited to 'parser_st.c')
0 files changed, 0 insertions, 0 deletions