VirtualBox

Changeset 86278 in vbox for trunk/src/libs/xpcom18a4


Ignore:
Timestamp:
Sep 24, 2020 8:26:13 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140554
Message:

xpcom/reflect: More shrinking. bugref:9790

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_vbox.asm

    r86277 r86278  
    7979        push    rbx
    8080        push    r12
    81         push    r13
    8281
    8382        ;
     
    128127        fast_case .fast_1, .fast_0, 0, rsi
    129128.fast_0:
    130         and     rsp, 0ffffffffffffffe0h ; Align the stack on 32 bytes.
    131129        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:
    136133        lea     rsp, [rbp - 8*3]
    137         pop     r13
    138134        pop     r12
    139135        pop     rbx
     
    153149.slow:
    154150%endif
     151        ; One more push.
     152        push    r13
     153
    155154        ;
    156155        ; Check that there aren't unreasonably many parameters
     
    165164        lea     edx, [r12d * 8]
    166165        sub     rsp, rdx
    167         and     rsp, 0ffffffffffffffe0h ; 32 byte aligned stack.
     166        and     rsp, byte 0ffffffffffffffe0h ; 32 byte aligned stack.
    168167        mov     r10, rsp                ; r10 = next stack parameter.
    169168
     
    376375        ; Call the method and return.
    377376        ;
    378 %ifdef WITH_OPTIMIZATION
    379         movzx   eax, ah                 ; AL = number of parameters in XMM registers (variadict only, but easy to do).
    380         jmp     .make_just_call
    381 %else
    382377.make_call:
    383378        movzx   eax, ah                 ; AL = number of parameters in XMM registers (variadict only, but easy to do).
     
    392387        leave
    393388        ret
    394 %endif
    395389
    396390.too_many_parameters:
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette