mirror of
https://github.com/corda/corda.git
synced 2025-06-18 15:18:16 +00:00
fix mixed marshalling of mixed float/double argument lists on armhf
When we skip a single-precision register to ensure a double-precision load is aligned, we need to remember that in case we see another single-precision argument later on, which we must backfill into that register we skipped according to the ABI.
This commit is contained in:
12
test/jni.cpp
12
test/jni.cpp
@ -24,3 +24,15 @@ Java_JNI_addFloats
|
||||
return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13
|
||||
+ a14 + a15 + a16 + a17 + a18 + a19 + a20;
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jdouble JNICALL
|
||||
Java_JNI_addMix
|
||||
(JNIEnv*, jclass,
|
||||
jfloat a1, jdouble a2, jfloat a3, jdouble a4, jfloat a5, jfloat a6,
|
||||
jfloat a7, jfloat a8, jfloat a9, jfloat a10, jfloat a11, jfloat a12,
|
||||
jfloat a13, jfloat a14, jfloat a15, jdouble a16, jfloat a17, jfloat a18,
|
||||
jfloat a19, jfloat a20)
|
||||
{
|
||||
return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13
|
||||
+ a14 + a15 + a16 + a17 + a18 + a19 + a20;
|
||||
}
|
||||
|
Reference in New Issue
Block a user