[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/13215] New: ARM Cortex M3 strexh strexb instructions with same
From: |
hazelnusse at gmail dot com |
Subject: |
[Bug gas/13215] New: ARM Cortex M3 strexh strexb instructions with same registers generates error |
Date: |
Thu, 22 Sep 2011 07:40:12 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=13215
Bug #: 13215
Summary: ARM Cortex M3 strexh strexb instructions with same
registers generates error
Product: binutils
Version: 2.21
Status: NEW
Severity: critical
Priority: P2
Component: gas
AssignedTo: address@hidden
ReportedBy: address@hidden
Classification: Unclassified
Created attachment 5939
--> http://sourceware.org/bugzilla/attachment.cgi?id=5939
example of ARM provided code that makes use of strexh strexb with same
registers
In gas version 2.21.53, when compiling for the Cortex-M3 with -mcpu=cortex-m3
-march=armv7-m, the following instructions generate assembler errors:
strexh r0, r0, [r1]
strexb r0, r0, [r1]
The error messages are:
Error: registers may not be the same -- `strexh r0,r0,[r1]'
Error: registers may not be the same -- `strexb r0,r0,[r1]'
However, according to the ARM documentation of STREX for the Cortex M3 [0],
only the word sized (32-bit) version of the instruction strex has the
restriction that the three registers be unique:
for STREX, Rd must be different from both Rt and Rn
This problem shows up, for example, when trying to compile vendor provided
peripheral libraries that make use of CMSIS. In particular, the core_cm3.[ch]
of CMSIS v1.3, and core_cmInstr.h of CMSIS v2.0 have all of these instructions.
Curiously, even strex r0, r0, [r1] shows up in CMSIS, even though this is
explicitly restricted in [0]. So perhaps even some of the CMSIS code is
breaking the specification of the ARM documentation, not sure.
[0] --
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABFFBJB.html
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
- [Bug gas/13215] New: ARM Cortex M3 strexh strexb instructions with same registers generates error,
hazelnusse at gmail dot com <=