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

Re: [f-cpu] Conditionnal Load and Store



On Sun, Jul 28, 2002 at 11:59:22PM +0200, Yann Guidon wrote:
[...]
> > > Proposed fixes:
> > >
> > >         a) always use bit 63
> > >         b) always use the most significant bit
> > >         c) drop the MSB condition thing altogether
> > >         d) never build an F-CPU with registers wider than 64 bits
> > 
> > Can we used the usual SIMD bits ? so we will use the 63 or the 31 or the
> > 15 or the 7 bits.
> we don't have enough room in the opcode for that.
> 
> > d) solution aren't possible ! ;p
> i think it was Michael's humour :-)

Of course. c) was meant seriously, though.

> > (i'm for thinking with 256 bits registers).
> me too.
> 
> > I think in that case that we used the register as a scalar
> > value (not a packed one for SIMD stuff). In the case of 256 bits
> > registers, the scalar chunk of 64-32-16-8 bits are still there. If "int"
> > is 64 bits long it's not a hard point to always read the 63th bits of
> > the register. Maybe the 31th will be better (it's a true "C int" size).
> RIP, C.

Hey, *I* like it. But of course `int has 32 bits' is not an argument.

> > solution b) have no sense on a 256 bits register set. It will read the
> > 255th bit but we work only with the 0-63 first bit on scalar operation
> > (that's an other point but : "What a waste by only using a quarter of
> > the register !" (why not using 2 registers set : on scalar and the other
> > SIMD)).
> 
> As i have written before (maybe differently), we don't have enough room
> to specify the "tested" size.
> 
> We only have 3 bits : one bit inverts the result of the 2-bit condition.
> it's rather minimal. but if we select a specific bit inside the register,
> then this involves a mux and even with 4 inputs, the problem is the
> length of the wires (going from bit 63 to bit 8...)
> 
> Another problem is that the instructions that use the 3-bit condition
> also use the 2-bit size field and we don't have any room left !

`jump' has a free bit, and we can free one in `move' if we make sign
extension a separate operation.

Another option is to make `move' a full-word operation (that is, no
size bits at all, like jump) and reconsider `widen' for sign and zero
extension. That way, we can use 6 bits for the condition code.

-- 
 Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
 "All I wanna do is have a little fun before I die"
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/