Changeset 9097 in vbox for trunk/src/VBox
- Timestamp:
- May 25, 2008 10:11:11 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmCore.cpp
r9012 r9097 468 468 pCpu->param1.parval = fpop->param1; 469 469 pCpu->param2.parval = fpop->param2; 470 #if 1 /** @todo bird: why parval above? fmul and similar needs dword/qword data in param. */ 471 pCpu->param1.param = fpop->param1; 472 pCpu->param2.param = fpop->param2; 473 #endif 470 474 } 471 475 else … … 743 747 { /* SIB byte follows ModRM */ 744 748 UseSIB(lpszCodeBlock, pOp, pParam, pCpu); 749 pParam->flags |= USE_EFFICIENT_ADDRESS; 745 750 } 746 751 else … … 750 755 if (pCpu->mode == CPUMODE_32BIT) 751 756 { 752 pParam->flags |= USE_DISPLACEMENT32 ;757 pParam->flags |= USE_DISPLACEMENT32 | USE_EFFICIENT_ADDRESS; 753 758 pParam->disp32 = pCpu->disp; 754 759 disasmPrintDisp32(pParam); … … 756 761 else 757 762 { 758 pParam->flags |= USE_RIPDISPLACEMENT32 ;763 pParam->flags |= USE_RIPDISPLACEMENT32 | USE_EFFICIENT_ADDRESS; 759 764 pParam->disp32 = pCpu->disp; 760 765 disasmAddStringF(pParam->szParam, sizeof(pParam->szParam), "RIP+"); … … 763 768 } 764 769 else {//register address 765 pParam->flags |= USE_BASE ;770 pParam->flags |= USE_BASE | USE_EFFICIENT_ADDRESS; 766 771 disasmModRMReg(pCpu, pOp, rm, pParam, 1); 767 772 } … … 781 786 } 782 787 pParam->disp8 = pCpu->disp; 783 pParam->flags |= USE_DISPLACEMENT8 ;788 pParam->flags |= USE_DISPLACEMENT8 | USE_EFFICIENT_ADDRESS; 784 789 785 790 if (pParam->disp8 != 0) … … 804 809 } 805 810 pParam->disp32 = pCpu->disp; 806 pParam->flags |= USE_DISPLACEMENT32 ;811 pParam->flags |= USE_DISPLACEMENT32 | USE_EFFICIENT_ADDRESS; 807 812 808 813 if (pParam->disp32 != 0) … … 829 834 {//16 bits displacement 830 835 pParam->disp16 = pCpu->disp; 831 pParam->flags |= USE_DISPLACEMENT16 ;836 pParam->flags |= USE_DISPLACEMENT16 | USE_EFFICIENT_ADDRESS; 832 837 disasmPrintDisp16(pParam); 833 838 } 834 839 else 835 840 { 836 pParam->flags |= USE_BASE ;841 pParam->flags |= USE_BASE | USE_EFFICIENT_ADDRESS; 837 842 disasmModRMReg16(pCpu, pOp, rm, pParam); 838 843 } … … 845 850 disasmModRMReg16(pCpu, pOp, rm, pParam); 846 851 pParam->disp8 = pCpu->disp; 847 pParam->flags |= USE_BASE | USE_DISPLACEMENT8 ;852 pParam->flags |= USE_BASE | USE_DISPLACEMENT8 | USE_EFFICIENT_ADDRESS; 848 853 849 854 if (pParam->disp8 != 0) … … 861 866 disasmModRMReg16(pCpu, pOp, rm, pParam); 862 867 pParam->disp16 = pCpu->disp; 863 pParam->flags |= USE_BASE | USE_DISPLACEMENT16 ;868 pParam->flags |= USE_BASE | USE_DISPLACEMENT16 | USE_EFFICIENT_ADDRESS; 864 869 865 870 if (pParam->disp16 != 0) … … 1148 1153 unsigned ParseImmByteSX(RTUINTPTR lpszCodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu) 1149 1154 { 1150 if (pCpu->opmode == CPUMODE_32BIT) 1155 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. */ 1151 1156 { 1152 1157 pParam->parval = (uint32_t)(int8_t)DISReadByte(pCpu, lpszCodeBlock);
Note:
See TracChangeset
for help on using the changeset viewer.