[Linux-ia64] Re: [RFC] proposed change for syscall stub

From: David Mosberger <davidm_at_napali.hpl.hp.com>
Date: 2003-01-09 05:32:42
Jim Hull noticed that I posted the wrong code for the syscall stub:
the one I sent out fits in 5 bundles, not 4 as advertised.  The
4-bundle code looks like this:

really_new_syscall_stub:
	adds r2 = SYSINFO_OFF, r13;;
	ld8 r2 = [r2]
	mov r9 = ar.pfs;;
	mov r15 = SYSCALL_NR
	mov b7 = r2
	br.call.sptk.many b6 = b7;;
	cmp.eq p6,p0 = -1, r10
	mov ar.pfs = r9
(p6)	br.cond.spnt.few syscall_error
	br.ret.sptk.many rp;;

The only difference here is that we dirty both b6 and b7, which allows
us to remove one stop bit and hence save one bundle.  On McKinley,
dirtying more scratch branch registers may impact branch target
address prediction accuracy, but the effect is small enough that I
decided to go for better code-density instead.

	--david
Received on Wed Jan 08 10:34:15 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:11 EST