From owner-freebsd-smp Fri Apr 25 12:31:10 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id MAA06534 for smp-outgoing; Fri, 25 Apr 1997 12:31:10 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id MAA06524 for ; Fri, 25 Apr 1997 12:31:04 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.5/8.6.9) id FAA10469; Sat, 26 Apr 1997 05:29:39 +1000 Date: Sat, 26 Apr 1997 05:29:39 +1000 From: Bruce Evans Message-Id: <199704251929.FAA10469@godzilla.zeta.org.au> To: bde@zeta.org.au, smp@csn.net Subject: Re: Tyan ATX1668 problem -- success Cc: freebsd-smp@freebsd.org, nishio@caleche.kecl.ntt.co.jp, peter@spinner.dialix.com Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >> 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