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

Reply via email to