Yes, we found that info the hard way...disassembly after disassembly after disassembly,,, Right now I have an asm function that is passed 4 args, the fourth being the pointer to the float array args of the actual system function. I need to know how to store (in asm) the values of the array in the different float registers ("s" registers).
The problem is... I know about 0.000001e-19 % of ASM, so I´m kind of doing this "using the force"...
Since the RPi is ARM based, and since I´m using gcc, this looked like the right thing to do. I also had to add -DAS_NO_THREADS to avoid getting some "unreferences".
The Tutorial and Game examples build fine with this setup, but in the tutorial project I´ve found some problems. When running it, the program outputs this:
--- Received: 1000, 1000 System has been running for 1000 seconds. --- The script function returned: 8.53973
So as you can see, the received values are wrong. (Interestingly enough, the value returned at the end is correct).
I have the same problem with an application I made. Everything seems to be working fine as long as I use ints or string within my scripts, but as soon as I use floats or doubles the values get corrupted. (I haven´t tested the game project enough, BTW).
If I build the library with -DAS_MAX_PORTABILITY then the tutorial project build ok and works as expected:
--- Received: 3.14159, 2.71828 System has been running for 3.89004e+06 seconds. --- The script function returned: 8.53973
Any ideas on what could be the problem or what to look for in order to find a solution?