The latest ARM reference indicates that the 16-bit Thumb instruction MOVS r1,r2
should be encoded as LSL r1,r2,#0 // 0011 where gas encodes it as ADDS r1,r2,#0 // 1C11 These instructions are different, since the latter clears the C (carry) and V (overflow) flags. gas also encodes MOV r1,r2 as ADDS r1,r2,#0 // 1C11 whereas after ARMv6 this should be encoded as 4611. This ensures none of the flags are set. With Thumb2 available, gas encodes MOVS r1,r8 as MOV r1,r8 // 4611 whereas this should be encoded as EA5F0108. This ensures the flags are set. -- Summary: Encoding for the Thumb MOV{S} instruction Product: binutils Version: 2.20 Status: NEW Severity: normal Priority: P2 Component: gas AssignedTo: unassigned at sources dot redhat dot com ReportedBy: anthony dot fox at cl dot cam dot ac dot uk CC: bug-binutils at gnu dot org GCC host triplet: i386-redhat-linux GCC target triplet: arm-elf http://sourceware.org/bugzilla/show_bug.cgi?id=10810 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils