QUOTE
Originally posted by PatchWorKs
Watch yourself what a
100% Assembly OS can do in 1,44 Mb !
No other OS (except QNX), even Linux, can do somethig similar.
v2os is another good example.
@Delirium
maybe you should read some good assembly sources, where simd is being used to both implement controls (program flows) and processing (data manipulation).
back in 1997, i have written thousands of assembly lines for a DSP card, porting a pretty decent algorithm originally written in matlab, with mutlichannel processing (data manipulation) and lots of logics (program flows).
this was a realtime system, meaning, on each sample the system got in its multichannel input, it had to produce a relevant sample in the system's output (this, plus rs232 feedback status, lightning diodes and other blah-blah stuff).
true, i had to debug my code by.. printing the sources and reading and rereading it, true, it's also very hard to read this code - BUT, this code used more than 90% of the DSP resources (40 MIPS), and ANY compiler would have just fail here.
sure, we could have developed a new card, with newer CPU.. and eventually we did, but on that timeline - it wasn't an option.
oh, and btw, the new board had different DSP, different Assembly, and i had to port the code to this new Assmebly.
believe it or not, it took less than a month.
end of story -
developers could be better than compiler, 'cause the developers have the privilige to
understand the algorithm, while the compilers don't.
developers knows which of the flags are needed at any part of the code, and compilers sometimes being too cautious, compilers hardly merge more than variable into one register, while developers can easily do this.
one of the best thing is seeing an assembly code that simply 'removed' all original variables from the original algorithm, and implemented a registers-only code.
i did it lots of times, and it's pure fun!