VirtualBox

Changeset 99289 in vbox


Ignore:
Timestamp:
Apr 5, 2023 12:19:47 AM (22 months ago)
Author:
vboxsync
Message:

VMM/IEM: IEM_MC_AND_LOCAL_U8 is not allowed on variables not declared using IEM_MC_LOCAL_VAR. bugref:10369

File:
1 edited

Legend:

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

    r99287 r99289  
    558558        IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    559559        IEM_MC_PREPARE_SSE_USAGE();
    560         IEM_MC_AND_LOCAL_U8(bImm, 15);
    561         IEM_MC_FETCH_XREG_U8(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iByte*/);
     560        IEM_MC_FETCH_XREG_U8(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/);
    562561        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), uValue);
    563562        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    579578        IEM_MC_PREPARE_SSE_USAGE();
    580579
    581         IEM_MC_AND_LOCAL_U8(bImm, 15);
    582         IEM_MC_FETCH_XREG_U8(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iByte*/);
     580        IEM_MC_FETCH_XREG_U8(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/);
    583581        IEM_MC_STORE_MEM_U8(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uValue);
    584582        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    604602        IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    605603        IEM_MC_PREPARE_SSE_USAGE();
    606         IEM_MC_AND_LOCAL_U8(bImm, 7);
    607         IEM_MC_FETCH_XREG_U16(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iWord*/);
     604        IEM_MC_FETCH_XREG_U16(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 7 /*a_iWord*/);
    608605        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), uValue);
    609606        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    625622        IEM_MC_PREPARE_SSE_USAGE();
    626623
    627         IEM_MC_AND_LOCAL_U8(bImm, 7);
    628         IEM_MC_FETCH_XREG_U16(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iWord*/);
     624        IEM_MC_FETCH_XREG_U16(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 7 /*a_iWord*/);
    629625        IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uValue);
    630626        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    657653            IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    658654            IEM_MC_PREPARE_SSE_USAGE();
    659             IEM_MC_AND_LOCAL_U8(bImm, 1);
    660             IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iQword*/);
     655            IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/);
    661656            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    662657            IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    678673            IEM_MC_PREPARE_SSE_USAGE();
    679674
    680             IEM_MC_AND_LOCAL_U8(bImm, 1);
    681             IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iQword*/);
     675            IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/);
    682676            IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    683677            IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    706700            IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    707701            IEM_MC_PREPARE_SSE_USAGE();
    708             IEM_MC_AND_LOCAL_U8(bImm, 3);
    709             IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/);
     702            IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
    710703            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    711704            IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    726719            IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    727720            IEM_MC_PREPARE_SSE_USAGE();
    728             IEM_MC_AND_LOCAL_U8(bImm, 3);
    729             IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/);
     721            IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
    730722            IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    731723            IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    752744        IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    753745        IEM_MC_PREPARE_SSE_USAGE();
    754         IEM_MC_AND_LOCAL_U8(bImm, 3);
    755         IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/);
     746        IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
    756747        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    757748        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    772763        IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
    773764        IEM_MC_PREPARE_SSE_USAGE();
    774         IEM_MC_AND_LOCAL_U8(bImm, 3);
    775         IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/);
     765        IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
    776766        IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    777767        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    808798        IEM_MC_PREPARE_SSE_USAGE();
    809799        IEM_MC_FETCH_GREG_U8(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    810         IEM_MC_AND_LOCAL_U8(bImm, 15);
    811         IEM_MC_STORE_XREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iByte*/, uSrc);
     800        IEM_MC_STORE_XREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/, uSrc);
    812801        IEM_MC_ADVANCE_RIP_AND_FINISH();
    813802        IEM_MC_END();
     
    829818
    830819        IEM_MC_FETCH_MEM_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    831         IEM_MC_AND_LOCAL_U8(bImm, 15);
    832         IEM_MC_STORE_XREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iByte*/, uSrc);
     820        IEM_MC_STORE_XREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/, uSrc);
    833821        IEM_MC_ADVANCE_RIP_AND_FINISH();
    834822        IEM_MC_END();
     
    917905            IEM_MC_PREPARE_SSE_USAGE();
    918906            IEM_MC_FETCH_GREG_U64(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    919             IEM_MC_AND_LOCAL_U8(bImm, 1);
    920             IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iQword*/, uSrc);
     907            IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/, uSrc);
    921908            IEM_MC_ADVANCE_RIP_AND_FINISH();
    922909            IEM_MC_END();
     
    938925
    939926            IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    940             IEM_MC_AND_LOCAL_U8(bImm, 1);
    941             IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iQword*/, uSrc);
     927            IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/, uSrc);
    942928            IEM_MC_ADVANCE_RIP_AND_FINISH();
    943929            IEM_MC_END();
     
    966952            IEM_MC_PREPARE_SSE_USAGE();
    967953            IEM_MC_FETCH_GREG_U32(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    968             IEM_MC_AND_LOCAL_U8(bImm, 3);
    969             IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/, uSrc);
     954            IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/, uSrc);
    970955            IEM_MC_ADVANCE_RIP_AND_FINISH();
    971956            IEM_MC_END();
     
    987972
    988973            IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    989             IEM_MC_AND_LOCAL_U8(bImm, 3);
    990             IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), bImm /*a_iDword*/, uSrc);
     974            IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/, uSrc);
    991975            IEM_MC_ADVANCE_RIP_AND_FINISH();
    992976            IEM_MC_END();
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