[Bug target/64405] New: [arm] Invalid codegenaration for ARMv3 and ARMv2
Sergey.Belyashov at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 25 14:36:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64405
Bug ID: 64405
Summary: [arm] Invalid codegenaration for ARMv3 and ARMv2
Product: gcc
Version: 4.8.5
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: Sergey.Belyashov at gmail dot com
I try to compile program for ARMv3 or ARMv2 CPU target using GCC (4.8.x). It
produces assembler code with BX LR instructions (return from function) which
GAS (2.23.2) cannot compile:
Error: selected processor does not support ARM mode `bx lr'
It is work for ARMv4 mode and greater (ARMv4 has no BX <reg> instruction
support, but GAS compiles it as MOV PC,<reg>).
As I know BX <reg> is strongly recommended to be used instead of MOV PC,<reg>
by the ARM architecture manual (section A.4.1.1) but GAS developers says, that
it is GCC bug.
GAS mail archive:
https://lists.gnu.org/archive/html/bug-binutils/2014-10/msg00017.html
More information about the Gcc-bugs
mailing list