target/7815: ARM Bug
matt@mapopolis.com
matt@mapopolis.com
Mon Sep 2 16:16:00 GMT 2002
>Number: 7815
>Category: target
>Synopsis: ARM Bug
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Sep 02 16:16:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Me
>Release: unknown-1.0
>Organization:
>Environment:
Windows GCC for ARM
>Description:
GCC for ARM Bug Report
from Matt Kuenzel (matt@mapopolis.com)
/////////////////////////////////////
command line:
gcc -nostdinc -O1 -I%PALMOS_PATH% -c "bug" -o "bug".o
/////////////////////////////////////
source code:
typedef struct
{
short x;
short y;
}
PointType;
PointType * pixels;
short test1()
{
return pixels[0].x;
}
short test2()
{
return pixels[0].y;
}
short test3()
{
return pixels[1].x;
}
short test4()
{
return pixels[1].y;
}
/////////////////////////////////////
bug.c.o: file format a.out-arm-little
Disassembly of section .text:
00000000 <_test1>:
0: e1a0c00d mov ip, sp
4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
8: e24cb004 sub fp, ip, #4
c: e59f300c ldr r3, 20 <L2>
10: e5933000 ldr r3, [r3]
14: e5930002 ldr r0, [r3, #2] //////// this should be #0 ?
18: e1a00840 mov r0, r0, asr #16
1c: e95ba800 ldmdb fp, {fp, sp, pc}^
00000020 <L2>:
20: 00000000 andeq r0, r0, r0
00000024 <_test2>:
24: e1a0c00d mov ip, sp
28: e92dd800 stmdb sp!, {fp, ip, lr, pc}
2c: e24cb004 sub fp, ip, #4
30: e59f3010 ldr r3, 48 <L5>
34: e5933000 ldr r3, [r3]
38: e5930002 ldr r0, [r3, #2] //////// correct
3c: e1a00800 mov r0, r0, lsl #16
40: e1a00840 mov r0, r0, asr #16
44: e95ba800 ldmdb fp, {fp, sp, pc}^
00000048 <L5>:
48: 00000000 andeq r0, r0, r0
0000004c <_test3>:
4c: e1a0c00d mov ip, sp
50: e92dd800 stmdb sp!, {fp, ip, lr, pc}
54: e24cb004 sub fp, ip, #4
58: e59f3010 ldr r3, 70 <L8>
5c: e5933000 ldr r3, [r3]
60: e5930004 ldr r0, [r3, #4] //////// correct
64: e1a00800 mov r0, r0, lsl #16
68: e1a00840 mov r0, r0, asr #16
6c: e95ba800 ldmdb fp, {fp, sp, pc}^
00000070 <L8>:
70: 00000000 andeq r0, r0, r0
00000074 <_test4>:
74: e1a0c00d mov ip, sp
78: e92dd800 stmdb sp!, {fp, ip, lr, pc}
7c: e24cb004 sub fp, ip, #4
80: e59f3010 ldr r3, 98 <L11>
84: e5933000 ldr r3, [r3]
88: e5930006 ldr r0, [r3, #6] //////// correct
8c: e1a00800 mov r0, r0, lsl #16
90: e1a00840 mov r0, r0, asr #16
94: e95ba800 ldmdb fp, {fp, sp, pc}^
00000098 <L11>:
...
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list