Date: Thu, 20 Sep 2001 03:17:18 -0400 (EDT) From: "Andrew R. Reiter" <arr@watson.org> To: Peter Wemm <peter@wemm.org> Cc: Julian Elischer <julian@elischer.org>, John Baldwin <jhb@FreeBSD.ORG>, hackers@FreeBSD.ORG Subject: Re: JKH Project: x86: pcb_ext Message-ID: <Pine.NEB.3.96L.1010920031619.6373A-100000@fledge.watson.org> In-Reply-To: <20010920060311.C6E9B380A@overcee.netplex.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 19 Sep 2001, Peter Wemm wrote: : :One comment: : :- cmpl $0, PCB_USERLDT(%edx) /* if there is one */ :+ movl TD_PROC(%ecx), %eax /* load struct proc from CURTHREAD */ :+ leal P_MD(%eax), %eax /* get mdproc from proc */ :+ cmpl $0, MD_LDT(%eax) /* if there is one */ : : :This can be written as: : movl TD_PROC(%ecx), %eax : cmpl $0, P_MD+MD_LDT(%eax) : :This is evaluated at assemble time. Yea, Kinda dumb on my part :-/ : :And this change: : movl %eax,PCPU(CURRENTLDT) /* store what we have */ : jmp 2f : :-1: pushl %edx /* call a non-trusting routine */ :+1: pushl %eax /* call a non-trusting routine */ : call set_user_ldt /* to check and load the ldt */ :- popl %edx :+ popl %eax : 2: : :is not good.. you still need to save %edx since set_user_ldt is free :to trash it (%edx is the secondary return value from a C function). : Hmm interesting. Thanks. :eg: :0xc02e75c4 <set_user_ldt+36>: mov 0x10(%ebx),%edx :0xc02e75c7 <set_user_ldt+39>: mov %edx,(%eax,%ecx,1) :0xc02e75ca <set_user_ldt+42>: mov 0x14(%ebx),%edx :0xc02e75cd <set_user_ldt+45>: mov %edx,0x4(%eax,%ecx,1) : :The code after this in swtch.s depends on %edx being preserved. : :Cheers, :-Peter :-- :Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au :"All of this is for nothing if we don't go to the stars" - JMS/B5 : : *-------------................................................. | Andrew R. Reiter | arr@fledge.watson.org | "It requires a very unusual mind | to undertake the analysis of the obvious" -- A.N. Whitehead To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1010920031619.6373A-100000>