[Bug 758082] Re: [armel] segfaults in make check pass when built with optimization

Michael Hope 758082 at bugs.launchpad.net
Sun Apr 17 21:56:27 UTC 2011


lp:~rsandifo/gcc-linaro/lp-758082 fixes this but the code generated is
poor:

foo:
	push	{r1, r2, r3}
	ldr	r3, [r0, #0]
	push	{lr}
	sub	sp, sp, #8
	ldr	r3, [r3, #8]
	subs	r2, r3, #6
	it	ne
	movne	r2, #1
	cmp	r3, #8
	ite	eq
	moveq	r3, #0
	andne	r3, r2, #1
	cbnz	r3, .L1
	movw	r2, #:lower16:stdout
	add	r3, sp, #16
	movt	r2, #:upper16:stdout
	ldr	r1, [sp, #12]
	ldr	r0, [r2, #0]
	mov	r2, r3
	str	r3, [sp, #4]
	bl	vfprintf
.L1:
	add	sp, sp, #8
	pop	{lr}
	add	sp, sp, #12
	bx	lr

r1 doesn't need to be saved.  Ignoring hazards, r0 could be used instead
of r3.  The epilogue is poor due to the two adds.  lr could be pushed
with the initial push.

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to augeas in Ubuntu.
https://bugs.launchpad.net/bugs/758082

Title:
  [armel] segfaults in make check pass when built with optimization



More information about the Ubuntu-server-bugs mailing list