VirtualBox

忽略:
時間撮記:
2012-6-12 上午08:40:22 (12 年 以前)
作者:
vboxsync
訊息:

DIS,EM,PGM,PATM: Changed the size and scale members of OP_PARAMETER from uint32_t to uint8_t, saving 4 more bytes.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Disassembler/DisasmReg.cpp

    r41662 r41663  
    260260
    261261    default:
    262         if (pParam->size)
    263             return pParam->size;
     262        if (pParam->cb)
     263            return pParam->cb;
    264264        else //@todo dangerous!!!
    265265            return 4;
     
    523523        // Effective address
    524524        pParamVal->type = PARMTYPE_ADDRESS;
    525         pParamVal->size = pParam->size;
     525        pParamVal->size = pParam->cb;
    526526
    527527        if (pParam->flags & USE_BASE)
     
    651651            // Caller needs to interpret the register according to the instruction (source/target, special value etc)
    652652            pParamVal->type = PARMTYPE_REGISTER;
    653             pParamVal->size = pParam->size;
     653            pParamVal->size = pParam->cb;
    654654            return VINF_SUCCESS;
    655655        }
     
    700700        {
    701701            pParamVal->flags |= PARAM_VAL8;
    702             if (pParam->size == 2)
     702            if (pParam->cb == 2)
    703703            {
    704704                pParamVal->size   = sizeof(uint16_t);
     
    717717            pParamVal->size   = sizeof(uint16_t);
    718718            pParamVal->val.val16 = (uint16_t)pParam->parval;
    719             AssertMsg(pParamVal->size == pParam->size || ((pParam->size == 1) && (pParam->flags & USE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->size, pCtx->eip) );
     719            AssertMsg(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & USE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->cb, pCtx->eip) );
    720720        }
    721721        else
     
    725725            pParamVal->size   = sizeof(uint32_t);
    726726            pParamVal->val.val32 = (uint32_t)pParam->parval;
    727             Assert(pParamVal->size == pParam->size || ((pParam->size == 1) && (pParam->flags & USE_IMMEDIATE32_SX8)) );
     727            Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & USE_IMMEDIATE32_SX8)) );
    728728        }
    729729        else
     
    733733            pParamVal->size   = sizeof(uint64_t);
    734734            pParamVal->val.val64 = pParam->parval;
    735             Assert(pParamVal->size == pParam->size || ((pParam->size == 1) && (pParam->flags & USE_IMMEDIATE64_SX8)) );
     735            Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->flags & USE_IMMEDIATE64_SX8)) );
    736736        }
    737737        else
     
    742742            pParamVal->val.farptr.sel    = (uint16_t)RT_LOWORD(pParam->parval >> 16);
    743743            pParamVal->val.farptr.offset = (uint32_t)RT_LOWORD(pParam->parval);
    744             Assert(pParamVal->size == pParam->size);
     744            Assert(pParamVal->size == pParam->cb);
    745745        }
    746746        else
     
    751751            pParamVal->val.farptr.sel    = (uint16_t)RT_LOWORD(pParam->parval >> 32);
    752752            pParamVal->val.farptr.offset = (uint32_t)(pParam->parval & 0xFFFFFFFF);
    753             Assert(pParam->size == 8);
     753            Assert(pParam->cb == 8);
    754754        }
    755755    }
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette