vbox的更動 41678 路徑 trunk/src/VBox/Disassembler/DisasmReg.cpp
- 時間撮記:
- 2012-6-13 上午09:37:47 (12 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Disassembler/DisasmReg.cpp
r41676 r41678 268 268 { 269 269 /* Guess segment register by parameter type. */ 270 if (pParam->f lags& (DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_GEN16))270 if (pParam->fUse & (DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_GEN16)) 271 271 { 272 272 AssertCompile(USE_REG_ESP == USE_REG_RSP); … … 509 509 memset(pParamVal, 0, sizeof(*pParamVal)); 510 510 511 if (DISUSE_IS_EFFECTIVE_ADDR(pParam->f lags))511 if (DISUSE_IS_EFFECTIVE_ADDR(pParam->fUse)) 512 512 { 513 513 // Effective address … … 515 515 pParamVal->size = pParam->cb; 516 516 517 if (pParam->f lags& DISUSE_BASE)518 { 519 if (pParam->f lags& DISUSE_REG_GEN8)517 if (pParam->fUse & DISUSE_BASE) 518 { 519 if (pParam->fUse & DISUSE_REG_GEN8) 520 520 { 521 521 pParamVal->flags |= PARAM_VAL8; … … 523 523 } 524 524 else 525 if (pParam->f lags& DISUSE_REG_GEN16)525 if (pParam->fUse & DISUSE_REG_GEN16) 526 526 { 527 527 pParamVal->flags |= PARAM_VAL16; … … 529 529 } 530 530 else 531 if (pParam->f lags& DISUSE_REG_GEN32)531 if (pParam->fUse & DISUSE_REG_GEN32) 532 532 { 533 533 pParamVal->flags |= PARAM_VAL32; … … 535 535 } 536 536 else 537 if (pParam->f lags& DISUSE_REG_GEN64)537 if (pParam->fUse & DISUSE_REG_GEN64) 538 538 { 539 539 pParamVal->flags |= PARAM_VAL64; … … 547 547 } 548 548 // Note that scale implies index (SIB byte) 549 if (pParam->f lags& DISUSE_INDEX)550 { 551 if (pParam->f lags& DISUSE_REG_GEN16)549 if (pParam->fUse & DISUSE_INDEX) 550 { 551 if (pParam->fUse & DISUSE_REG_GEN16) 552 552 { 553 553 uint16_t val16; … … 556 556 if (RT_FAILURE(DISFetchReg16(pCtx, pParam->index.reg_gen, &val16))) return VERR_INVALID_PARAMETER; 557 557 558 Assert(!(pParam->f lags& DISUSE_SCALE)); /* shouldn't be possible in 16 bits mode */558 Assert(!(pParam->fUse & DISUSE_SCALE)); /* shouldn't be possible in 16 bits mode */ 559 559 560 560 pParamVal->val.val16 += val16; 561 561 } 562 562 else 563 if (pParam->f lags& DISUSE_REG_GEN32)563 if (pParam->fUse & DISUSE_REG_GEN32) 564 564 { 565 565 uint32_t val32; … … 568 568 if (RT_FAILURE(DISFetchReg32(pCtx, pParam->index.reg_gen, &val32))) return VERR_INVALID_PARAMETER; 569 569 570 if (pParam->f lags& DISUSE_SCALE)570 if (pParam->fUse & DISUSE_SCALE) 571 571 val32 *= pParam->scale; 572 572 … … 574 574 } 575 575 else 576 if (pParam->f lags& DISUSE_REG_GEN64)576 if (pParam->fUse & DISUSE_REG_GEN64) 577 577 { 578 578 uint64_t val64; … … 581 581 if (RT_FAILURE(DISFetchReg64(pCtx, pParam->index.reg_gen, &val64))) return VERR_INVALID_PARAMETER; 582 582 583 if (pParam->f lags& DISUSE_SCALE)583 if (pParam->fUse & DISUSE_SCALE) 584 584 val64 *= pParam->scale; 585 585 … … 590 590 } 591 591 592 if (pParam->f lags& DISUSE_DISPLACEMENT8)592 if (pParam->fUse & DISUSE_DISPLACEMENT8) 593 593 { 594 594 if (pCpu->mode == DISCPUMODE_32BIT) … … 601 601 } 602 602 else 603 if (pParam->f lags& DISUSE_DISPLACEMENT16)603 if (pParam->fUse & DISUSE_DISPLACEMENT16) 604 604 { 605 605 if (pCpu->mode == DISCPUMODE_32BIT) … … 612 612 } 613 613 else 614 if (pParam->f lags& DISUSE_DISPLACEMENT32)614 if (pParam->fUse & DISUSE_DISPLACEMENT32) 615 615 { 616 616 if (pCpu->mode == DISCPUMODE_32BIT) … … 620 620 } 621 621 else 622 if (pParam->f lags& DISUSE_DISPLACEMENT64)622 if (pParam->fUse & DISUSE_DISPLACEMENT64) 623 623 { 624 624 Assert(pCpu->mode == DISCPUMODE_64BIT); … … 626 626 } 627 627 else 628 if (pParam->f lags& DISUSE_RIPDISPLACEMENT32)628 if (pParam->fUse & DISUSE_RIPDISPLACEMENT32) 629 629 { 630 630 Assert(pCpu->mode == DISCPUMODE_64BIT); … … 635 635 } 636 636 637 if (pParam->f lags& (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))637 if (pParam->fUse & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_GEN64|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST)) 638 638 { 639 639 if (parmtype == PARAM_DEST) … … 648 648 pParamVal->type = PARMTYPE_IMMEDIATE; 649 649 650 if (pParam->f lags& DISUSE_REG_GEN8)650 if (pParam->fUse & DISUSE_REG_GEN8) 651 651 { 652 652 pParamVal->flags |= PARAM_VAL8; … … 655 655 } 656 656 else 657 if (pParam->f lags& DISUSE_REG_GEN16)657 if (pParam->fUse & DISUSE_REG_GEN16) 658 658 { 659 659 pParamVal->flags |= PARAM_VAL16; … … 662 662 } 663 663 else 664 if (pParam->f lags& DISUSE_REG_GEN32)664 if (pParam->fUse & DISUSE_REG_GEN32) 665 665 { 666 666 pParamVal->flags |= PARAM_VAL32; … … 669 669 } 670 670 else 671 if (pParam->f lags& DISUSE_REG_GEN64)671 if (pParam->fUse & DISUSE_REG_GEN64) 672 672 { 673 673 pParamVal->flags |= PARAM_VAL64; … … 680 680 pParamVal->type = PARMTYPE_REGISTER; 681 681 } 682 Assert(!(pParam->f lags& DISUSE_IMMEDIATE));682 Assert(!(pParam->fUse & DISUSE_IMMEDIATE)); 683 683 return VINF_SUCCESS; 684 684 } 685 685 686 if (pParam->f lags& DISUSE_IMMEDIATE)686 if (pParam->fUse & DISUSE_IMMEDIATE) 687 687 { 688 688 pParamVal->type = PARMTYPE_IMMEDIATE; 689 if (pParam->f lags& (DISUSE_IMMEDIATE8|DISUSE_IMMEDIATE8_REL))689 if (pParam->fUse & (DISUSE_IMMEDIATE8|DISUSE_IMMEDIATE8_REL)) 690 690 { 691 691 pParamVal->flags |= PARAM_VAL8; … … 702 702 } 703 703 else 704 if (pParam->f lags& (DISUSE_IMMEDIATE16|DISUSE_IMMEDIATE16_REL|DISUSE_IMMEDIATE_ADDR_0_16|DISUSE_IMMEDIATE16_SX8))704 if (pParam->fUse & (DISUSE_IMMEDIATE16|DISUSE_IMMEDIATE16_REL|DISUSE_IMMEDIATE_ADDR_0_16|DISUSE_IMMEDIATE16_SX8)) 705 705 { 706 706 pParamVal->flags |= PARAM_VAL16; 707 707 pParamVal->size = sizeof(uint16_t); 708 708 pParamVal->val.val16 = (uint16_t)pParam->parval; 709 AssertMsg(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->f lags& DISUSE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->cb, pCtx->eip) );710 } 711 else 712 if (pParam->f lags& (DISUSE_IMMEDIATE32|DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE_ADDR_0_32|DISUSE_IMMEDIATE32_SX8))709 AssertMsg(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE16_SX8)), ("pParamVal->size %d vs %d EIP=%RX32\n", pParamVal->size, pParam->cb, pCtx->eip) ); 710 } 711 else 712 if (pParam->fUse & (DISUSE_IMMEDIATE32|DISUSE_IMMEDIATE32_REL|DISUSE_IMMEDIATE_ADDR_0_32|DISUSE_IMMEDIATE32_SX8)) 713 713 { 714 714 pParamVal->flags |= PARAM_VAL32; 715 715 pParamVal->size = sizeof(uint32_t); 716 716 pParamVal->val.val32 = (uint32_t)pParam->parval; 717 Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->f lags& DISUSE_IMMEDIATE32_SX8)) );718 } 719 else 720 if (pParam->f lags& (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_REL | DISUSE_IMMEDIATE64_SX8))717 Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE32_SX8)) ); 718 } 719 else 720 if (pParam->fUse & (DISUSE_IMMEDIATE64 | DISUSE_IMMEDIATE64_REL | DISUSE_IMMEDIATE64_SX8)) 721 721 { 722 722 pParamVal->flags |= PARAM_VAL64; 723 723 pParamVal->size = sizeof(uint64_t); 724 724 pParamVal->val.val64 = pParam->parval; 725 Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->f lags& DISUSE_IMMEDIATE64_SX8)) );726 } 727 else 728 if (pParam->f lags& (DISUSE_IMMEDIATE_ADDR_16_16))725 Assert(pParamVal->size == pParam->cb || ((pParam->cb == 1) && (pParam->fUse & DISUSE_IMMEDIATE64_SX8)) ); 726 } 727 else 728 if (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_16)) 729 729 { 730 730 pParamVal->flags |= PARAM_VALFARPTR16; … … 735 735 } 736 736 else 737 if (pParam->f lags& (DISUSE_IMMEDIATE_ADDR_16_32))737 if (pParam->fUse & (DISUSE_IMMEDIATE_ADDR_16_32)) 738 738 { 739 739 pParamVal->flags |= PARAM_VALFARPTR32; … … 767 767 { 768 768 NOREF(pCpu); 769 if (pParam->f lags& (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST))769 if (pParam->fUse & (DISUSE_REG_GEN8|DISUSE_REG_GEN16|DISUSE_REG_GEN32|DISUSE_REG_FP|DISUSE_REG_MMX|DISUSE_REG_XMM|DISUSE_REG_CR|DISUSE_REG_DBG|DISUSE_REG_SEG|DISUSE_REG_TEST)) 770 770 { 771 if (pParam->f lags& DISUSE_REG_GEN8)771 if (pParam->fUse & DISUSE_REG_GEN8) 772 772 { 773 773 uint8_t *pu8Reg; … … 780 780 } 781 781 else 782 if (pParam->f lags& DISUSE_REG_GEN16)782 if (pParam->fUse & DISUSE_REG_GEN16) 783 783 { 784 784 uint16_t *pu16Reg; … … 791 791 } 792 792 else 793 if (pParam->f lags& DISUSE_REG_GEN32)793 if (pParam->fUse & DISUSE_REG_GEN32) 794 794 { 795 795 uint32_t *pu32Reg; … … 802 802 } 803 803 else 804 if (pParam->f lags& DISUSE_REG_GEN64)804 if (pParam->fUse & DISUSE_REG_GEN64) 805 805 { 806 806 uint64_t *pu64Reg;
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器