[Top][All Lists]
[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug gas/10810] New: Encoding for the Thumb MOV{S} instruction,
anthony dot fox at cl dot cam dot ac dot uk <=