Bug#425343: [arm] gcc-4.1: bad code and no warning for thumb assembly of arm instruction
Subject: [arm] gcc-4.1: bad code and no warning for thumb assembly of arm instruction
Package: gcc-4.1
Version: 4.1.1-21
Severity: normal
*** Please type your report below this line ***
The assembler generates an incorrect instruction without warning
when assembling this arm instruction in thumb mode:
.code 16
mov r1,r0,lsr #4 // arm instruction
The generated code is the thumb instruction:
movs r1,r0 // .word 0x1c01
and the shift has been ignored silently.
The expected behavior is to generate the equivalent thumb instruction
[equivalent except that thumb mode always sets condition codes
while arm mode does not]:
lsrs r1,r0,#4 // .word 0x0901
Or, the assembler could complain
bad syntax: unexpected ",lsr #4"
But generating bad code with no warning is not acceptable.
$ gcc --version
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
$
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: arm (armv5tel)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-ixp4xx
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages gcc-4.1 depends on:
ii binutils 2.17-3 The GNU assembler, linker and bina
ii cpp-4.1 4.1.1-21 The GNU C preprocessor
ii gcc-4.1-base 4.1.1-21 The GNU Compiler Collection (base
ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries
ii libgcc1 1:4.1.1-21 GCC support library
ii libssp0 4.1.1-21 GCC stack smashing protection libr
Versions of packages gcc-4.1 recommends:
ii libc6-dev 2.3.6.ds1-13 GNU C Library: Development Librari
pn libmudflap0-dev <none> (no description available)
-- no debconf information
--
John Reiser, jreiser@BitWagon.com
Reply to: