Changeset 1905 in vbox for trunk/include/iprt
- Timestamp:
- Apr 3, 2007 9:40:26 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/asm.h
r1903 r1905 2899 2899 return u64Result; 2900 2900 # else 2901 uint32_t dummy;2902 uint64_t u64 D;2901 uint32_t u32Dummy; 2902 uint64_t u64Result; 2903 2903 __asm__ __volatile__("mull %%ecx \n\t" /* eax = u64Lo.lo = (u64A.lo * u32B).lo 2904 2904 edx = u64Lo.hi = (u64A.lo * u32B).hi */ … … 2915 2915 "divl %%ecx \n\t" /* eax = u64Hi / u32C 2916 2916 edx = u64Hi % u32C */ 2917 "movl %%eax,%%edi \n\t" /* edi = u64 D.hi = u64Hi / u32C */2917 "movl %%eax,%%edi \n\t" /* edi = u64Result.hi = u64Hi / u32C */ 2918 2918 "movl %%esi,%%eax \n\t" /* eax = u64Lo.lo */ 2919 "divl %%ecx \n\t" /* u64 D.lo */2920 "movl %%edi,%%edx \n\t" /* u64 D.hi */2921 : "=A"(u64 D),2922 "=S"( dummy), "=D"(dummy)2919 "divl %%ecx \n\t" /* u64Result.lo */ 2920 "movl %%edi,%%edx \n\t" /* u64Result.hi */ 2921 : "=A"(u64Result), 2922 "=S"(u32Dummy), "=D"(u32Dummy) 2923 2923 : "a"((uint32_t)u64A), 2924 2924 "S"((uint32_t)(u64A >> 32)), 2925 2925 "c"(u32B), 2926 2926 "D"(u32C)); 2927 return u64 D;2927 return u64Result; 2928 2928 # endif 2929 2929 # else
Note:
See TracChangeset
for help on using the changeset viewer.