VirtualBox

Changeset 4953

Show
Ignore:
Timestamp:
09/21/07 16:08:19 (1 year ago)
Author:
vboxsync
Message:

Cleaned up disassembler

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/dis.h

    r4071 r4953  
    3333 * @{ 
    3434 */ 
    35 #define CPUMODE_16BIT                   1 
    36 #define CPUMODE_32BIT                   2 
     35typedef enum 
     36
     37    CPUMODE_16BIT = 1, 
     38    CPUMODE_32BIT = 2, 
     39    CPUMODE_64BIT = 3 
     40} DISCPUMODE; 
    3741/** @} */ 
    3842 
     
    313317typedef const struct _OPCODE *PCOPCODE; 
    314318 
    315 typedef DECLCALLBACK(int32_t) FN_DIS_READBYTES(RTUINTPTR pSrc, uint8_t *pDest, uint32_t size, RTUINTPTR dwUserdata); 
     319typedef DECLCALLBACK(int) FN_DIS_READBYTES(RTUINTPTR pSrc, uint8_t *pDest, uint32_t size, void *pvUserdata); 
    316320typedef FN_DIS_READBYTES *PFN_DIS_READBYTES; 
    317321 
     
    323327/** Parser callback. 
    324328 * @remark no DECLCALLBACK() here because it's considered to be internal (really, I'm too lazy to update all the functions). */ 
    325 typedef int FNDISPARSE(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     329typedef unsigned FNDISPARSE(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    326330typedef FNDISPARSE *PFNDISPARSE; 
    327331 
     
    370374    PCOPCODE        pCurInstr; 
    371375 
    372     RTUINTPTR       dwUserData[3]; 
     376    void           *apvUserData[3]; 
    373377 
    374378    /** Optional read function */ 
     
    402406 * Disassembles a code block. 
    403407 * 
    404  * @returns Success indicator. 
     408 * @returns VBox error code 
    405409 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    406410 *                          set correctly. 
     
    419423 *          This means *pcbSize >= cbMax sometimes. 
    420424 */ 
    421 DISDECL(bool) DISBlock(PDISCPUSTATE pCpu, RTUINTPTR pvCodeBlock, int32_t cbMax, uint32_t *pSize); 
     425DISDECL(int) DISBlock(PDISCPUSTATE pCpu, RTUINTPTR pvCodeBlock, unsigned cbMax, unsigned *pSize); 
    422426 
    423427/** 
    424428 * Disassembles one instruction 
    425429 * 
    426  * @returns Success indicator. 
     430 * @returns VBox error code 
    427431 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    428432 *                          set correctly. 
     
    435439 * @todo    Define output callback. 
    436440 */ 
    437 DISDECL(bool) DISInstr(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, uint32_t u32EipOffset, uint32_t *pcbSize, char *pszOutput); 
     441DISDECL(int) DISInstr(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, unsigned u32EipOffset, unsigned *pcbSize, char *pszOutput); 
    438442 
    439443/** 
    440444 * Disassembles one instruction 
    441445 * 
    442  * @returns Success indicator. 
     446 * @returns VBox error code 
    443447 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    444448 *                          set correctly. 
     
    452456 * @todo    Define output callback. 
    453457 */ 
    454 DISDECL(bool) DISInstrEx(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, uint32_t u32EipOffset, uint32_t *pcbSize, 
    455                          char *pszOutput, uint32_t uFilter); 
     458DISDECL(int) DISInstrEx(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, uint32_t u32EipOffset, uint32_t *pcbSize, 
     459                         char *pszOutput, unsigned uFilter); 
    456460 
    457461/** 
     
    459463 * The result is found in pCpu. 
    460464 * 
    461  * @returns Success indicator. 
     465 * @returns VBox error code 
    462466 * @param   pCpu            Pointer to cpu structure which has DISCPUSTATE::mode set correctly. 
    463467 * @param   InstructionAddr Pointer to the instruction to parse. 
     
    465469 *                          NULL is allowed. 
    466470 */ 
    467 DISDECL(bool) DISCoreOne(PDISCPUSTATE pCpu, RTUINTPTR InstructionAddr, unsigned *pcbInstruction); 
     471DISDECL(int) DISCoreOne(PDISCPUSTATE pCpu, RTUINTPTR InstructionAddr, unsigned *pcbInstruction); 
    468472 
    469473/** 
  • trunk/include/VBox/err.h

    r4738 r4953  
    11171117 
    11181118 
     1119/** @name VBox Disassembler Status Codes  
     1120 * @{ 
     1121 */ 
     1122/** Invalid opcode byte(s) */ 
     1123#define VERR_DIS_INVALID_OPCODE                     (-5000) 
     1124/** Generic failure during disassembly. */ 
     1125#define VERR_DIS_GEN_FAILURE                        (-5001) 
     1126/** @} */ 
     1127 
    11191128/* SED-END */ 
    11201129 
  • trunk/src/VBox/Disassembler/Disasm.cpp

    r4071 r4953  
    3636 * Disassembles a code block. 
    3737 * 
    38  * @returns Success indicator. 
     38 * @returns VBox error code 
    3939 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    4040 *                          set correctly. 
     
    5353 *          This means *pcbSize >= cbMax sometimes. 
    5454 */ 
    55 DISDECL(bool) DISBlock(PDISCPUSTATE pCpu, RTUINTPTR pvCodeBlock, int32_t cbMax, uint32_t *pSize) 
     55DISDECL(int) DISBlock(PDISCPUSTATE pCpu, RTUINTPTR pvCodeBlock, unsigned cbMax, unsigned *pSize) 
    5656{ 
    57     int32_t i = 0; 
     57    unsigned i = 0; 
    5858    char szOutput[256]; 
    5959 
    6060    while (i < cbMax) 
    6161    { 
    62         uint32_t cbInstr; 
    63         if (!DISInstr(pCpu, pvCodeBlock + i, 0, &cbInstr, szOutput)) 
    64             return false; 
     62        unsigned cbInstr; 
     63        int rc = DISInstr(pCpu, pvCodeBlock + i, 0, &cbInstr, szOutput); 
     64        if (VBOX_FAILURE(rc)) 
     65            return rc; 
    6566 
    6667        i += cbInstr; 
     
    7576 * Disassembles one instruction 
    7677 * 
    77  * @returns Success indicator. 
     78 * @returns VBox error code 
    7879 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    7980 *                          set correctly. 
     
    8687 * @todo    Define output callback. 
    8788 */ 
    88 DISDECL(bool) DISInstr(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, uint32_t u32EipOffset, uint32_t *pcbSize, 
     89DISDECL(int) DISInstr(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, unsigned u32EipOffset, unsigned *pcbSize, 
    8990                       char *pszOutput) 
    9091{ 
     
    9596 * Disassembles one instruction; only fully disassembly an instruction if it matches the filter criteria 
    9697 * 
    97  * @returns Success indicator. 
     98 * @returns VBox error code 
    9899 * @param   pCpu            Pointer to cpu structure which have DISCPUSTATE::mode 
    99100 *                          set correctly. 
     
    107108 * @todo    Define output callback. 
    108109 */ 
    109 DISDECL(bool) DISInstrEx(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, uint32_t u32EipOffset, uint32_t *pcbSize, 
    110                          char *pszOutput, uint32_t uFilter) 
     110DISDECL(int) DISInstrEx(PDISCPUSTATE pCpu, RTUINTPTR pu8Instruction, unsigned u32EipOffset, unsigned *pcbSize, 
     111                         char *pszOutput, unsigned uFilter) 
    111112{ 
    112     int i = 0, prefixbytes; 
    113     int idx, inc; 
     113    unsigned i = 0, prefixbytes; 
     114    unsigned idx, inc; 
    114115#ifdef __L4ENV__ 
    115116    jmp_buf jumpbuffer; 
     
    165166                    AssertMsgFailed(("Invalid opcode!!\n")); 
    166167#endif 
    167                     return false
     168                    return VERR_DIS_INVALID_OPCODE
    168169 
    169170                // segment override prefix byte 
     
    245246        if (pcbSize) 
    246247            *pcbSize = 0; 
    247         return false
     248        return VERR_DIS_GEN_FAILURE
    248249    } 
    249250 
     
    251252        *pcbSize = i; 
    252253 
    253     return true
     254    return VINF_SUCCESS
    254255} 
    255256//***************************************************************************** 
  • trunk/src/VBox/Disassembler/DisasmCore.cpp

    r4283 r4953  
    6060#endif 
    6161 
    62 static int QueryModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc = NULL); 
    63 static int QueryModRM_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc = NULL); 
    64 static int UseSIB(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    65 static int ParseSIB_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     62static unsigned QueryModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc = NULL); 
     63static unsigned QueryModRM_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc = NULL); 
     64static void    UseSIB(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     65static unsigned ParseSIB_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    6666 
    6767/******************************************************************************* 
     
    257257 *                          NULL is allowed. 
    258258 */ 
    259 DISDECL(bool) DISCoreOne(PDISCPUSTATE pCpu, RTUINTPTR InstructionAddr, unsigned *pcbInstruction) 
     259DISDECL(int) DISCoreOne(PDISCPUSTATE pCpu, RTUINTPTR InstructionAddr, unsigned *pcbInstruction) 
    260260{ 
    261261    /* 
     
    295295 * @param   InstructionAddr Address of the instruction to decode. What this means 
    296296 *                          is left to the pfnReadBytes function. 
    297  * @param   CpuMode         The CPU mode. CPUMODE_32BIT, CPUMODE_16BIT, or CPUMODE_64BIT. 
     297 * @param   uCpuMode        The CPU mode. CPUMODE_32BIT, CPUMODE_16BIT, or CPUMODE_64BIT. 
    298298 * @param   pfnReadBytes    Callback for reading instruction bytes. 
    299  * @param   pvUser          User argument for the instruction reader. (Ends up in dwUserData[0].) 
     299 * @param   pvUser          User argument for the instruction reader. (Ends up in apvUserData[0].) 
    300300 * @param   pCpu            Pointer to cpu structure. Will be initialized. 
    301301 * @param   pcbInstruction  Where to store the size of the instruction. 
    302302 *                          NULL is allowed. 
    303303 */ 
    304 DISDECL(int) DISCoreOneEx(RTUINTPTR InstructionAddr, unsigned CpuMode, PFN_DIS_READBYTES pfnReadBytes, void *pvUser, 
     304DISDECL(int) DISCoreOneEx(RTUINTPTR InstructionAddr, unsigned uCpuMode, PFN_DIS_READBYTES pfnReadBytes, void *pvUser, 
    305305                          PDISCPUSTATE pCpu, unsigned *pcbInstruction) 
    306306{ 
     
    311311    pCpu->prefix_seg = 0; 
    312312    pCpu->lastprefix = 0; 
    313     pCpu->mode       = CpuMode; 
    314     pCpu->addrmode   = CpuMode; 
    315     pCpu->opmode     = CpuMode; 
     313    pCpu->mode       = uCpuMode; 
     314    pCpu->addrmode   = uCpuMode; 
     315    pCpu->opmode     = uCpuMode; 
    316316    pCpu->ModRM      = 0; 
    317317    pCpu->SIB        = 0; 
     
    322322    pCpu->param2.szParam[0] = '\0'; 
    323323    pCpu->param3.szParam[0] = '\0'; 
    324     pCpu->param1.flags = 0; 
    325     pCpu->param2.flags = 0; 
    326     pCpu->param3.flags = 0; 
    327     pCpu->param1.size  = 0; 
    328     pCpu->param2.size  = 0; 
    329     pCpu->param3.size  = 0; 
    330     pCpu->pfnReadBytes = pfnReadBytes; 
    331     pCpu->dwUserData[0] = (uintptr_t)pvUser; Assert(sizeof(pCpu->dwUserData) >= sizeof(uintptr_t))
    332     pCpu->uFilter      = OPTYPE_ALL; 
    333     pCpu->pfnDisasmFnTable = pfnFullDisasm; 
     324    pCpu->param1.flags      = 0; 
     325    pCpu->param2.flags      = 0; 
     326    pCpu->param3.flags      = 0; 
     327    pCpu->param1.size       = 0; 
     328    pCpu->param2.size       = 0; 
     329    pCpu->param3.size       = 0; 
     330    pCpu->pfnReadBytes      = pfnReadBytes; 
     331    pCpu->apvUserData[0]    = pvUser
     332    pCpu->uFilter           = OPTYPE_ALL; 
     333    pCpu->pfnDisasmFnTable = pfnFullDisasm; 
    334334 
    335335    return disCoreOne(pCpu, InstructionAddr, pcbInstruction); 
     
    838838//***************************************************************************** 
    839839//***************************************************************************** 
    840 int ParseInstruction(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, PDISCPUSTATE pCpu) 
     840unsigned ParseInstruction(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, PDISCPUSTATE pCpu) 
    841841{ 
    842842    int  size = 0; 
     
    888888/* Floating point opcode parsing */ 
    889889//***************************************************************************** 
    890 int ParseEscFP(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     890unsigned ParseEscFP(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    891891{ 
    892892    int index; 
    893893    const OPCODE *fpop; 
    894     int size = 0; 
     894    unsigned size = 0; 
    895895 
    896896    pCpu->ModRM = DISReadByte(pCpu, lpszCodeBlock); 
     
    971971 
    972972//***************************************************************************** 
    973 int UseSIB(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     973void UseSIB(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    974974{ 
    975975    int scale, base, index; 
     
    10191019        pParam->base.reg_gen32 = base; 
    10201020    } 
    1021     return 0;   //already fetched everything in ParseSIB 
    1022 } 
    1023 //***************************************************************************** 
    1024 //***************************************************************************** 
    1025 int ParseSIB(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    1026 { 
    1027     int size = sizeof(uint8_t), base; 
     1021    return;   /* Already fetched everything in ParseSIB; no size returned */ 
     1022} 
     1023//***************************************************************************** 
     1024//***************************************************************************** 
     1025unsigned ParseSIB(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1026{ 
     1027    unsigned size = sizeof(uint8_t), base; 
    10281028 
    10291029    pCpu->SIB = DISReadByte(pCpu, lpszCodeBlock); 
     
    10401040//***************************************************************************** 
    10411041//***************************************************************************** 
    1042 int ParseSIB_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    1043 { 
    1044     int size = sizeof(uint8_t), base; 
     1042unsigned ParseSIB_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1043{ 
     1044    unsigned size = sizeof(uint8_t), base; 
    10451045 
    10461046    pCpu->SIB = DISReadByte(pCpu, lpszCodeBlock); 
     
    10591059// Mod    Reg/Opcode  R/M 
    10601060//***************************************************************************** 
    1061 int UseModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1061unsigned UseModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    10621062{ 
    10631063    int reg   = MODRM_REG(pCpu->ModRM); 
     
    12621262// Query the size of the ModRM parameters and fetch the immediate data (if any) 
    12631263//***************************************************************************** 
    1264 int QueryModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc) 
     1264unsigned QueryModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc) 
    12651265{ 
    12661266    int mod, rm, sibinc; 
    1267     int size = 0; 
     1267    unsigned size = 0; 
    12681268 
    12691269    rm  = MODRM_RM(pCpu->ModRM); 
     
    13401340// Query the size of the ModRM parameters and fetch the immediate data (if any) 
    13411341//***************************************************************************** 
    1342 int QueryModRM_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc) 
     1342unsigned QueryModRM_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu, int *pSibInc) 
    13431343{ 
    13441344    int mod, rm, sibinc; 
    1345     int size = 0; 
     1345    unsigned size = 0; 
    13461346 
    13471347    rm  = MODRM_RM(pCpu->ModRM); 
     
    14111411//***************************************************************************** 
    14121412//***************************************************************************** 
    1413 int ParseIllegal(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1413unsigned ParseIllegal(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14141414{ 
    14151415    AssertFailed(); 
     
    14181418//***************************************************************************** 
    14191419//***************************************************************************** 
    1420 int ParseModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    1421 { 
    1422     int size = sizeof(uint8_t);   //ModRM byte 
     1420unsigned ParseModRM(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1421{ 
     1422    unsigned size = sizeof(uint8_t);   //ModRM byte 
    14231423    int sibinc; 
    14241424 
     
    14351435//***************************************************************************** 
    14361436//***************************************************************************** 
    1437 int ParseModRM_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    1438 { 
    1439     int size = sizeof(uint8_t);   //ModRM byte 
     1437unsigned ParseModRM_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1438{ 
     1439    unsigned size = sizeof(uint8_t);   //ModRM byte 
    14401440    int sibinc; 
    14411441 
     
    14511451//***************************************************************************** 
    14521452//***************************************************************************** 
    1453 int ParseModFence(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1453unsigned ParseModFence(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14541454{ 
    14551455    ////AssertMsgFailed(("??\n")); 
     
    14591459//***************************************************************************** 
    14601460//***************************************************************************** 
    1461 int ParseImmByte(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1461unsigned ParseImmByte(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14621462{ 
    14631463    pParam->parval = DISReadByte(pCpu, lpszCodeBlock); 
     
    14691469//***************************************************************************** 
    14701470//***************************************************************************** 
    1471 int ParseImmByte_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1471unsigned ParseImmByte_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14721472{ 
    14731473    return sizeof(uint8_t); 
     
    14751475//***************************************************************************** 
    14761476//***************************************************************************** 
    1477 int ParseImmByteSX(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1477unsigned ParseImmByteSX(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14781478{ 
    14791479    if(pCpu->opmode == CPUMODE_32BIT) 
     
    14931493//***************************************************************************** 
    14941494//***************************************************************************** 
    1495 int ParseImmByteSX_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1495unsigned ParseImmByteSX_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    14961496{ 
    14971497    return sizeof(uint8_t); 
     
    14991499//***************************************************************************** 
    15001500//***************************************************************************** 
    1501 int ParseImmUshort(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1501unsigned ParseImmUshort(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15021502{ 
    15031503    pParam->parval = DISReadWord(pCpu, lpszCodeBlock); 
     
    15091509//***************************************************************************** 
    15101510//***************************************************************************** 
    1511 int ParseImmUshort_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1511unsigned ParseImmUshort_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15121512{ 
    15131513    return sizeof(uint16_t); 
     
    15151515//***************************************************************************** 
    15161516//***************************************************************************** 
    1517 int ParseImmUlong(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1517unsigned ParseImmUlong(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15181518{ 
    15191519    pParam->parval = DISReadDWord(pCpu, lpszCodeBlock); 
     
    15251525//***************************************************************************** 
    15261526//***************************************************************************** 
    1527 int ParseImmUlong_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1527unsigned ParseImmUlong_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15281528{ 
    15291529    return sizeof(uint32_t); 
     
    15311531//***************************************************************************** 
    15321532//***************************************************************************** 
    1533 int ParseImmQword(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1533unsigned ParseImmQword(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15341534{ 
    15351535    pParam->parval = DISReadQWord(pCpu, lpszCodeBlock); 
     
    15421542//***************************************************************************** 
    15431543//***************************************************************************** 
    1544 int ParseImmQword_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1544unsigned ParseImmQword_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15451545{ 
    15461546    return sizeof(uint64_t); 
     
    15481548//***************************************************************************** 
    15491549//***************************************************************************** 
    1550 int ParseImmV(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1550unsigned ParseImmV(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15511551{ 
    15521552    if(pCpu->opmode == CPUMODE_32BIT) 
     
    15691569//***************************************************************************** 
    15701570//***************************************************************************** 
    1571 int ParseImmV_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1571unsigned ParseImmV_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15721572{ 
    15731573    if(pCpu->opmode == CPUMODE_32BIT) 
     
    15831583// Relative displacement for branches (rel. to next instruction) 
    15841584//***************************************************************************** 
    1585 int ParseImmBRel(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1585unsigned ParseImmBRel(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15861586{ 
    15871587    pParam->parval = DISReadByte(pCpu, lpszCodeBlock); 
     
    15941594// Relative displacement for branches (rel. to next instruction) 
    15951595//***************************************************************************** 
    1596 int ParseImmBRel_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1596unsigned ParseImmBRel_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    15971597{ 
    15981598    return sizeof(char); 
     
    16011601// Relative displacement for branches (rel. to next instruction) 
    16021602//***************************************************************************** 
    1603 int ParseImmVRel(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1603unsigned ParseImmVRel(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    16041604{ 
    16051605    if(pCpu->opmode == CPUMODE_32BIT) 
     
    16231623// Relative displacement for branches (rel. to next instruction) 
    16241624//***************************************************************************** 
    1625 int ParseImmVRel_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1625unsigned ParseImmVRel_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    16261626{ 
    16271627    if(pCpu->opmode == CPUMODE_32BIT) 
     
    16361636//***************************************************************************** 
    16371637//***************************************************************************** 
    1638 int ParseImmAddr(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1638unsigned ParseImmAddr(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    16391639{ 
    16401640    disasmGetPtrString(pCpu, pOp, pParam); 
     
    16891689//***************************************************************************** 
    16901690//***************************************************************************** 
    1691 int ParseImmAddr_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1691unsigned ParseImmAddr_SizeOnly(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    16921692{ 
    16931693    if(pCpu->addrmode == CPUMODE_32BIT) 
     
    17161716//***************************************************************************** 
    17171717//***************************************************************************** 
    1718 int ParseFixedReg(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1718unsigned ParseFixedReg(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    17191719{ 
    17201720    /* 
     
    17861786//***************************************************************************** 
    17871787//***************************************************************************** 
    1788 int ParseXv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1788unsigned ParseXv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    17891789{ 
    17901790    disasmGetPtrString(pCpu, pOp, pParam); 
     
    18061806//***************************************************************************** 
    18071807//***************************************************************************** 
    1808 int ParseXb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1808unsigned ParseXb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    18091809{ 
    18101810    disasmAddStringF(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "DS:ESI" : "DS:SI"); 
     
    18251825//***************************************************************************** 
    18261826//***************************************************************************** 
    1827 int ParseYv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1827unsigned ParseYv(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    18281828{ 
    18291829    disasmGetPtrString(pCpu, pOp, pParam); 
     
    18451845//***************************************************************************** 
    18461846//***************************************************************************** 
    1847 int ParseYb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1847unsigned ParseYb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    18481848{ 
    18491849    disasmAddStringF(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "ES:EDI" : "ES:DI"); 
     
    18641864//***************************************************************************** 
    18651865//***************************************************************************** 
    1866 int ParseTwoByteEsc(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1866unsigned ParseTwoByteEsc(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    18671867{ 
    18681868    const OPCODE *pOpcode; 
     
    19201920//***************************************************************************** 
    19211921//***************************************************************************** 
    1922 int ParseNopPause(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    1923 { 
    1924     int size = 0; 
     1922unsigned ParseNopPause(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1923{ 
     1924    unsigned size = 0; 
    19251925 
    19261926    if (pCpu->prefix & PREFIX_REP) 
     
    19371937//***************************************************************************** 
    19381938//***************************************************************************** 
    1939 int ParseImmGrpl(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1939unsigned ParseImmGrpl(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    19401940{ 
    19411941    int idx = (pCpu->opcode - 0x80) * 8; 
    1942     int size = 0, modrm, reg; 
     1942    unsigned size = 0, modrm, reg; 
    19431943 
    19441944    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    19581958//***************************************************************************** 
    19591959//***************************************************************************** 
    1960 int ParseShiftGrp2(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     1960unsigned ParseShiftGrp2(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    19611961{ 
    19621962    int idx; 
    1963     int size = 0, modrm, reg; 
     1963    unsigned size = 0, modrm, reg; 
    19641964 
    19651965    switch(pCpu->opcode) 
     
    19991999//***************************************************************************** 
    20002000//***************************************************************************** 
    2001 int ParseGrp3(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2001unsigned ParseGrp3(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    20022002{ 
    20032003    int idx = (pCpu->opcode - 0xF6) * 8; 
    2004     int size = 0, modrm, reg; 
     2004    unsigned size = 0, modrm, reg; 
    20052005 
    20062006    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    20212021//***************************************************************************** 
    20222022//***************************************************************************** 
    2023 int ParseGrp4(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2024 { 
    2025     int size = 0, modrm, reg; 
     2023unsigned ParseGrp4(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2024{ 
     2025    unsigned size = 0, modrm, reg; 
    20262026 
    20272027    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    20422042//***************************************************************************** 
    20432043//***************************************************************************** 
    2044 int ParseGrp5(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2045 { 
    2046     int size = 0, modrm, reg; 
     2044unsigned ParseGrp5(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2045{ 
     2046    unsigned size = 0, modrm, reg; 
    20472047 
    20482048    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    20672067// 
    20682068//***************************************************************************** 
    2069 int Parse3DNow(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2070 { 
    2071     int size = 0, modrmsize; 
     2069unsigned Parse3DNow(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2070{ 
     2071    unsigned size = 0, modrmsize; 
    20722072 
    20732073#ifdef DEBUG_Sander 
     
    21002100//***************************************************************************** 
    21012101//***************************************************************************** 
    2102 int ParseGrp6(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2103 { 
    2104     int size = 0, modrm, reg; 
     2102unsigned ParseGrp6(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2103{ 
     2104    unsigned size = 0, modrm, reg; 
    21052105 
    21062106    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    21212121//***************************************************************************** 
    21222122//***************************************************************************** 
    2123 int ParseGrp7(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2124 { 
    2125     int size = 0, modrm, reg, rm, mod; 
     2123unsigned ParseGrp7(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2124{ 
     2125    unsigned size = 0, modrm, reg, rm, mod; 
    21262126 
    21272127    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    21542154//***************************************************************************** 
    21552155//***************************************************************************** 
    2156 int ParseGrp8(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2157 { 
    2158     int size = 0, modrm, reg; 
     2156unsigned ParseGrp8(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2157{ 
     2158    unsigned size = 0, modrm, reg; 
    21592159 
    21602160    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    21752175//***************************************************************************** 
    21762176//***************************************************************************** 
    2177 int ParseGrp9(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2178 { 
    2179     int size = 0, modrm, reg; 
     2177unsigned ParseGrp9(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2178{ 
     2179    unsigned size = 0, modrm, reg; 
    21802180 
    21812181    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    21962196//***************************************************************************** 
    21972197//***************************************************************************** 
    2198 int ParseGrp10(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2199 { 
    2200     int size = 0, modrm, reg; 
     2198unsigned ParseGrp10(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2199{ 
     2200    unsigned size = 0, modrm, reg; 
    22012201 
    22022202    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    22172217//***************************************************************************** 
    22182218//***************************************************************************** 
    2219 int ParseGrp12(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2220 { 
    2221     int size = 0, modrm, reg; 
     2219unsigned ParseGrp12(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2220{ 
     2221    unsigned size = 0, modrm, reg; 
    22222222 
    22232223    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    22432243//***************************************************************************** 
    22442244//***************************************************************************** 
    2245 int ParseGrp13(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2246 { 
    2247     int size = 0, modrm, reg; 
     2245unsigned ParseGrp13(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2246{ 
     2247    unsigned size = 0, modrm, reg; 
    22482248 
    22492249    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    22682268//***************************************************************************** 
    22692269//***************************************************************************** 
    2270 int ParseGrp14(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2271 { 
    2272     int size = 0, modrm, reg; 
     2270unsigned ParseGrp14(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2271{ 
     2272    unsigned size = 0, modrm, reg; 
    22732273 
    22742274    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    22932293//***************************************************************************** 
    22942294//***************************************************************************** 
    2295 int ParseGrp15(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2296 { 
    2297     int size = 0, modrm, reg, mod, rm; 
     2295unsigned ParseGrp15(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2296{ 
     2297    unsigned size = 0, modrm, reg, mod, rm; 
    22982298 
    22992299    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    23192319//***************************************************************************** 
    23202320//***************************************************************************** 
    2321 int ParseGrp16(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
    2322 { 
    2323     int size = 0, modrm, reg; 
     2321unsigned ParseGrp16(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 
     2322{ 
     2323    unsigned size = 0, modrm, reg; 
    23242324 
    23252325    modrm = DISReadByte(pCpu, lpszCodeBlock); 
     
    25112511         int     rc; 
    25122512 
    2513          rc = pCpu->pfnReadBytes(pAddress, &temp, sizeof(temp), (RTUINTPTR)pCpu); 
     2513         rc = pCpu->pfnReadBytes(pAddress, &temp, sizeof(temp), pCpu); 
    25142514         if(VBOX_FAILURE(rc)) 
    25152515         { 
     
    25352535         int     rc; 
    25362536 
    2537          rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), (RTUINTPTR)pCpu); 
     2537         rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), pCpu); 
    25382538         if(VBOX_FAILURE(rc)) 
    25392539         { 
     
    25592559         int     rc; 
    25602560 
    2561          rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), (RTUINTPTR)pCpu); 
     2561         rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), pCpu); 
    25622562         if(VBOX_FAILURE(rc)) 
    25632563         { 
     
    25832583         int     rc; 
    25842584 
    2585          rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), (RTUINTPTR)pCpu); 
     2585         rc = pCpu->pfnReadBytes(pAddress, (uint8_t*)&temp, sizeof(temp), pCpu); 
    25862586         if(VBOX_FAILURE(rc)) 
    25872587         { 
  • trunk/src/VBox/Disassembler/DisasmInternal.h

    r4071 r4953  
    8282__BEGIN_DECLS 
    8383 
    84 int ParseInstruction(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, PDISCPUSTATE pCpu); 
     84unsigned ParseInstruction(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, PDISCPUSTATE pCpu); 
    8585 
    86 int ParseIllegal(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    87 int ParseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    88 int ParseModRM_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    89 int UseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    90 int ParseImmByte(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    91 int ParseImmByte_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    92 int ParseImmByteSX(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    93 int ParseImmByteSX_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    94 int ParseImmBRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    95 int ParseImmBRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    96 int ParseImmUshort(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    97 int ParseImmUshort_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    98 int ParseImmV(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    99 int ParseImmV_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    100 int ParseImmVRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    101 int ParseImmVRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     86unsigned ParseIllegal(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     87unsigned ParseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     88unsigned ParseModRM_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     89unsigned UseModRM(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     90unsigned ParseImmByte(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     91unsigned ParseImmByte_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     92unsigned ParseImmByteSX(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     93unsigned ParseImmByteSX_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     94unsigned ParseImmBRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     95unsigned ParseImmBRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     96unsigned ParseImmUshort(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     97unsigned ParseImmUshort_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     98unsigned ParseImmV(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     99unsigned ParseImmV_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     100unsigned ParseImmVRel(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     101unsigned ParseImmVRel_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    102102 
    103 int ParseImmAddr(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    104 int ParseImmAddr_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    105 int ParseFixedReg(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    106 int ParseImmUlong(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    107 int ParseImmUlong_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    108 int ParseImmQword(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    109 int ParseImmQword_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     103unsigned ParseImmAddr(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     104unsigned ParseImmAddr_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     105unsigned ParseFixedReg(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     106unsigned ParseImmUlong(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     107unsigned ParseImmUlong_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     108unsigned ParseImmQword(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     109unsigned ParseImmQword_SizeOnly(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    110110 
    111 int ParseTwoByteEsc(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    112 int ParseImmGrpl(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    113 int ParseShiftGrp2(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    114 int ParseGrp3(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    115 int ParseGrp4(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    116 int ParseGrp5(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    117 int Parse3DNow(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    118 int ParseGrp6(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    119 int ParseGrp7(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    120 int ParseGrp8(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    121 int ParseGrp9(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    122 int ParseGrp10(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    123 int ParseGrp12(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    124 int ParseGrp13(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    125 int ParseGrp14(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    126 int ParseGrp15(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    127 int ParseGrp16(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    128 int ParseModFence(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
    129 int ParseNopPause(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu); 
     111unsigned