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