https://bugzilla.novell.com/show_bug.cgi?id=222993#c34
--- Comment #34 from Egbert Eich 2007-08-07 09:36:32 MST ---
The offending code is:
void mul_long(u32 s)
{
#ifdef __HAS_LONG_LONG__
u64 res = (u64)M.x86.R_EAX * s;
M.x86.R_EAX = (u32)res;
M.x86.R_EDX = (u32)(res >> 32);
#else
..
#endif
}
..R_EAX and ...R_EDX are both u32.
A quick test didn't reveal any problems here. Upper and lower 32bits were
calculated correctly.
I don't know why the upper bits should be truncated.
On ia32 long long operations are usually done with the help of libgcc.
Could it be that a particular version of this lib had a problem there?
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.