VirtualBox

Changeset 102698 in vbox for trunk/src


Ignore:
Timestamp:
Dec 25, 2023 10:09:59 PM (13 months ago)
Author:
vboxsync
Message:

VMM/IEM: Added missing xSP clobbering annoation for return instructions. bugref:10371

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h

    r102577 r102698  
    83008300    {
    83018301        case IEMMODE_16BIT:
    8302             IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_iw_16, u16Imm);
     8302            IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8303                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_iw_16, u16Imm);
    83038304        case IEMMODE_32BIT:
    8304             IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_iw_32, u16Imm);
     8305            IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8306                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_iw_32, u16Imm);
    83058307        case IEMMODE_64BIT:
    8306             IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_iw_64, u16Imm);
     8308            IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8309                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_iw_64, u16Imm);
    83078310        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    83088311    }
     
    83218324    {
    83228325        case IEMMODE_16BIT:
    8323             IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_16);
     8326            IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8327                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_16);
    83248328        case IEMMODE_32BIT:
    8325             IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_32);
     8329            IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8330                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_32);
    83268331        case IEMMODE_64BIT:
    8327             IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK, 0, iemCImpl_retn_64);
     8332            IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_STACK,
     8333                                        RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP), iemCImpl_retn_64);
    83288334        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    83298335    }
     
    86178623    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK
    86188624                                | IEM_CIMPL_F_MODE,
    8619                                   RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
     8625                                  RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
     8626                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    86208627                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    86218628                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_FS)
     
    86428649    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK
    86438650                                | IEM_CIMPL_F_MODE,
    8644                                   RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
     8651                                  RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
     8652                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    86458653                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    86468654                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_FS)
     
    87108718    IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK_FAR
    87118719                                | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_CHECK_IRQ_BEFORE | IEM_CIMPL_F_VMEXIT,
    8712                                   RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
     8720                                  RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
     8721                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    87138722                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_DS)
    87148723                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_DS)
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