I have noticed when debugging with gdb that the opcode "de e9" that (in intel syntax) gdb gives out fsubrp st1,st0. But according to the intel docs this fsubp st1,st0. I have also noticed that the opcode for fsubrp st1,st0 gives out fsubp st1,st0. I have not yet tried the other reverse pop instructions but these two are switched. Here is a sample from objdump output which gives an example: 000004b0 <etyBit>: 4b0: ba 01 00 00 00 mov $0x1,%edx 4b5: dd d8 fstp %st(0) 4b7: dd d8 fstp %st(0) 4b9: d9 ee fldz 4bb: dd dc fstp %st(4) 4bd: db 2d 00 00 00 00 fldt 0x0 4c3: db 3d 00 00 00 00 fstpt 0x0 4c9: db 2d 00 00 00 00 fldt 0x0 4cf: db 3d 00 00 00 00 fstpt 0x0 4d5: db 2d 00 00 00 00 fldt 0x0 4db: db 2d 00 00 00 00 fldt 0x0 4e1: de e9 fsubrp %st,%st(1) <---- Here is the error 4e3: da 35 00 00 00 00 fidivl 0x0 I first thought it was an error in gdb but a received an email from Daniel Jacobowitz, from gdb. He said that is was possibly an error in binutils.
Dancie Reeves -- View this message in context: http://www.nabble.com/reversal-of-fsubp-and-fsubrp-tf4791967.html#a13708176 Sent from the Gnu - Binutils - Bugs mailing list archive at Nabble.com. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils