This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/33111] New: Bad code generation with -O2 (ARM 7 architecture)
- From: "gressau at optusnet dot com dot au" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Aug 2007 07:49:05 -0000
- Subject: [Bug c/33111] New: Bad code generation with -O2 (ARM 7 architecture)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
#define UIP_LLH_LEN 10000
#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])
#define u8_t unsigned char
#define u16_t unsigned short
#define UIP_BUFSIZE 1000
typedef struct {
/* IP header. */
u8_t vhl,
tos,
len[2],
ipid[2],
ipoffset[2],
ttl,
proto;
u16_t ipchksum;
u16_t srcipaddr[2],
destipaddr[2];
/* TCP header. */
u16_t srcport,
destport;
u8_t seqno[4],
ackno[4],
tcpoffset,
flags,
wnd[2];
u16_t tcpchksum;
u8_t urgp[2];
u8_t optdata[4];
} uip_tcpip_hdr;
u8_t uip_buf[UIP_BUFSIZE+2];
volatile u8_t uip_acc32[4];
int jaroslav;
int main(void)
{
if((BUF->ackno[0] == uip_acc32[0]) &&
(BUF->ackno[1] == uip_acc32[1]) &&
(BUF->ackno[2] == uip_acc32[2]) &&
(BUF->ackno[3] == uip_acc32[3]))
jaroslav++;
return 1;
}
.file "main.c"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r0, .L10
ldr r1, .L10+4
ldrb r2, [r0, #28] @ zero_extendqisi2
ldrb r3, [r1, #0] @ zero_extendqisi2
cmp r2, r3
@ lr needed for prologue
beq .L9
.L2:
mov r0, #1
bx lr
.L9:
ldrb r2, [r1, #1] @ zero_extendqisi2
ldrb r3, [r0, #29] @ zero_extendqisi2
cmp r3, r2
bne .L2
ldrb r2, [r1, #2] @ zero_extendqisi2
ldrb r3, [r0, #30] @ zero_extendqisi2
cmp r3, r2
bne .L2
ldrb r2, [r1, #3] @ zero_extendqisi2
ldrb r3, [r0, #31] @ zero_extendqisi2
cmp r3, r2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!I THINK CC's OF THIS
COMPARE NEVER GET LOOKED AT
ldreq r2, .L10+8
ldreq r3, [r2, #0]
addeq r3, r3, #1
streq r3, [r2, #0]
b .L2
.L11:
.align 2
.L10:
.word uip_buf+10000
.word uip_acc32
.word jaroslav
.size main, .-main
.comm uip_buf,1002,1
.comm uip_acc32,4,1
.comm jaroslav,4,4
.ident "GCC: (GNU) 4.2.0"
--
Summary: Bad code generation with -O2 (ARM 7 architecture)
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gressau at optusnet dot com dot au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33111