Changeset 62398 in vbox
- Timestamp:
- Jul 21, 2016 1:36:29 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 108948
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r62373 r62398 23 23 #include <VBox/vmm/vm.h> 24 24 #include <iprt/x86.h> 25 #ifdef RT_ARCH_X86 26 # include <iprt/uint128.h> 27 #endif 25 #include <iprt/uint128.h> 28 26 29 27 … … 1155 1153 if ((int64_t)*pu64RDX >= 0) 1156 1154 { 1157 RTUInt128MulU64ByU64(&Result, *pu64RAX, *pu64RDX);1155 RTUInt128MulU64ByU64(&Result, *pu64RAX, u64Factor); 1158 1156 *pu64RAX = Result.s.Lo; 1159 1157 *pu64RDX = Result.s.Hi; … … 1163 1161 else 1164 1162 { 1165 RTUInt128MulU64ByU64(&Result, *pu64RAX, UINT64_C(0) - *pu64RDX);1163 RTUInt128MulU64ByU64(&Result, *pu64RAX, UINT64_C(0) - u64Factor); 1166 1164 if (Result.s.Hi != 0 || Result.s.Lo > UINT64_C(0x8000000000000000)) 1167 1165 *pfEFlags |= X86_EFL_CF | X86_EFL_OF; … … 1172 1170 else 1173 1171 { 1174 if ((int64_t) *pu64RDX>= 0)1175 { 1176 RTUInt128MulU64ByU64(&Result, UINT64_C(0) - *pu64RAX, *pu64RDX);1172 if ((int64_t)u64Factor >= 0) 1173 { 1174 RTUInt128MulU64ByU64(&Result, UINT64_C(0) - *pu64RAX, u64Factor); 1177 1175 if (Result.s.Hi != 0 || Result.s.Lo > UINT64_C(0x8000000000000000)) 1178 1176 *pfEFlags |= X86_EFL_CF | X86_EFL_OF; … … 1182 1180 else 1183 1181 { 1184 RTUInt128MulU64ByU64(&Result, UINT64_C(0) - *pu64RAX, UINT64_C(0) - *pu64RDX);1182 RTUInt128MulU64ByU64(&Result, UINT64_C(0) - *pu64RAX, UINT64_C(0) - u64Factor); 1185 1183 if (Result.s.Hi != 0 || Result.s.Lo >= UINT64_C(0x8000000000000000)) 1186 1184 *pfEFlags |= X86_EFL_CF | X86_EFL_OF;
Note:
See TracChangeset
for help on using the changeset viewer.