Changeset 10272 in vbox for trunk/src/VBox/Disassembler
- Timestamp:
- Jul 5, 2008 1:13:50 PM (16 years ago)
- Location:
- trunk/src/VBox/Disassembler
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmCore.cpp
r9921 r10272 1179 1179 unsigned ParseImmByteSX(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 1180 1180 { 1181 if (pCpu->opmode == CPUMODE_32BIT) /** @todo In AMD64 mode we're ending up with 16-bit parvals now, see the disassembler _output_ for tstAsmSignExtend-1.asm. */1181 if (pCpu->opmode == CPUMODE_32BIT) 1182 1182 { 1183 1183 pParam->parval = (uint32_t)(int8_t)DISReadByte(pCpu, lpszCodeBlock); … … 1185 1185 pParam->size = sizeof(uint32_t); 1186 1186 disasmAddStringF(pParam->szParam, sizeof(pParam->szParam), "0%08Xh", (uint32_t)pParam->parval); 1187 } 1188 else 1189 if (pCpu->opmode == CPUMODE_64BIT) 1190 { 1191 pParam->parval = (uint64_t)(int8_t)DISReadByte(pCpu, lpszCodeBlock); 1192 pParam->flags |= USE_IMMEDIATE64_SX8; 1193 pParam->size = sizeof(uint64_t); 1194 disasmAddStringF(pParam->szParam, sizeof(pParam->szParam), "0%016RX64h", pParam->parval); 1187 1195 } 1188 1196 else -
trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp
r10203 r10272 780 780 Assert(*pszFmt == 'b' || *pszFmt == 'v' || *pszFmt == 'w' || *pszFmt == 'z'); pszFmt++; 781 781 switch (pParam->flags & ( USE_IMMEDIATE8 | USE_IMMEDIATE16 | USE_IMMEDIATE32 | USE_IMMEDIATE64 782 | USE_IMMEDIATE16_SX8 | USE_IMMEDIATE32_SX8 ))782 | USE_IMMEDIATE16_SX8 | USE_IMMEDIATE32_SX8 | USE_IMMEDIATE64_SX8)) 783 783 { 784 784 case USE_IMMEDIATE8: … … 833 833 PUT_SZ_STRICT("strict byte ", "byte "); 834 834 PUT_NUM_32(pParam->parval); 835 break; 836 837 case USE_IMMEDIATE64_SX8: 838 PUT_SZ_STRICT("strict byte ", "byte "); 839 PUT_NUM_64(pParam->parval); 835 840 break; 836 841 -
trunk/src/VBox/Disassembler/DisasmReg.cpp
r10271 r10272 700 700 } 701 701 else 702 if (pParam->flags & (USE_IMMEDIATE64 | USE_IMMEDIATE64_REL ))702 if (pParam->flags & (USE_IMMEDIATE64 | USE_IMMEDIATE64_REL | USE_IMMEDIATE64_SX8)) 703 703 { 704 704 pParamVal->flags |= PARAM_VAL64; 705 705 pParamVal->size = sizeof(uint64_t); 706 706 pParamVal->val.val64 = pParam->parval; 707 Assert(pParamVal->size == pParam->size );707 Assert(pParamVal->size == pParam->size || ((pParam->size == 1) && (pParam->flags & USE_IMMEDIATE64_SX8)) ); 708 708 } 709 709 else
Note:
See TracChangeset
for help on using the changeset viewer.