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