@@ -29,26 +29,25 @@ OFForward_stret: #ifdef HAVE_BTI bti c #endif - stp fp, lr, [sp, #-208]! + stp fp, lr, [sp, #-224]! mov fp, sp - sub sp, sp, #208 /* Save all arguments, x8 and x19 */ - stp x0, x1, [sp] - stp x2, x3, [sp, #16] - stp x4, x5, [sp, #32] - stp x6, x7, [sp, #48] - stp x8, x19, [sp, #64] + stp x0, x1, [sp, #16] + stp x2, x3, [sp, #32] + stp x4, x5, [sp, #48] + stp x6, x7, [sp, #64] + stp x8, x19, [sp, #80] /* Save all foating point arguments */ - stp q0, q1, [sp, #80] - stp q2, q3, [sp, #112] - stp q4, q5, [sp, #144] - stp q6, q7, [sp, #176] + stp q0, q1, [sp, #96] + stp q2, q3, [sp, #128] + stp q4, q5, [sp, #160] + stp q6, q7, [sp, #192] bl object_getClass adrp x19, .Lsel_forwardingTargetForSelector_ add x19, x19, :lo12:.Lsel_forwardingTargetForSelector_ @@ -56,55 +55,55 @@ mov x1, x19 bl class_respondsToSelector cbz x0, 0f - ldr x0, [sp] + ldr x0, [sp, #16] mov x1, x19 bl objc_msg_lookup mov x1, x19 mov x19, x0 - ldp x0, x2, [sp] + ldp x0, x2, [sp, #16] blr x19 cbz x0, 0f - ldr x1, [sp] + ldr x1, [sp, #16] cmp x0, x1 b.eq 0f mov x19, x0 - ldr x1, [sp, #8] + ldr x1, [sp, #24] bl objc_msg_lookup mov x16, x0 mov x0, x19 /* Restore all arguments, x8 and x19, but not x0 */ - ldr x1, [sp, #8] - ldp x2, x3, [sp, #16] - ldp x4, x5, [sp, #32] - ldp x6, x7, [sp, #48] - ldp x8, x19, [sp, #64] + ldr x1, [sp, #24] + ldp x2, x3, [sp, #32] + ldp x4, x5, [sp, #48] + ldp x6, x7, [sp, #64] + ldp x8, x19, [sp, #80] /* Restore all foating point arguments */ - ldp q0, q1, [sp, #80] - ldp q2, q3, [sp, #112] - ldp q4, q5, [sp, #144] - ldp q6, q7, [sp, #176] + ldp q0, q1, [sp, #96] + ldp q2, q3, [sp, #128] + ldp q4, q5, [sp, #160] + ldp q6, q7, [sp, #192] mov sp, fp - ldp fp, lr, [sp], #208 + ldp fp, lr, [sp], #224 br x16 0: - ldp x0, x1, [sp] - ldr x19, [sp, #72] + ldp x0, x1, [sp, #16] + ldr x19, [sp, #88] mov sp, fp - ldp fp, lr, [sp], #208 + ldp fp, lr, [sp], #224 b OFMethodNotFound .type OFForward, %function .size OFForward, .-OFForward .type OFForward_stret, %function