Changeset 26266 in vbox
- Timestamp:
- Feb 5, 2010 3:31:23 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57325
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmCore.cpp
r25562 r26266 52 52 static int disCoreOne(PDISCPUSTATE pCpu, RTUINTPTR InstructionAddr, unsigned *pcbInstruction); 53 53 #if !defined(DIS_CORE_ONLY) && defined(LOG_ENABLED) 54 static void disasmAddString(char *psz, const char *pszString);55 static void disasmAddStringF(char *psz, uint32_t cbString, const char *pszFormat, ...);54 static void disasmAddString(char *psz, size_t cbString, const char *pszString); 55 static void disasmAddStringF(char *psz, size_t cbString, const char *pszFormat, ...); 56 56 static void disasmAddChar(char *psz, char ch); 57 # define disasmAddStringF1(psz, cb, pszFmt, a1) disasmAddStringF(psz, cb, pszFmt, a1) 58 # define disasmAddStringF2(psz, cb, pszFmt, a1, a2) disasmAddStringF(psz, cb, pszFmt, a1, a2) 59 # define disasmAddStringF3(psz, cb, pszFmt, a1, a2, a3) disasmAddStringF(psz, cb, pszFmt, a1, a2, a3) 57 60 #else 58 # define disasmAddString(psz, pszString) do {} while (0) 59 # ifdef _MSC_VER 60 # define disasmAddStringF __noop 61 # else 62 # define disasmAddStringF(psz, cbString, pszFormat...) do {} while (0) /* Arg wanna get rid of that warning */ 63 # endif 64 # define disasmAddChar(psz, ch) do {} while (0) 61 # define disasmAddString(psz, cb, pszString) do {} while (0) 62 # define disasmAddStringF1(psz, cb, pszFmt, a1) do {} while (0) 63 # define disasmAddStringF2(psz, cb, pszFmt, a1, a2) do {} while (0) 64 # define disasmAddStringF3(psz, cb, pszFmt, a1, a2, a3) do {} while (0) 65 # define disasmAddChar(psz, ch) do {} while (0) 65 66 #endif 66 67 … … 602 603 603 604 if (base == 5 && pCpu->ModRM.Bits.Mod == 0) 604 disasmAddStringF (szTemp, sizeof(szTemp), "%s%s", ppszSIBIndexReg[index], szSIBScale[scale]);605 disasmAddStringF2(szTemp, sizeof(szTemp), "%s%s", ppszSIBIndexReg[index], szSIBScale[scale]); 605 606 else 606 disasmAddStringF (szTemp, sizeof(szTemp), "%s+%s%s", ppszSIBBaseReg[base], ppszSIBIndexReg[index], szSIBScale[scale]);607 disasmAddStringF3(szTemp, sizeof(szTemp), "%s+%s%s", ppszSIBBaseReg[base], ppszSIBIndexReg[index], szSIBScale[scale]); 607 608 } 608 609 else 609 610 { 610 611 if (base != 5 || pCpu->ModRM.Bits.Mod != 0) 611 disasmAddStringF (szTemp, sizeof(szTemp), "%s", ppszSIBBaseReg[base]);612 disasmAddStringF1(szTemp, sizeof(szTemp), "%s", ppszSIBBaseReg[base]); 612 613 } 613 614 … … 615 616 { 616 617 // [scaled index] + disp32 617 disasmAddString(pParam->szParam, &szTemp[0]);618 disasmAddString(pParam->szParam, sizeof(pParam->szParam), &szTemp[0]); 618 619 if (pCpu->addrmode == CPUMODE_32BIT) 619 620 { … … 633 634 else 634 635 { 635 disasmAddString(pParam->szParam, s zTemp);636 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szTemp); 636 637 637 638 pParam->flags |= USE_BASE | regtype; … … 738 739 pParam->base.reg_ctrl = reg; 739 740 740 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "CR%d", pParam->base.reg_ctrl);741 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "CR%d", pParam->base.reg_ctrl); 741 742 return 0; 742 743 743 744 case OP_PARM_D: //debug register 744 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "DR%d", reg);745 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "DR%d", reg); 745 746 pParam->flags |= USE_REG_DBG; 746 747 pParam->base.reg_dbg = reg; … … 749 750 case OP_PARM_P: //MMX register 750 751 reg &= 7; /* REX.R has no effect here */ 751 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "MM%d", reg);752 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "MM%d", reg); 752 753 pParam->flags |= USE_REG_MMX; 753 754 pParam->base.reg_mmx = reg; … … 762 763 case OP_PARM_T: //test register 763 764 reg &= 7; /* REX.R has no effect here */ 764 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "TR%d", reg);765 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "TR%d", reg); 765 766 pParam->flags |= USE_REG_TEST; 766 767 pParam->base.reg_test = reg; … … 774 775 775 776 case OP_PARM_V: //XMM register 776 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "XMM%d", reg);777 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "XMM%d", reg); 777 778 pParam->flags |= USE_REG_XMM; 778 779 pParam->base.reg_xmm = reg; … … 814 815 pParam->flags |= USE_RIPDISPLACEMENT32; 815 816 pParam->disp32 = pCpu->disp; 816 disasmAddString F(pParam->szParam, sizeof(pParam->szParam), "RIP+");817 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "RIP+"); 817 818 disasmPrintDisp32(pParam); 818 819 } … … 1209 1210 pParam->size = sizeof(uint8_t); 1210 1211 1211 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%02Xh", (uint32_t)pParam->parval);1212 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%02Xh", (uint32_t)pParam->parval); 1212 1213 return sizeof(uint8_t); 1213 1214 } … … 1227 1228 pParam->flags |= USE_IMMEDIATE32_SX8; 1228 1229 pParam->size = sizeof(uint32_t); 1229 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval);1230 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval); 1230 1231 } 1231 1232 else … … 1235 1236 pParam->flags |= USE_IMMEDIATE64_SX8; 1236 1237 pParam->size = sizeof(uint64_t); 1237 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%016RX64h", pParam->parval);1238 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%016RX64h", pParam->parval); 1238 1239 } 1239 1240 else … … 1242 1243 pParam->flags |= USE_IMMEDIATE16_SX8; 1243 1244 pParam->size = sizeof(uint16_t); 1244 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint16_t)pParam->parval);1245 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint16_t)pParam->parval); 1245 1246 } 1246 1247 return sizeof(uint8_t); … … 1260 1261 pParam->size = sizeof(uint16_t); 1261 1262 1262 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint16_t)pParam->parval);1263 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint16_t)pParam->parval); 1263 1264 return sizeof(uint16_t); 1264 1265 } … … 1277 1278 pParam->size = sizeof(uint32_t); 1278 1279 1279 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval);1280 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval); 1280 1281 return sizeof(uint32_t); 1281 1282 } … … 1294 1295 pParam->size = sizeof(uint64_t); 1295 1296 1296 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%08X", (uint32_t)pParam->parval);1297 disasmAddStringF(&pParam->szParam[9], sizeof(pParam->szParam)-9, "%08Xh", (uint32_t)(pParam->parval >> 32));1297 disasmAddStringF2(pParam->szParam, sizeof(pParam->szParam), "0%08X%08Xh", 1298 (uint32_t)pParam->parval, (uint32_t)(pParam->parval >> 32)); 1298 1299 return sizeof(uint64_t); 1299 1300 } … … 1314 1315 pParam->size = sizeof(uint32_t); 1315 1316 1316 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval);1317 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval); 1317 1318 return sizeof(uint32_t); 1318 1319 } … … 1324 1325 pParam->size = sizeof(uint64_t); 1325 1326 1326 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%RX64h", pParam->parval);1327 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%RX64h", pParam->parval); 1327 1328 return sizeof(uint64_t); 1328 1329 } … … 1333 1334 pParam->size = sizeof(uint16_t); 1334 1335 1335 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint32_t)pParam->parval);1336 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint32_t)pParam->parval); 1336 1337 return sizeof(uint16_t); 1337 1338 } … … 1360 1361 pParam->size = sizeof(uint16_t); 1361 1362 1362 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint32_t)pParam->parval);1363 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%04Xh", (uint32_t)pParam->parval); 1363 1364 return sizeof(uint16_t); 1364 1365 } … … 1371 1372 pParam->flags |= USE_IMMEDIATE64; 1372 1373 pParam->size = sizeof(uint64_t); 1373 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%RX64h", pParam->parval);1374 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%RX64h", pParam->parval); 1374 1375 } 1375 1376 else … … 1378 1379 pParam->flags |= USE_IMMEDIATE32; 1379 1380 pParam->size = sizeof(uint32_t); 1380 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval);1381 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval); 1381 1382 } 1382 1383 return sizeof(uint32_t); … … 1402 1403 pParam->size = sizeof(uint8_t); 1403 1404 1404 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), " (0%02Xh)", (uint32_t)pParam->parval);1405 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), " (0%02Xh)", (uint32_t)pParam->parval); 1405 1406 return sizeof(char); 1406 1407 } … … 1423 1424 pParam->size = sizeof(int32_t); 1424 1425 1425 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), " (0%08Xh)", (uint32_t)pParam->parval);1426 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), " (0%08Xh)", (uint32_t)pParam->parval); 1426 1427 return sizeof(int32_t); 1427 1428 } … … 1434 1435 pParam->size = sizeof(int64_t); 1435 1436 1436 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), " (0%RX64h)", pParam->parval);1437 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), " (0%RX64h)", pParam->parval); 1437 1438 return sizeof(int32_t); 1438 1439 } … … 1443 1444 pParam->size = sizeof(int16_t); 1444 1445 1445 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), " (0%04Xh)", (uint32_t)pParam->parval);1446 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), " (0%04Xh)", (uint32_t)pParam->parval); 1446 1447 return sizeof(int16_t); 1447 1448 } … … 1471 1472 pParam->size = sizeof(uint16_t) + sizeof(uint32_t); 1472 1473 1473 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04X:0%08Xh", (uint32_t)(pParam->parval>>32), (uint32_t)pParam->parval);1474 disasmAddStringF2(pParam->szParam, sizeof(pParam->szParam), "0%04X:0%08Xh", (uint32_t)(pParam->parval>>32), (uint32_t)pParam->parval); 1474 1475 return sizeof(uint32_t) + sizeof(uint16_t); 1475 1476 } … … 1484 1485 pParam->size = sizeof(uint32_t); 1485 1486 1486 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "[0%08Xh]", pParam->disp32);1487 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "[0%08Xh]", pParam->disp32); 1487 1488 return sizeof(uint32_t); 1488 1489 } … … 1501 1502 pParam->size = sizeof(uint64_t); 1502 1503 1503 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "[0%08X%08Xh]", (uint32_t)(pParam->disp64 >> 32), (uint32_t)pParam->disp64);1504 disasmAddStringF2(pParam->szParam, sizeof(pParam->szParam), "[0%08X%08Xh]", (uint32_t)(pParam->disp64 >> 32), (uint32_t)pParam->disp64); 1504 1505 return sizeof(uint64_t); 1505 1506 } … … 1512 1513 pParam->size = 2*sizeof(uint16_t); 1513 1514 1514 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "0%04X:0%04Xh", (uint32_t)(pParam->parval>>16), (uint16_t)pParam->parval );1515 disasmAddStringF2(pParam->szParam, sizeof(pParam->szParam), "0%04X:0%04Xh", (uint32_t)(pParam->parval>>16), (uint16_t)pParam->parval ); 1515 1516 return sizeof(uint32_t); 1516 1517 } … … 1525 1526 pParam->size = sizeof(uint16_t); 1526 1527 1527 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "[0%04Xh]", (uint32_t)pParam->disp16);1528 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "[0%04Xh]", (uint32_t)pParam->disp16); 1528 1529 return sizeof(uint16_t); 1529 1530 } … … 1666 1667 { 1667 1668 disasmGetPtrString(pCpu, pOp, pParam); 1668 disasmAddString F(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "DS:ESI" : "DS:SI");1669 disasmAddString(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "DS:ESI" : "DS:SI"); 1669 1670 1670 1671 pParam->flags |= USE_POINTER_DS_BASED; … … 1691 1692 unsigned ParseXb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 1692 1693 { 1693 disasmAddString F(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "DS:ESI" : "DS:SI");1694 disasmAddString(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "DS:ESI" : "DS:SI"); 1694 1695 1695 1696 pParam->flags |= USE_POINTER_DS_BASED; … … 1717 1718 { 1718 1719 disasmGetPtrString(pCpu, pOp, pParam); 1719 disasmAddString F(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "ES:EDI" : "ES:DI");1720 disasmAddString(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "ES:EDI" : "ES:DI"); 1720 1721 1721 1722 pParam->flags |= USE_POINTER_ES_BASED; … … 1742 1743 unsigned ParseYb(RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 1743 1744 { 1744 disasmAddString F(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "ES:EDI" : "ES:DI");1745 disasmAddString(pParam->szParam, sizeof(pParam->szParam), (pCpu->addrmode == CPUMODE_32BIT) ? "ES:EDI" : "ES:DI"); 1745 1746 1746 1747 pParam->flags |= USE_POINTER_ES_BASED; … … 2350 2351 idx += (USE_REG_SPL - USE_REG_AH); 2351 2352 } 2352 disasmAddString(pParam->szParam, s zModRMReg8[idx]);2353 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMReg8[idx]); 2353 2354 2354 2355 pParam->flags |= USE_REG_GEN8; … … 2357 2358 2358 2359 case OP_PARM_w: 2359 disasmAddString(pParam->szParam, s zModRMReg16[idx]);2360 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMReg16[idx]); 2360 2361 Assert(idx < (pCpu->prefix & PREFIX_REX) ? 16 : 8); 2361 2362 … … 2365 2366 2366 2367 case OP_PARM_d: 2367 disasmAddString(pParam->szParam, s zModRMReg32[idx]);2368 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMReg32[idx]); 2368 2369 Assert(idx < (pCpu->prefix & PREFIX_REX) ? 16 : 8); 2369 2370 … … 2373 2374 2374 2375 case OP_PARM_q: 2375 disasmAddString(pParam->szParam, s zModRMReg64[idx]);2376 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMReg64[idx]); 2376 2377 pParam->flags |= USE_REG_GEN64; 2377 2378 pParam->base.reg_gen = idx; … … 2392 2393 void disasmModRMReg16(PDISCPUSTATE pCpu, PCOPCODE pOp, unsigned idx, POP_PARAMETER pParam) 2393 2394 { 2394 disasmAddString(pParam->szParam, s zModRMReg1616[idx]);2395 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMReg1616[idx]); 2395 2396 pParam->flags |= USE_REG_GEN16; 2396 2397 pParam->base.reg_gen = BaseModRMReg16[idx]; … … 2417 2418 2418 2419 idx = RT_MIN(idx, RT_ELEMENTS(szModRMSegReg)-1); 2419 disasmAddString(pParam->szParam, s zModRMSegReg[idx]);2420 disasmAddString(pParam->szParam, sizeof(pParam->szParam), szModRMSegReg[idx]); 2420 2421 pParam->flags |= USE_REG_SEG; 2421 2422 pParam->base.reg_seg = (DIS_SELREG)idx; … … 2425 2426 void disasmPrintAbs32(POP_PARAMETER pParam) 2426 2427 { 2427 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%08Xh", pParam->disp32);2428 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%08Xh", pParam->disp32); 2428 2429 } 2429 2430 //***************************************************************************** … … 2431 2432 void disasmPrintDisp32(POP_PARAMETER pParam) 2432 2433 { 2433 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%08Xh", pParam->disp32);2434 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%08Xh", pParam->disp32); 2434 2435 } 2435 2436 //***************************************************************************** … … 2437 2438 void disasmPrintDisp64(POP_PARAMETER pParam) 2438 2439 { 2439 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%16RX64h", pParam->disp64);2440 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%16RX64h", pParam->disp64); 2440 2441 } 2441 2442 //***************************************************************************** … … 2443 2444 void disasmPrintDisp8(POP_PARAMETER pParam) 2444 2445 { 2445 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%d", pParam->disp8);2446 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%d", pParam->disp8); 2446 2447 } 2447 2448 //***************************************************************************** … … 2449 2450 void disasmPrintDisp16(POP_PARAMETER pParam) 2450 2451 { 2451 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%04Xh", pParam->disp16);2452 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%04Xh", pParam->disp16); 2452 2453 } 2453 2454 //***************************************************************************** … … 2482 2483 2483 2484 case OP_PARM_b: 2484 disasmAddString(pParam->szParam, "byte ptr ");2485 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "byte ptr "); 2485 2486 break; 2486 2487 2487 2488 case OP_PARM_w: 2488 disasmAddString(pParam->szParam, "word ptr ");2489 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "word ptr "); 2489 2490 break; 2490 2491 2491 2492 case OP_PARM_d: 2492 disasmAddString(pParam->szParam, "dword ptr ");2493 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "dword ptr "); 2493 2494 break; 2494 2495 2495 2496 case OP_PARM_q: 2496 2497 case OP_PARM_dq: 2497 disasmAddString(pParam->szParam, "qword ptr ");2498 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "qword ptr "); 2498 2499 break; 2499 2500 2500 2501 case OP_PARM_p: 2501 disasmAddString(pParam->szParam, "far ptr ");2502 disasmAddString(pParam->szParam, sizeof(pParam->szParam), "far ptr "); 2502 2503 break; 2503 2504 … … 2511 2512 } 2512 2513 if (pCpu->prefix & PREFIX_SEG) 2513 disasmAddStringF (pParam->szParam, sizeof(pParam->szParam), "%s:", szModRMSegReg[pCpu->enmPrefixSeg]);2514 disasmAddStringF1(pParam->szParam, sizeof(pParam->szParam), "%s:", szModRMSegReg[pCpu->enmPrefixSeg]); 2514 2515 } 2515 2516 //***************************************************************************** … … 2535 2536 return 0; 2536 2537 #else 2537 return *(uint8_t *) pAddress;2538 return *(uint8_t *)(uintptr_t)pAddress; 2538 2539 #endif 2539 2540 } … … 2559 2560 return 0; 2560 2561 #else 2561 return *(uint16_t *) pAddress;2562 return *(uint16_t *)(uintptr_t)pAddress; 2562 2563 #endif 2563 2564 } … … 2583 2584 return 0; 2584 2585 #else 2585 return *(uint32_t *) pAddress;2586 return *(uint32_t *)(uintptr_t)pAddress; 2586 2587 #endif 2587 2588 } … … 2608 2609 return 0; 2609 2610 #else 2610 return *(uint64_t *) pAddress;2611 return *(uint64_t *)(uintptr_t)pAddress; 2611 2612 #endif 2612 2613 } … … 2615 2616 //***************************************************************************** 2616 2617 //***************************************************************************** 2617 void disasmAddString(char *psz, const char *pszAdd) 2618 { 2618 void disasmAddString(char *psz, size_t size, const char *pszAdd) 2619 { 2620 NOREF(size); 2619 2621 strcat(psz, pszAdd); 2620 2622 } 2621 2623 //***************************************************************************** 2622 2624 //***************************************************************************** 2623 void disasmAddStringF(char *psz, uint32_t size, const char *pszFormat, ...)2625 void disasmAddStringF(char *psz, size_t size, const char *pszFormat, ...) 2624 2626 { 2625 2627 va_list args; 2626 2628 va_start(args, pszFormat); 2627 RTStrPrintfV(psz + strlen(psz), size, pszFormat, args); 2629 size_t cchCur = strlen(psz); 2630 RTStrPrintfV(psz + cchCur, size - cchCur, pszFormat, args); 2628 2631 va_end(args); 2629 2632 }
Note:
See TracChangeset
for help on using the changeset viewer.