[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [f-cpu] GCC 3.1 for F-CPU port
hi !
>Hi,
>there was a lot of discussion about ISA.
it is one of the most discussed subject since 1998 :-)
> Lets create assembler, emulator and compiler
there are several F-CPU assemblers now.
even though i don't know which one to trust :-P
everyone with a specific syntax, unique features etc ...
emulator is a big problem. it will take time
before it's completely solved but i am confident.
compiler ... well ... you seem to have taken over
the past efforts :-)))
> and test it (boot
>linux kernel for example and count cycles it takes
>until /sbin/init is launched).
i don't think that it is a good metric.
On top of that, there is no external HW ready.
However it can be interesting to code and run the
"primary boot monitor" (see at
http://f-cpu.seul.org/new/F-CPU_boot.txt )
and start bootstrapping stuffs from that point,
making simple "toy" or useful software, etc ...
>As maintainer of part of Linux kernel I know that if
>I want to bug people with my ideas I should also do
>something.
:-)
>I created port of GCC for F-CPU.
did you start from the existing (limited) code ?
> Just now it compiles
>rather complex functions however there are known bugs
>in stack handling (pointer inc) and some others.
it's just a matter of time, i guess ...
>Also insns other than add and shift should be add (just
>now gcc uses its libs).
? i don't understand what that means ....
we can't do boolean or shift operations ?
>There is problem with jump optimizer because it needs
>labels tied to jumps but we have them in registers.
the 'trick' is maybe to use a "macro" and the instruction
can be rescheduled by Cédric's assembler ...
> Just now I suppose assembler to handle it (ineffecient).
>Also conditional branching is not tuned - it supresses
>loop optimization :(
it seems that you do not use the same set of conditions
as is implemented (LSB, MSB, zero, instead of greater, etc.).
>But at least something to play with :)
>Test:
>long f(short a,short b)
>{
> short i;
> for (i=(short)0;i<(short)10;i++) a += b;
> return a+(long)0x100000;
>}
>
>; FCPU ASM; CC by devik@cdi.cz.text
>..extern f
>f:
> move.d a0,a3
> loadcons.0 0,a2
> loadcons.0 9,a4
>@L6:
> addi.d 1,a2,a2
> add.d a3,a1,a3
> cmples.d a4,a2,a0
> jmp_direct.nz a0,@L6
> widen.d a3,a1
> bseti log2(1048576),r0,a0
wow .... uh ....
> add a0,a1,rv
> jmp ra
anyway, that's impressing (particularly because
i am not sure i could get till that point ;-D)
i have put the sources at
http://f-cpu.seul.org/new/gccfcpu.20021203.tgz
YG
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/