bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/10810] New: Encoding for the Thumb MOV{S} instruction


From: anthony dot fox at cl dot cam dot ac dot uk
Subject: [Bug gas/10810] New: Encoding for the Thumb MOV{S} instruction
Date: 19 Oct 2009 14:35:54 -0000

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]