[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/