It'll almost certainly be to do with jsnative.c. This calls C functions with a varying number of arguments and argument types - unfortunately how it does so depends on how the underlying architecture of the CPU calls things.
It might be that just changing the #ifdef ARM to #if defined(ARM) || defined(XTENSA) would do the trick, but you'd have to do some testing (actually it should probably work the other way, testing for x86 - as that's the one that's completely crazy).
#if defined(ARM) || defined(XTENSA)
The issue is really whether floating point arguments are passed on the same stack/registers as normal args. In ARM (and prob Xtensa) they are, but in x86 they aren't.
© Espruino, powered by microcosm.
Report a problem