[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [f-cpu] GCC 3.1 for F-CPU port
>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
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
>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 :)
>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 email@example.com
> move.d a0,a3
> loadcons.0 0,a2
> loadcons.0 9,a4
> 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
To unsubscribe, send an e-mail to firstname.lastname@example.org with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/