This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/16532] Inefficient jump to epilogue


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-09-28 06:34 -------
Here's the code generated by mainline as of today at -O2 -mcpu=ultrasparc:

FirstOne:
	save	%sp, -112, %sp
	sethi	%hi(64512), %o5
	mov	0, %o4
	sllx	%i0, 32, %g1
	srl	%i1, 0, %i1
	or	%i1, %g1, %g1
	srlx	%g1, 32, %g1
	srlx	%g1, 32, %i4
	mov	%g1, %i5
	or	%o5, 1023, %o5
	and	%i4, %o4, %i4
	sllx	%i0, 32, %g1
	srl	%i1, 0, %i1
	or	%i1, %g1, %g1
	srlx	%g1, 48, %g1
	srlx	%g1, 32, %i2
	mov	%g1, %i3
	orcc	%i2, %i3, %g0
	be,pt	%icc, .LL2
	 and	%i5, %o5, %i5
	sethi	%hi(first_one), %g1
	or	%g1, %lo(first_one), %g1
	return	%i7+8
	 ldub	[%g1+%o3], %o0
.LL2:
	orcc	%i4, %i5, %g0
	be,pt	%icc, .LL5
	 sethi	%hi(64512), %g1
	sethi	%hi(first_one), %g1
	or	%g1, %lo(first_one), %g1
	ldub	[%g1+%i5], %i5
	return	%i7+8
	 add	%o5, 16, %o0
.LL5:
	or	%g1, 1023, %g1
	and	%i1, %g1, %i3
	sllx	%i0, 32, %g1
	srl	%i1, 0, %i1
	or	%i1, %g1, %g1
	srlx	%g1, 16, %g1
	srlx	%g1, 32, %i4
	mov	%g1, %i5
	and	%i4, %o4, %i0
	and	%i5, %o5, %i1
	orcc	%i0, %i1, %g0
	be,pt	%icc, .LL7
	 sethi	%hi(first_one), %g1
	or	%g1, %lo(first_one), %g1
	ldub	[%g1+%i1], %i5
	return	%i7+8
	 add	%o5, 32, %o0
.LL7:
	or	%g1, %lo(first_one), %g1
	ldub	[%g1+%i3], %i5
	return	%i7+8
	 add	%o5, 48, %o0


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]