@@ -15,37 +15,37 @@ #include "config.h" #include "invoke-x86_64.h" -.globl of_invocation_call +.globl OFInvocationCall .section .text -of_invocation_call: +OFInvocationCall: pushq %rbp movq %rsp, %rbp subq $16, %rsp andq $-16, %rsp movq %rdi, -8(%rbp) - movb OFFSET_RETURN_TYPE(%rdi), %r11b - cmpb $RETURN_TYPE_STRET, %r11b + movb offsetReturnType(%rdi), %r11b + cmpb $returnTypeStret, %r11b je .Llookup_stret - cmpb $RETURN_TYPE_JMP_STRET, %r11b + cmpb $returnTypeJmpStret, %r11b je .Llookup_stret - movq OFFSET_GPR_IN+8(%rdi), %rsi - movq OFFSET_GPR_IN+0(%rdi), %rdi + movq offsetGPRIn+8(%rdi), %rsi + movq offsetGPRIn+0(%rdi), %rdi call objc_msg_lookup@PLT .Lafter_lookup: movq %rax, -16(%rbp) movq -8(%rbp), %rdi - leaq OFFSET_STACK(%rdi), %rdx - movq OFFSET_STACK_SIZE(%rdi), %rcx + leaq offsetStack(%rdi), %rdx + movq offsetStackSize(%rdi), %rcx testq $1, %rcx jnz .Lfix_align .Lfill_stack: @@ -57,51 +57,51 @@ pushq %r11 jmp .Lfill_stack .Lstack_filled: - movb OFFSET_NUM_SSE_USED(%rdi), %al - - movaps OFFSET_SSE_INOUT+112(%rdi), %xmm7 - movaps OFFSET_SSE_INOUT+96(%rdi), %xmm6 - movaps OFFSET_SSE_INOUT+80(%rdi), %xmm5 - movaps OFFSET_SSE_INOUT+64(%rdi), %xmm4 - movaps OFFSET_SSE_INOUT+48(%rdi), %xmm3 - movaps OFFSET_SSE_INOUT+32(%rdi), %xmm2 - movaps OFFSET_SSE_INOUT+16(%rdi), %xmm1 - movaps OFFSET_SSE_INOUT(%rdi), %xmm0 - - movq OFFSET_GPR_IN+40(%rdi), %r9 - movq OFFSET_GPR_IN+32(%rdi), %r8 - movq OFFSET_GPR_IN+24(%rdi), %rcx - movq OFFSET_GPR_IN+16(%rdi), %rdx - movq OFFSET_GPR_IN+8(%rdi), %rsi - - movb OFFSET_RETURN_TYPE(%rdi), %r11b - movq OFFSET_GPR_IN(%rdi), %rdi - - cmpb $RETURN_TYPE_JMP, %r11b + movb offsetNumSSEUsed(%rdi), %al + + movaps offsetSSEInOut+112(%rdi), %xmm7 + movaps offsetSSEInOut+96(%rdi), %xmm6 + movaps offsetSSEInOut+80(%rdi), %xmm5 + movaps offsetSSEInOut+64(%rdi), %xmm4 + movaps offsetSSEInOut+48(%rdi), %xmm3 + movaps offsetSSEInOut+32(%rdi), %xmm2 + movaps offsetSSEInOut+16(%rdi), %xmm1 + movaps offsetSSEInOut(%rdi), %xmm0 + + movq offsetGPRIn+40(%rdi), %r9 + movq offsetGPRIn+32(%rdi), %r8 + movq offsetGPRIn+24(%rdi), %rcx + movq offsetGPRIn+16(%rdi), %rdx + movq offsetGPRIn+8(%rdi), %rsi + + movb offsetReturnType(%rdi), %r11b + movq offsetGPRIn(%rdi), %rdi + + cmpb $returnTypeJmp, %r11b je .Ljmp_into_method - cmpb $RETURN_TYPE_JMP_STRET, %r11b + cmpb $returnTypeJmpStret, %r11b je .Ljmp_into_method movq -16(%rbp), %r11 call *%r11 .Lafter_send: movq -8(%rbp), %rdi - movq %rax, OFFSET_GPR_OUT(%rdi) - movq %rdx, OFFSET_GPR_OUT+8(%rdi) - movaps %xmm0, OFFSET_SSE_INOUT(%rdi) - movaps %xmm1, OFFSET_SSE_INOUT+16(%rdi) - - movb OFFSET_RETURN_TYPE(%rdi), %r11b - - cmpb $RETURN_TYPE_X87, %r11b + movq %rax, offsetGPROut(%rdi) + movq %rdx, offsetGPROut+8(%rdi) + movaps %xmm0, offsetSSEInOut(%rdi) + movaps %xmm1, offsetSSEInOut+16(%rdi) + + movb offsetReturnType(%rdi), %r11b + + cmpb $returnTypeX87, %r11b je .Lpop_long_double - cmpb $RETURN_TYPE_COMPLEX_X87, %r11b + cmpb $returnTypeComplexX87, %r11b je .Lpop_complex_long_double .Lreturn: movq %rbp, %rsp popq %rbp @@ -112,27 +112,27 @@ xorq %r11, %r11 pushq %r11 jmp .Lfill_stack .Llookup_stret: - movq OFFSET_GPR_IN+16(%rdi), %rsi - movq OFFSET_GPR_IN+8(%rdi), %rdi + movq offsetGPRIn+16(%rdi), %rsi + movq offsetGPRIn+8(%rdi), %rdi call objc_msg_lookup_stret@PLT jmp .Lafter_lookup .Ljmp_into_method: movq -16(%rbp), %r11 jmp *%r11 .Lpop_long_double: - fstpt OFFSET_X87_OUT(%rdi) + fstpt offsetX87Out(%rdi) jmp .Lreturn .Lpop_complex_long_double: - fstpt OFFSET_X87_OUT(%rdi) - fstpt OFFSET_X87_OUT+16(%rdi) + fstpt offsetX87Out(%rdi) + fstpt offsetX87Out+16(%rdi) jmp .Lreturn #ifdef OF_LINUX .section .note.GNU-stack, "", %progbits #endif