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?