VirtualBox

Changeset 82601 in vbox


Ignore:
Timestamp:
Dec 16, 2019 8:42:46 PM (5 years ago)
Author:
vboxsync
Message:

IPRT: Added an assembly implementation of ASMAddFlags. bugref:9627

Location:
trunk/src/VBox/Runtime
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/Makefile.kmk

    r81934 r82601  
    200200        win/amd64/ASMProbeReadByte.asm \
    201201        common/asm/ASMSetFlags.asm \
     202        common/asm/ASMAddFlags.asm \
    202203        win/amd64/ASMGetDR0.asm \
    203204        win/amd64/ASMGetDR1.asm \
  • trunk/src/VBox/Runtime/common/asm/ASMAddFlags.asm

    r82589 r82601  
    3434
    3535;;
    36 ; @param rcx  eflags
    37 BEGINPROC_EXPORTED ASMSetFlags
     36; @param rcx/rdi  eflags to add
     37BEGINPROC_EXPORTED ASMAddFlags
    3838%if    ARCH_BITS == 64
     39        pushfq
     40        mov     rax, [rsp]
    3941 %ifdef ASM_CALL64_GCC
    40         push    rdi
     42        or      rdi, rax
     43        mov     [rsp], rdi
    4144 %else
    42         push    rcx
     45        or      rcx, rax
     46        mov     [rsp], rcx
    4347 %endif
    4448        popfq
    4549%elif  ARCH_BITS == 32
    46         push    dword [esp + 4]
     50        mov     ecx, [esp + 4]
     51        pushfd
     52        mov     eax, [esp]
     53        or      ecx, eax
     54        mov     [esp], ecx
    4755        popfd
    4856%elif  ARCH_BITS == 16
    4957        push    bp
    5058        mov     bp, sp
     59        pushf
     60        pop     ax
    5161        push    word [bp + 2 + 2]
     62        or      [bp - 2], ax
    5263        popf
    5364        leave
     
    5667%endif
    5768        ret
    58 ENDPROC ASMSetFlags
     69ENDPROC ASMAddFlags
    5970
Note: See TracChangeset for help on using the changeset viewer.

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