[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] CAS in FC0



oh yes the fields operands is now 4 bad !

well another proposal ?

"if r1 == 0 store_tagged [r2],r3" {
    if (r1 == 0 && !(r1 = (lsu(r2).tag != 1)))
        *r2 = r3;
}

instead of :

"if r1 == 0 store_tagged [r2],r3" {
    if (r1 == 0 && lsu(r2).tag == 1)
        *r2 = r3;
    r3 = (lsu(r2).tag != 1);
}

----- Original Message ----- 
From: Christophe <christophe.avoinne@laposte.net>
To: <f-cpu@seul.org>
Sent: Wednesday, March 20, 2002 10:26 AM
Subject: Re: [f-cpu] CAS in FC0


> Oh sorry i didn't read well you email :
> 
> "if r4==0 store_locked [r1],r3" is in fact a single instrustion as does "if
> r4==0 jump r0,r63" ?
> 
> Is that so, okay what I wrote can be shorter :
> 
> r1 : pointer, r2 : requested value, r3 : new value
> 
> move r2,r4
> move r1,r6
> load_tagged [r1],r2
> xor r2,r4,r1
> if r1 == 0 store_tagged [r6],r3,r1
> jump r0,r63
> 
> 
> To push in a FIFO list :
> 
> move r2,r3 // our node address to push
> loopentry r5
> load_tagged [r1],r2       // read top
> store r2,[r3]                    // node->link = top
> if r0 == 0 store_tagged r3,[r1],r4 // top = node
> if r4 == 0 jump r0,r63             // return to caller if ok
> jump r0,r5
> 
> 
> 
> *************************************************************
> To unsubscribe, send an e-mail to majordomo@seul.org with
> unsubscribe f-cpu       in the body. http://f-cpu.seul.org/

*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/