4 Commits (c1a3d8f4705c50c88ad018e64d1b332e4104dd14)

Author SHA1 Message Date
David Chisnall c1a3d8f470 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.
6 years ago
David Chisnall 60a657fbc6 Fix CFA calculation in AArch64 objc_msgSend.
Prior to this, throwing an exception from a +initialize method would
leave the stack pointer 16 bytes offset from its correct location.
6 years ago
David Chisnall c7c193e4c7 Use the correct compare instruction. 10 years ago
David Chisnall b952a21abe Add objc_msgSend for AArch64.
An interesting feature of the AArch64 ABI simplifies this code relative to other platforms.  AArch64 reserves an extra register (x8) for the address of struct returns, giving the
10 years ago