as: i386-Bugs
1
1 9.15.16 AT&T Syntax bugs
1 ------------------------
1
1 The UnixWare assembler, and probably other AT&T derived ix86 Unix
1 assemblers, generate floating point instructions with reversed source
1 and destination registers in certain cases. Unfortunately, gcc and
1 possibly many other programs use this reversed syntax, so we're stuck
1 with it.
1
1 For example
1
1 fsub %st,%st(3)
1 results in '%st(3)' being updated to '%st - %st(3)' rather than the
1 expected '%st(3) - %st'. This happens with all the non-commutative
1 arithmetic floating point operations with two register operands where
1 the source register is '%st' and the destination register is '%st(i)'.
1