Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Apr 1997 05:29:39 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, smp@csn.net
Cc:        freebsd-smp@freebsd.org, nishio@caleche.kecl.ntt.co.jp, peter@spinner.dialix.com
Subject:   Re: Tyan ATX1668 problem -- success
Message-ID:  <199704251929.FAA10469@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> No, you can access everything using %ss in assembler - you pay for loading
>> %ss for traps to inner privilege whether you want to or not.  However,
>> prefixes may cost a cycle or two, so it is better to load %ds if you
>> want to do more than a few memory accesses.
>
>excuse my asm ignorance, what would this convert to with your suggested
>technique?

Deleted the commented out lines and add the lines marked `!'.

_Xfastipi32:
	pushl	%eax
	movl	%cr3, %eax
	movl	%eax, %cr3
#	pushl	%ds
#	movl	$KDSEL,%eax
#	movl	%ax,%ds
!	ss
	movl	_apic_base, %eax
!	ss
	movl	$0, APIC_EOI(%eax)
#	popl	%ds
	popl	%eax
	iret

>_apic_base is actually a set of memory-mapped registers in the local
>APIC of the CPU, NOT general memory.

This shouldn't affect the addressing.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704251929.FAA10469>