From 376941ab35551364d41115f2ecd0dfe27b14a129 Mon Sep 17 00:00:00 2001 From: Joel Dice Date: Sat, 7 Mar 2009 14:32:08 -0700 Subject: [PATCH] fix single-precision float marshalling in dynamicCall --- src/powerpc.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/powerpc.h b/src/powerpc.h index cd90bdc484..fbc8753b44 100644 --- a/src/powerpc.h +++ b/src/powerpc.h @@ -91,7 +91,9 @@ dynamicCall(void* function, uintptr_t* arguments, uint8_t* argumentTypes, switch (argumentTypes[ati]) { case FLOAT_TYPE: { if (fprIndex < FprCount) { - fprTable[fprIndex++] = arguments[ai]; + double d = bitsToFloat(arguments[ai]); + memcpy(fprTable + fprIndex, &d, 8); + ++ fprIndex; ++ gprIndex; ++ stackSkip; } else {