Fix stack resetting for objc_msgSend on ARM.

If we called into C to find the IMP (e.g. for forwarding), we were then
reloading all of the arguments but failing to adjust the stack pointer
by the correct amount, leaving it around 192 bytes offset from its
correct location.  This, unsurprisingly, led to crashing and other
exciting behaviour.
main
David Chisnall 6 years ago
parent 60a657fbc6
commit c1a3d8f470

@ -76,7 +76,7 @@
ldp q4, q5, [sp, #144] ldp q4, q5, [sp, #144]
ldp q6, q7, [sp, #176] ldp q6, q7, [sp, #176]
ldp fp, lr, [sp, #208] ldp fp, lr, [sp, #208]
ldp \receiver, x8, [sp], #16 ldp \receiver, x8, [sp], #(ARGUMENT_SPILL_SIZE + 16)
br x9 br x9
6: 6:
adr x10, SmallObjectClasses adr x10, SmallObjectClasses

Loading…
Cancel
Save