Changeset 55497 in vbox for trunk/src/VBox/Disassembler
- Timestamp:
- Apr 28, 2015 10:46:45 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp
r53172 r55497 874 874 } 875 875 876 if (fBase || (fUse & DISUSE_INDEX)) 876 int64_t off3 = off2; 877 if (fBase || (fUse & (DISUSE_INDEX | DISUSE_RIPDISPLACEMENT32))) 877 878 { 878 PUT_C(off 2>= 0 ? '+' : '-');879 if (off 2< 0)880 off 2 = -off2;879 PUT_C(off3 >= 0 ? '+' : '-'); 880 if (off3 < 0) 881 off3 = -off3; 881 882 } 882 883 if (fUse & DISUSE_DISPLACEMENT8) 883 PUT_NUM_8( off 2);884 PUT_NUM_8( off3); 884 885 else if (fUse & DISUSE_DISPLACEMENT16) 885 PUT_NUM_16(off 2);886 PUT_NUM_16(off3); 886 887 else if (fUse & DISUSE_DISPLACEMENT32) 887 PUT_NUM_32(off 2);888 PUT_NUM_32(off3); 888 889 else if (fUse & DISUSE_DISPLACEMENT64) 889 PUT_NUM_64(off 2);890 PUT_NUM_64(off3); 890 891 else 891 892 { 892 PUT_NUM_32(off2); 893 PUT_SZ(" wrt rip"); //?? 893 PUT_NUM_32(off3); 894 PUT_SZ(" wrt rip ("); 895 off2 += pDis->uInstrAddr + pDis->cbInstr; 896 PUT_NUM_64(off2); 897 if (pfnGetSymbol) 898 PUT_SYMBOL((pDis->fPrefix & DISPREFIX_SEG) 899 ? DIS_FMT_SEL_FROM_REG(pDis->idxSegPrefix) 900 : DIS_FMT_SEL_FROM_REG(DISSELREG_DS), 901 pDis->uAddrMode == DISCPUMODE_64BIT 902 ? (uint64_t)off2 903 : pDis->uAddrMode == DISCPUMODE_32BIT 904 ? (uint32_t)off2 905 : (uint16_t)off2, 906 " = ", 907 ')'); 908 else 909 PUT_C(')'); 894 910 } 895 911 } … … 897 913 if (DISUSE_IS_EFFECTIVE_ADDR(fUse)) 898 914 { 899 if (pfnGetSymbol && !fBase && !(fUse & DISUSE_INDEX) && off2 != 0)915 if (pfnGetSymbol && !fBase && !(fUse & (DISUSE_INDEX | DISUSE_RIPDISPLACEMENT32)) && off2 != 0) 900 916 PUT_SYMBOL((pDis->fPrefix & DISPREFIX_SEG) 901 917 ? DIS_FMT_SEL_FROM_REG(pDis->idxSegPrefix) … … 906 922 ? (uint32_t)off2 907 923 : (uint16_t)off2, 908 " (=", ')'); 924 " (=", 925 ')'); 909 926 PUT_C(']'); 910 927 }
Note:
See TracChangeset
for help on using the changeset viewer.