http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55393



--- Comment #2 from Clay Harris <cosmos at claycon dot org> 2012-11-20 07:46:15 
UTC ---

I shouldn't write bug reports when I've been awake for 24 hours.



The bit 63 reference was for one more 9 in num, which got missed

with a cut & paste error.  In any case, the IMUL instruction is doing

what its supposed to for the C code (and executes faster than MUL).

The handling of the sign bit would be wrong, except that we're

throwing away the upper half of the product, where the discrepancy

would occur.



It would be very convenient for overflow testing to have the upper

half (or at least the Carry flag), but alas gcc doesn't seem to have

a way to do that since long long int stopped being 128 bits in 64bit

mode.



Please close this bug as INVALID.

Reply via email to