float get_float_parameter( StackFrame *stack, SimpleConstantPool *p) { float value = 0; if ( is_ref_entry(stack) ) { int index = popInt(stack); value = get_float_from_constant_pool(p, index); } else { value = popFloat(stack); } return value; }
long long get_long_parameter( StackFrame *stack, SimpleConstantPool *p) { long long value = 0; if ( is_ref_entry(stack) ) { int index = popInt(stack); value = get_long_from_constant_pool(p, index); } else { value = popLong(stack); } return value; }
static double get_double_parameter(StackFrame *stack, SimpleConstantPool *p) { double value = 0.0f; if (is_ref_entry(stack)) { int index = popInt(stack); value = get_double_from_constant_pool(p, index); #if SIMPLE_JVM_DEBUG printf("index %d\n", index); printf("get value from constant pool = %f\n", value); #endif } else { value = popDouble(stack); #if SIMPLE_JVM_DEBUG printf("get value from stack = %f\n", value); #endif } return value; }