This is the mail archive of the gcc-help@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]

ARM - register liveness problem


Hi all,

I would like to use register liveness information during the peephole2
phase. The peep2_regno_dead_p() function says that register r4 is live at
instruction marked with (*) in the example below, but i think it is dead
because of the lfmfd instruction. Can anybody help?

One more question: is it possible to read liveness information of flags
(C, Z, etc.) ?

Thanks in advance,
Laszlo Vidacs

----------------------------------------------------------------------
GCC: (GNU) 3.3 20030224 (prerelease)
Build & Host: Linux 2.4.20 i686 unknown, Target: arm-unknown-elf

        ...
	mov	r4, r0	@ 3	*arm_movsi_insn/1
	mov	r0, #8	@ 19	*arm_movsi_insn/1
	bl	func	@ 21	*call_symbol
	mov	r4, r4, asr #16	@ 26	*arm_shiftsi3
	and	r4, r4, #255	@ 27	*arm_andsi3_insn/1
	mov	r1, r4	@ 29	*arm_movsi_insn/1
(*)	mov	r0, #8	@ 28	*arm_movsi_insn/1
	ldmfd	sp!, {r4, lr}	@ 47	sibcall_epilogue
	b	func	@ 30	*sibcall_insn
	.size	foo, .-foo
	.ident	"GCC: (GNU) 3.3 20030224 (prerelease)"


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