View Single Post
Old 03-21-2012, 01:14 AM   #1
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default ARM port of EEL2

following this thread:
http://forum.cockos.com/showthread.php?t=98337

i did some work on giving this a quick go...

here are the initial results:
https://github.com/neolit123/wdl/commits/eel2-arm

the glue code took most of my time, as i had to first understand what (the hell?) is going on in there. there are some major problems when function calls are made, for example calling something libc from the "virtual machine". my current solution, which is basically - passing an address table around in assembly, may urge the need for some facepalm-like gestures in certain developers.

mind that this a soft-float port to ARM, which will run slow, but on pretty much everything. a VFP version can be possibly branched out in the same build, while FPA and FPE do not make much sense to be implemented in my opinion, since the support is minimal (afaik).

only some basic operators and functions are implemented at this point, but the semantics are in place.

test:

Code:
ret = 3.1415926535897932384626433832795;
ret = (sqr(ret - 3.0) / 2 + 1.5)*ret;
ret = (sqr(ret - 3.0) / 2 + 1.5)*ret;
ret = (sqr(ret - 3.0) / 2 + 1.5)*ret;

// goes something like
ret = 3.14159265358979323
ret = 4.7438810584205937
ret = 14.3291800878725635
ret = 941.0712054248509730
--
liteon is offline   Reply With Quote