I understand the results of your test but, could you explain a little further this :
Quote:
I believe this approach would scale up to complete compiler of e.g. C. The advantage over TCC is that such code is 100% portable, no need to emit assembler opcodes...
Well, TCC produces CPU opcodes. That is definitely faster, but also CPU dependent and a little bit harder to interface with 'host' platform (in this case U++).
Using this, you can more easily create 'runtime compiler' for most scripting languages, which would be slower than one producing CPU opcodes, but very likely faster than interpreted bytecode. And very easily interfacable with host (see how 'x' and 'y' variables are easily iterfaced).
The only problem I can see is jumps. 'goto' is likely out of question and I am still unsure if 'break' is possible (maybe the one way is to implement it using exceptions).