AVR: Fix 64-bit signed fixed-point multiply

The recently added 64-bit signed fixed-point multiply
calculated  |B| but didn't restore it, which is wrong
code when the caller reuses B after the multiplication
in the assumption that the respective callee-saved regs
are unaltered.

This patch stores the sign of B and unclobbers B by
negating it twice when it is negative, instead of only once.

libgcc/
	* config/avr/lib1funcs-fixed.S (__mulQ64_work):
	Restore B = R10..R17 to its orignal value.
1 file changed