[PR40523] GCC generates invalid instructions when building for Thumb-2 on armel
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gcc |
Fix Released
|
Undecided
|
Unassigned | ||
gcc-4.3 (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Jaunty |
Won't Fix
|
Undecided
|
Unassigned | ||
gcc-4.4 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Jaunty |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: gcc-4.3
When building for the Thumb-2 instruction set, GCC appears to generate Thumb2 loads and stores with invalid address offsets and base register writeback. The Thumb-2 instruction set does not support the full offset range for these instructions, causing the assembler to fail.
The failure is observed as follows:
g++ -march=armv7 -mthumb -O2 -c asbug.c++
/tmp/ccrSTYGR.
Line 545 of the generated assembler is:
ldr r2, [sl, #264]!
However, the allowed offset range for this instruction is restricted to be <256.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu jaunty (development branch)
Release: 9.04
Codename: jaunty
$ apt-cache policy gcc-4.3
gcc-4.3:
Installed: 4.3.3-5ubuntu4
Candidate: 4.3.3-5ubuntu4
Version table:
*** 4.3.3-5ubuntu4 0
500 http://
100 /var/lib/
Changed in gcc-4.4 (Ubuntu): | |
status: | New → Fix Released |
tags: | added: arm |
tags: |
added: armel removed: arm |
Changed in gcc-4.3 (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
summary: |
- GCC generates invalid instructions when building for Thumb-2 on armel + [PR40523] GCC generates invalid instructions when building for Thumb-2 + on armel |
Changed in gcc: | |
status: | Unknown → In Progress |
Changed in gcc-4.4 (Ubuntu Jaunty): | |
status: | New → Invalid |
tags: | removed: thumb2 |
is this fixed on the trunk?