| Subject: | Re: JNI intBitsToFloat return error | |
|---|---|---|
| From: | phon...@mobileandembedded.org (phon...@mobileandembedded.org) | |
| Date: | Mar 27, 2007 1:20:53 pm | |
| List: | net.java.dev.phoneme.advanced | |
this time, i remove printf function. It looks like more clear.
Thanks very much.
Bob Sang
========================================
#include "jni.h" #include "jvm.h"
#include "java_lang_Float.h"
/* * Find the float corresponding to a given bit pattern */ JNIEXPORT jfloat JNICALL Java_java_lang_Float_intBitsToFloat(JNIEnv *env, jclass unused, jint v) {
union { int i; float f; } u; u.i = (long)v;
return (jfloat)u.f;
}
/* * Find the bit pattern corresponding to a given float, collapsing NaNs */ JNIEXPORT jint JNICALL Java_java_lang_Float_floatToIntBits(JNIEnv *env, jclass unused, jfloat v) { union { int i; float f; } u; /* if (JVM_IsNaN((float)v)) { return 0x7fc00000; } */ u.f = (float)v; return (jint)u.i; }
/* * Find the bit pattern corresponding to a given float, NOT collapsing NaNs */ JNIEXPORT jint JNICALL Java_java_lang_Float_floatToRawIntBits(JNIEnv *env, jclass unused, jfloat v) { union { int i; float f; } u; u.f = (float)v; return (jint)u.i; }
==============================================
.file "Float.c"
.text
.align 2
.global Java_java_lang_Float_intBitsToFloat
.type Java_java_lang_Float_intBitsToFloat, %function
Java_java_lang_Float_intBitsToFloat:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
str r2, [sp, #-4]!
ldfs f0, [sp], #4
@ lr needed for prologue
mov pc, lr
.size Java_java_lang_Float_intBitsToFloat,
.-Java_java_lang_Float_intBitsToFloat
.align 2
.global Java_java_lang_Float_floatToIntBits
.type Java_java_lang_Float_floatToIntBits, %function
Java_java_lang_Float_floatToIntBits:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r0, r2
@ lr needed for prologue
mov pc, lr
.size Java_java_lang_Float_floatToIntBits,
.-Java_java_lang_Float_floatToIntBits
.align 2
.global Java_java_lang_Float_floatToRawIntBits
.type Java_java_lang_Float_floatToRawIntBits, %function
Java_java_lang_Float_floatToRawIntBits:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r0, r2
@ lr needed for prologue
mov pc, lr
.size Java_java_lang_Float_floatToRawIntBits,
.-Java_java_lang_Float_floatToRawIntBits
.ident "GCC: (GNU) 3.4.5"
[Message sent by forum member 'webjb' (webjb)]





