ARM32 interpreter and C1 doesn't use JNI call result handers properly since "returned value is already in appropriate format" (templateInterpreterGenerator_arm.cpp:32) . Now (since JDK-8209637) we have JNIBooleanTest.java test that shows the approach is not correct: the JNI call jboolean return value >1 makes a mess in further java execution.
JTwork/runtime/BoolReturn/JNIBooleanTest.jtr:
----------System.err:(13/852)----------
java.lang.RuntimeException: Error: bar(2) = false in iteration 2
at JNIBooleanTest.main(JNIBooleanTest.java:61)