Overview
Comment: | Convert call-x86_64-elf.S to Intel syntax |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
71c7f864e4c18a9e77b85ad303c630f6 |
User & Date: | js on 2020-06-30 23:56:10 |
Other Links: | manifest | tags |
Context
2021-02-08
| ||
02:08 | Revert call-x86_64-elf.S back to AT&T syntax check-in: 541b66cc87 user: js tags: trunk | |
2020-07-01
| ||
00:33 | .travis.yml: Update devkitPro pacman .deb URL check-in: 1653f80f51 user: js tags: trunk | |
2020-06-30
| ||
23:56 | Convert call-x86_64-elf.S to Intel syntax check-in: 71c7f864e4 user: js tags: trunk | |
23:46 | Convert apple-call-x86_64.S to Intel syntax check-in: bf1cc071e3 user: js tags: trunk | |
Changes
Modified src/invocation/call-x86_64-elf.S from [5b83df7d17] to [4f918f901d].
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include "invoke-x86_64.h" .globl of_invocation_call .section .text of_invocation_call: | > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include "invoke-x86_64.h" .intel_syntax noprefix .globl of_invocation_call .section .text of_invocation_call: pushq rbp mov rbp, rsp sub rsp, 16 and rsp, -16 mov [rbp-8], rdi mov r11b, [rdi+OFFSET_RETURN_TYPE] cmp r11b, RETURN_TYPE_STRET je short .Llookup_stret cmp r11b, RETURN_TYPE_JMP_STRET je short .Llookup_stret mov rsi, [rdi+OFFSET_GPR_IN+8] mov rdi, [rdi+OFFSET_GPR_IN] call objc_msg_lookup@PLT .Lafter_lookup: mov [rbp-16], rax mov rdi, [rbp-8] lea rdx, [rdi+OFFSET_STACK] mov rcx, [rdi+OFFSET_STACK_SIZE] test rcx, $1 jnz short .Lfix_align .Lfill_stack: test rcx, rcx jz short .Lstack_filled dec rcx mov r11, [rdx+rcx*8] push r11 jmp short .Lfill_stack .stack_filled: mov al, [rdi+OFFSET_NUM_SSE_USED] movaps xmm7, [rdi+OFFSET_SSE_INOUT+112] movaps xmm6, [rdi+OFFSET_SSE_INOUT+96] movaps xmm5, [rdi+OFFSET_SSE_INOUT+80] movaps xmm4, [rdi+OFFSET_SSE_INOUT+64] movaps xmm3, [rdi+OFFSET_SSE_INOUT+48] movaps xmm2, [rdi+OFFSET_SSE_INOUT+32] movaps xmm1, [rdi+OFFSET_SSE_INOUT+16] movaps xmm0, [rdi+OFFSET_SSE_INOUT] mov r9, [rdi+OFFSET_GPR_IN+40] mov r8, [rdi+OFFSET_GPR_IN+32] mov rcx, [rdi+OFFSET_GPR_IN+24] mov rdx, [rdi+OFFSET_GPR_IN+16] mov rsi, [rdi+OFFSET_GPR_IN+8] mov r11b, [rdi+OFFSET_RETURN_TYPE] mov rdi, [rdi+OFFSET_GPR_IN] cmp r11b, RETURN_TYPE_JMP je short .Ljmp_into_method cmp r11b, RETURN_TYPE_JMP_STRET je short .Ljmp_into_method mov r11, [rbp-16] call r11 .Lafter_send: mov rdi, [rbp-8] mov [rdi+OFFSET_GPR_OUT], rax mov [rdi+OFFSET_GPR_OUT+8], rdx movaps [rdi+OFFSET_SSE_INOUT], xmm0 movaps [rdi+OFFSET_SSE_INOUT+16], xmm1 mov r11b, [rdi+OFFSET_RETURN_TYPE] cmp r11b, RETURN_TYPE_X87 je short .Lpop_long_double cmp r11b, RETURN_TYPE_COMPLEX_X87 je short .Lpop_complex_long_double .Lreturn: mov rsp, rbp pop rbp ret .Lfix_align: xor r11, r11 push r11 jmp short .Lfill_stack .Llookup_stret: mov rsi, [rdi+OFFSET_GPR_IN+16] mov rdi, [rdi+OFFSET_GPR_IN+8] call objc_msg_lookup_stret@PLT jmp short .Lafter_lookup .Ljmp_into_method: mov r11, [rbp-16] jmp r11 .Lpop_long_double: fstp tbyte ptr [rdi+OFFSET_X87_OUT] jmp short .Lreturn .pop_complex_long_double: fstp tbyte ptr [rdi+OFFSET_X87_OUT] fstp tbyte ptr [rdi+OFFSET_X87_OUT+16] jmp short .Lreturn #ifdef OF_LINUX .section .note.GNU-stack, "", %progbits #endif |