VirtualBox

Ignore:
Timestamp:
Apr 5, 2024 9:17:41 PM (8 months ago)
Author:
vboxsync
Message:

VMM/IEM: Refactoring assembly helpers to not pass eflags by reference but instead by value and return the updated value (via eax/w0) - fourth chunk: ARPL, ADCX, ADOX. bugref:10376

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r104207 r104208  
    68396839; 32-bit forms of ADCX and ADOX
    68406840;
    6841 ; @param    A0      Pointer to the destination operand (input/output).
    6842 ; @param    A1      32-bit source operand 1 (input).
    6843 ; @param    A2      Pointer to the EFLAGS value (input/output).
     6841; @returns  Updated EFLAGS.
     6842; @param    A0      Incoming EFLAGS value (input).
     6843; @param    A1      Pointer to the destination operand (input/output).
     6844; @param    A2      32-bit source operand 1 (input).
    68446845;
    68456846%macro IEMIMPL_ADX_32 2
     
    68476848        PROLOGUE_4_ARGS
    68486849
    6849         IEM_LOAD_FLAGS_OLD A2, %2, 0
    6850         %1      A1_32, [A0]
    6851         mov     [A0], A1_32
    6852         IEM_SAVE_FLAGS_OLD A2, %2, 0, 0
     6850        IEM_LOAD_FLAGS          A0_32, %2, 0
     6851        %1      A2_32, [A1]
     6852        mov     [A1], A2_32
     6853        IEM_SAVE_FLAGS_RETVAL   A0_32, %2, 0, 0
    68536854
    68546855        EPILOGUE_4_ARGS
     
    68596860; 64-bit forms of ADCX and ADOX
    68606861;
    6861 ; @param    A0      Pointer to the destination operand (input/output).
    6862 ; @param    A1      64-bit source operand 1 (input).
    6863 ; @param    A2      Pointer to the EFLAGS value (input/output).
     6862; @returns  Updated EFLAGS.
     6863; @param    A0      Incoming EFLAGS value (input).
     6864; @param    A1      Pointer to the destination operand (input/output).
     6865; @param    A2      64-bit source operand 1 (input).
    68646866;
    68656867%macro IEMIMPL_ADX_64 2
     
    68676869        PROLOGUE_4_ARGS
    68686870
    6869         IEM_LOAD_FLAGS_OLD A2, %2, 0
    6870         %1      A1, [A0]
    6871         mov     [A0], A1
    6872         IEM_SAVE_FLAGS_OLD A2, %2, 0, 0
     6871        IEM_LOAD_FLAGS          A0_32, %2, 0
     6872        %1      A2, [A1]
     6873        mov     [A1], A2
     6874        IEM_SAVE_FLAGS_RETVAL   A0_32, %2, 0, 0
    68736875
    68746876        EPILOGUE_4_ARGS
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