Changeset 86278 in vbox for trunk/src/libs/xpcom18a4
- Timestamp:
- Sep 24, 2020 8:26:13 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 140554
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_vbox.asm
r86277 r86278 79 79 push rbx 80 80 push r12 81 push r1382 81 83 82 ; … … 128 127 fast_case .fast_1, .fast_0, 0, rsi 129 128 .fast_0: 130 and rsp, 0ffffffffffffffe0h ; Align the stack on 32 bytes.131 129 xor eax, eax 132 .make_just_call: 133 call r11 134 135 .return: 130 call r11 ; note! stack is aligned here. 131 132 .fast_return: 136 133 lea rsp, [rbp - 8*3] 137 pop r13138 134 pop r12 139 135 pop rbx … … 153 149 .slow: 154 150 %endif 151 ; One more push. 152 push r13 153 155 154 ; 156 155 ; Check that there aren't unreasonably many parameters … … 165 164 lea edx, [r12d * 8] 166 165 sub rsp, rdx 167 and rsp, 0ffffffffffffffe0h ; 32 byte aligned stack.166 and rsp, byte 0ffffffffffffffe0h ; 32 byte aligned stack. 168 167 mov r10, rsp ; r10 = next stack parameter. 169 168 … … 376 375 ; Call the method and return. 377 376 ; 378 %ifdef WITH_OPTIMIZATION379 movzx eax, ah ; AL = number of parameters in XMM registers (variadict only, but easy to do).380 jmp .make_just_call381 %else382 377 .make_call: 383 378 movzx eax, ah ; AL = number of parameters in XMM registers (variadict only, but easy to do). … … 392 387 leave 393 388 ret 394 %endif395 389 396 390 .too_many_parameters:
Note:
See TracChangeset
for help on using the changeset viewer.