VirtualBox

Changeset 46951 in vbox for trunk


Ignore:
Timestamp:
Jul 3, 2013 7:36:50 PM (12 years ago)
Author:
vboxsync
Message:

Fixed first bunch of bugs found by the testcase.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
3 edited

Legend:

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

    r46948 r46951  
    84408440                           szInstr, sizeof(szInstr), &cbInstr);
    84418441
    8442         Log3(("**** "
     8442        Log2(("**** "
    84438443              " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n"
    84448444              " eip=%08x esp=%08x ebp=%08x iopl=%d\n"
     
    86268626                           szInstr, sizeof(szInstr), &cbInstr);
    86278627
    8628         Log3(("**** "
     8628        Log2(("**** "
    86298629              " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n"
    86308630              " eip=%08x esp=%08x ebp=%08x iopl=%d\n"
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r46384 r46951  
    31083108        case 0: ASMAtomicBitSet(pvDesc, 40 + 1); break;
    31093109        case 1: ASMAtomicBitSet((uint8_t *)pvDesc + 3, 40 + 1 - 24); break;
    3110         case 2: ASMAtomicBitSet((uint8_t *)pvDesc + 3, 40 + 1 - 16); break;
    3111         case 3: ASMAtomicBitSet((uint8_t *)pvDesc + 3, 40 + 1 -  8); break;
    3112     }
    3113     rcStrict = iemMemMap(pIemCpu, &pvDesc, 8, UINT8_MAX, pCtx->gdtr.pGdt, IEM_ACCESS_DATA_RW);
     3110        case 2: ASMAtomicBitSet((uint8_t *)pvDesc + 2, 40 + 1 - 16); break;
     3111        case 3: ASMAtomicBitSet((uint8_t *)pvDesc + 1, 40 + 1 -  8); break;
     3112    }
     3113    rcStrict = iemMemCommitAndUnmap(pIemCpu, pvDesc, IEM_ACCESS_DATA_RW);
    31143114    if (rcStrict != VINF_SUCCESS)
    31153115        return rcStrict;
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r46487 r46951  
    1023410234{
    1023510235    IEMOP_MNEMONIC("mov AL,Ib");
    10236     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xAX);
     10236    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xAX | pIemCpu->uRexB);
    1023710237}
    1023810238
     
    1024210242{
    1024310243    IEMOP_MNEMONIC("mov CL,Ib");
    10244     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xCX);
     10244    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xCX | pIemCpu->uRexB);
    1024510245}
    1024610246
     
    1025010250{
    1025110251    IEMOP_MNEMONIC("mov DL,Ib");
    10252     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDX);
     10252    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDX | pIemCpu->uRexB);
    1025310253}
    1025410254
     
    1025810258{
    1025910259    IEMOP_MNEMONIC("mov BL,Ib");
    10260     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBX);
     10260    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBX | pIemCpu->uRexB);
    1026110261}
    1026210262
     
    1026610266{
    1026710267    IEMOP_MNEMONIC("mov AH,Ib");
    10268     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSP);
     10268    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSP | pIemCpu->uRexB);
    1026910269}
    1027010270
     
    1027410274{
    1027510275    IEMOP_MNEMONIC("mov CH,Ib");
    10276     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBP);
     10276    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBP | pIemCpu->uRexB);
    1027710277}
    1027810278
     
    1028210282{
    1028310283    IEMOP_MNEMONIC("mov DH,Ib");
    10284     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSI);
     10284    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSI | pIemCpu->uRexB);
    1028510285}
    1028610286
     
    1029010290{
    1029110291    IEMOP_MNEMONIC("mov BH,Ib");
    10292     return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDI);
     10292    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDI | pIemCpu->uRexB);
    1029310293}
    1029410294
     
    1034810348{
    1034910349    IEMOP_MNEMONIC("mov rAX,IV");
    10350     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xAX);
     10350    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xAX | pIemCpu->uRexB);
    1035110351}
    1035210352
     
    1035610356{
    1035710357    IEMOP_MNEMONIC("mov rCX,IV");
    10358     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xCX);
     10358    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xCX | pIemCpu->uRexB);
    1035910359}
    1036010360
     
    1036410364{
    1036510365    IEMOP_MNEMONIC("mov rDX,IV");
    10366     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDX);
     10366    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDX | pIemCpu->uRexB);
    1036710367}
    1036810368
     
    1037210372{
    1037310373    IEMOP_MNEMONIC("mov rBX,IV");
    10374     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBX);
     10374    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBX | pIemCpu->uRexB);
    1037510375}
    1037610376
     
    1038010380{
    1038110381    IEMOP_MNEMONIC("mov rSP,IV");
    10382     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSP);
     10382    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSP | pIemCpu->uRexB);
    1038310383}
    1038410384
     
    1038810388{
    1038910389    IEMOP_MNEMONIC("mov rBP,IV");
    10390     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBP);
     10390    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBP | pIemCpu->uRexB);
    1039110391}
    1039210392
     
    1039610396{
    1039710397    IEMOP_MNEMONIC("mov rSI,IV");
    10398     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSI);
     10398    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSI | pIemCpu->uRexB);
    1039910399}
    1040010400
     
    1040410404{
    1040510405    IEMOP_MNEMONIC("mov rDI,IV");
    10406     return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDI);
     10406    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDI | pIemCpu->uRexB);
    1040710407}
    1040810408
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