Subject: Re: uvm.page_idle_zero access on bool changes (Re: CVS commit: src/sys)
To: None <port-alpha@netbsd.org, tsutsui@ceres.dti.ne.jp>
From: Tobias Nygren <tnn+nbsd@nygren.pp.se>
List: port-alpha
Date: 02/24/2007 12:36:34
>>
>> Index: alpha/locore.s
>> ===================================================================
>> RCS file: /cvsroot/src/sys/arch/alpha/alpha/locore.s,v
>> retrieving revision 1.109
>> diff -u -r1.109 locore.s
>> --- alpha/locore.s 9 Feb 2007 21:55:01 -0000 1.109
>> +++ alpha/locore.s 24 Feb 2007 10:28:16 -0000
>> @@ -696,7 +696,10 @@
>> ldl t0, sched_whichqs /* look for non-empty queue */
>> bne t0, 4f
>> 2: lda t0, uvm
>> - ldl t0, UVM_PAGE_IDLE_ZERO(t0) /* should we zero some
>> pages? */
>> + ldq_u t1, UVM_PAGE_IDLE_ZERO(t0)
>> + lda t0, UVM_PAGE_IDLE_ZERO(t0) /* should we zero some
>> pages? */
>> + extbl t1, t0, t0
>> + and t0, 0xff, t0
>> beq t0, 3f /* nope. */
>> CALL(uvm_pageidlezero)
>> 3: ldl t0, sched_whichqs /* look for non-empty queue */
>>
>
>
> AARM section (I) 4-53 says that's the intended sequence for loading
> a byte from unaligned storage, so it should be ok.
>
Actually that final "and" is not required. Did gcc emit that?