VirtualBox

Changeset 66474 in vbox


Ignore:
Timestamp:
Apr 7, 2017 1:18:29 PM (8 years ago)
Author:
vboxsync
Message:

IEM: Stubbed the three byte opcode tables.

Location:
trunk/src/VBox/VMM
Files:
2 added
5 edited

Legend:

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

    r66471 r66474  
    10141014IEMAllInstructionsOneByte.cpp.o    IEMAllInstructionsOneByte.cpp.obj \
    10151015IEMAllInstructionsTwoByte0f.cpp.o  IEMAllInstructionsTwoByte0f.cpp.obj \
     1016IEMAllInstructionsThree0f38.cpp.o  IEMAllInstructionsThree0f38.cpp.obj \
     1017IEMAllInstructionsThree0f3a.cpp.o  IEMAllInstructionsThree0f3a.cpp.obj \
    10161018IEMAllInstructionsVexMap1.cpp.o    IEMAllInstructionsVexMap1.cpp.obj \
    10171019IEMAllInstructions3DNow.cpp.o      IEMAllInstructions3DNow.cpp.obj \
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r66471 r66474  
    734734# include "IEMAllInstructions3DNow.cpp.h"
    735735#endif
     736#ifdef IEM_WITH_THREE_0F_38
     737# include "IEMAllInstructionsThree0f38.cpp.h"
     738#endif
     739#ifdef IEM_WITH_THREE_0F_3A
     740# include "IEMAllInstructionsThree0f3a.cpp.h"
     741#endif
    736742#include "IEMAllInstructionsTwoByte0f.cpp.h"
    737743#ifdef IEM_WITH_VEX
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py

    r66471 r66474  
    30733073        Raises exception on fatal trouble.
    30743074        """
    3075         self.debug('Parsing %s' % (self.sSrcFile,));
     3075        #self.debug('Parsing %s' % (self.sSrcFile,));
    30763076
    30773077        while self.iLine < len(self.asLines):
     
    31303130
    31313131        self.doneInstructions();
    3132         self.debug('%s instructions in %s' % (self.cTotalInstr, self.sSrcFile,));
    3133         self.debug('%s instruction stubs' % (self.cTotalStubs,));
     3132        self.debug('%3s stubs out of %3s instructions in %s' % (self.cTotalStubs, self.cTotalInstr, os.path.basename(self.sSrcFile),));
    31343133        return self.printErrors();
    31353134
     
    32173216    cErrors = 0;
    32183217    for sDefaultMap, sName in [
    3219         ( 'one',     'IEMAllInstructionsOneByte.cpp.h'),
    3220         ( 'two0f',   'IEMAllInstructionsTwoByte0f.cpp.h'),
    3221         ( 'vexmap1', 'IEMAllInstructionsVexMap1.cpp.h'),
    3222         ( '3dnow',   'IEMAllInstructions3DNow.cpp.h'),
     3218        ( 'one',        'IEMAllInstructionsOneByte.cpp.h'),
     3219        ( 'two0f',      'IEMAllInstructionsTwoByte0f.cpp.h'),
     3220        ( 'three0f38',  'IEMAllInstructionsThree0f38.cpp.h'),
     3221        ( 'three0f3a',  'IEMAllInstructionsThree0f3a.cpp.h'),
     3222        ( 'vexmap1',    'IEMAllInstructionsVexMap1.cpp.h'),
     3223        ( '3dnow',      'IEMAllInstructions3DNow.cpp.h'),
    32233224    ]:
    32243225        cErrors += __parseFileByName(os.path.join(sSrcDir, sName), sDefaultMap);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r66473 r66474  
    20382038/** Opcode 0x0f 0x37. */
    20392039FNIEMOP_STUB(iemOp_getsec);
     2040
     2041
    20402042/** Opcode 0x0f 0x38. */
    2041 FNIEMOP_STUB(iemOp_3byte_Esc_0f_38);
     2043FNIEMOP_DEF(iemOp_3byte_Esc_0f_38)
     2044{
     2045#ifdef IEM_WITH_THREE_0F_38
     2046    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
     2047    return FNIEMOP_CALL(g_apfnThreeByte0f38[(uintptr_t)b * 4 + pVCpu->iem.s.idxPrefix]);
     2048#else
     2049    IEMOP_BITCH_ABOUT_STUB();
     2050    return VERR_IEM_INSTR_NOT_IMPLEMENTED;
     2051#endif
     2052}
     2053
     2054
    20422055/** Opcode 0x0f 0x3a. */
    2043 FNIEMOP_STUB(iemOp_3byte_Esc_0f_3a);
     2056FNIEMOP_DEF(iemOp_3byte_Esc_0f_3a)
     2057{
     2058#ifdef IEM_WITH_THREE_0F_3A
     2059    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
     2060    return FNIEMOP_CALL(g_apfnThreeByte0f3a[(uintptr_t)b * 4 + pVCpu->iem.s.idxPrefix]);
     2061#else
     2062    IEMOP_BITCH_ABOUT_STUB();
     2063    return VERR_IEM_INSTR_NOT_IMPLEMENTED;
     2064#endif
     2065}
    20442066
    20452067
     
    84668488AssertCompile(RT_ELEMENTS(g_apfnTwoByteMap) == 1024);
    84678489
     8490/** @} */
     8491
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r66471 r66474  
    4242#endif
    4343
     44/** @def IEM_WITH_3DNOW
     45 * Includes the 3DNow decoding.  */
     46#define IEM_WITH_3DNOW
     47
     48/** @def IEM_WITH_THREE_0F_38
     49 * Includes the three byte opcode map for instrs starting with 0x0f 0x38. */
     50#define IEM_WITH_THREE_0F_38
     51
     52/** @def IEM_WITH_THREE_0F_3A
     53 * Includes the three byte opcode map for instrs starting with 0x0f 0x38. */
     54#define IEM_WITH_THREE_0F_3A
     55
    4456/** @def IEM_WITH_VEX
    45  * Enables the VEX decoding. */
     57 * Includes the VEX decoding. */
    4658#define IEM_WITH_VEX
    47 
    48 /** @def IEM_WITH_3DNOW
    49  * Enables the 3DNow decoding.  */
    50 #define IEM_WITH_3DNOW
    5159
    5260
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