This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
gcc 2.7.2.3 bug, ARM target -
- To: bug-gcc@@gnu.org
- Subject: gcc 2.7.2.3 bug, ARM target -
- From: amolitor at visi dot com
- Date: Thu, 16 Dec 1999 21:15:08 -0600 (CST)
If I have this code:
id
A(tag)
unsigned short tag;
{
bar(tag);
}
and compile is with 'gcc -S foo.c', the resulting .s file
will contain:
_A:
@ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
mov r4, r0
strb r4, [fp, #-22]
mov r5, r4, asr #8
strb r5, [fp, #-21]
ldr r3, [fp, #-22] @ movhi BUSTED. Misaligned load. BOOM.
mov r2, r3, asl #16
mov r3, r2, lsr #16
mov r0, r3
bl _bar
L1:
ldmea fp, {r4, r5, fp, sp, pc}^
No offense, but how the hell did this ARM back end escape into
the world? It's unusably bad, even trivial testing should have turned
these things up.
Thanks,
Andrew Molitor