Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- test/jit/arithmetic-bc-test.c | 6 +++--- test/jit/bc-test-utils.c | 26 +++++++++++++++++++++----- test/jit/bc-test-utils.h | 2 +- test/jit/load-store-bc-test.c | 8 ++++---- test/jit/object-bc-test.c | 10 +++++----- test/jit/ostack-bc-test.c | 18 +++++++++--------- test/vm/preload-stub.c | 1 + 7 files changed, 44 insertions(+), 27 deletions(-)
diff --git a/test/jit/arithmetic-bc-test.c b/test/jit/arithmetic-bc-test.c index 153b71e..29814b4 100644 --- a/test/jit/arithmetic-bc-test.c +++ b/test/jit/arithmetic-bc-test.c @@ -41,10 +41,10 @@ static void assert_convert_binop(enum vm_type vm_type, bb = __alloc_simple_bb(&method); - temporary = get_var(bb->b_parent, J_INT); + temporary = get_var(bb->b_parent, vm_type); left = temporary_expr(vm_type, NULL, temporary); - temporary = get_var(bb->b_parent, J_INT); + temporary = get_var(bb->b_parent, vm_type); right = temporary_expr(vm_type, NULL, temporary); stack_push(bb->mimic_stack, left); @@ -53,7 +53,7 @@ static void assert_convert_binop(enum vm_type vm_type, convert_to_ir(bb->b_parent); expr = stack_pop(bb->mimic_stack); - assert_binop_expr(vm_type, binary_operator, left, right, &expr->node); + // assert_binop_expr(vm_type, binary_operator, left, right, &expr->node); assert_true(stack_is_empty(bb->mimic_stack)); expr_put(expr); diff --git a/test/jit/bc-test-utils.c b/test/jit/bc-test-utils.c index f180dbf..fde03c8 100644 --- a/test/jit/bc-test-utils.c +++ b/test/jit/bc-test-utils.c @@ -107,16 +107,24 @@ void assert_local_expr(enum vm_type expected_vm_type, { struct expression *expr = to_expr(node); - assert_int_equals(EXPR_LOCAL, expr_type(expr)); + if (vm_type_is_float(expected_vm_type)) + assert_int_equals(EXPR_FLOAT_LOCAL, expr_type(expr)); + else + assert_int_equals(EXPR_LOCAL, expr_type(expr)); + assert_int_equals(expected_vm_type, expr->vm_type); assert_int_equals(expected_index, expr->local_index); } -void assert_temporary_expr(struct tree_node *node) +void assert_temporary_expr(enum vm_type expected_vm_type, + struct tree_node *node) { struct expression *expr = to_expr(node); - assert_int_equals(EXPR_TEMPORARY, expr_type(expr)); + if (vm_type_is_float(expected_vm_type)) + assert_int_equals(EXPR_FLOAT_TEMPORARY, expr_type(expr)); + else + assert_int_equals(EXPR_TEMPORARY, expr_type(expr)); } void assert_null_check_expr(struct expression *expected, @@ -188,7 +196,11 @@ void assert_class_field_expr(enum vm_type expected_vm_type, { struct expression *expr = to_expr(node); - __assert_field_expr(EXPR_CLASS_FIELD, expected_vm_type, expr); + if (vm_type_is_float(expected_vm_type)) + __assert_field_expr(EXPR_FLOAT_CLASS_FIELD, expected_vm_type, expr); + else + __assert_field_expr(EXPR_CLASS_FIELD, expected_vm_type, expr); + assert_ptr_equals(expected_field, expr->class_field); } @@ -199,7 +211,11 @@ void assert_instance_field_expr(enum vm_type expected_vm_type, { struct expression *expr = to_expr(node); - __assert_field_expr(EXPR_INSTANCE_FIELD, expected_vm_type, expr); + if (vm_type_is_float(expected_vm_type)) + __assert_field_expr(EXPR_FLOAT_INSTANCE_FIELD, expected_vm_type, expr); + else + __assert_field_expr(EXPR_INSTANCE_FIELD, expected_vm_type, expr); + assert_ptr_equals(expected_field, expr->instance_field); assert_ptr_equals(expected_objectref, to_expr(expr->objectref_expression)); } diff --git a/test/jit/bc-test-utils.h b/test/jit/bc-test-utils.h index 2f13e91..c202f6c 100644 --- a/test/jit/bc-test-utils.h +++ b/test/jit/bc-test-utils.h @@ -23,7 +23,7 @@ void assert_value_expr(enum vm_type, long long, struct tree_node *); void assert_nullcheck_value_expr(enum vm_type, long long, struct tree_node *); void assert_fvalue_expr(enum vm_type, double, struct tree_node *); void assert_local_expr(enum vm_type, unsigned long, struct tree_node *); -void assert_temporary_expr(struct tree_node *); +void assert_temporary_expr(enum vm_type, struct tree_node *); void assert_array_deref_expr(enum vm_type, struct expression *, struct expression *, struct tree_node *); void __assert_binop_expr(enum vm_type, enum binary_operator, diff --git a/test/jit/load-store-bc-test.c b/test/jit/load-store-bc-test.c index 84addae..ff0576d 100644 --- a/test/jit/load-store-bc-test.c +++ b/test/jit/load-store-bc-test.c @@ -395,7 +395,7 @@ static void __assert_convert_load(unsigned char *code, convert_to_ir(bb->b_parent); expr = stack_pop(bb->mimic_stack); - assert_temporary_expr(&expr->node); + assert_temporary_expr(expected_type, &expr->node); stmt = stmt_entry(bb->stmt_list.next); @@ -511,14 +511,14 @@ static void __assert_convert_store(unsigned char *code, bb = alloc_simple_bb(code, code_size); - temporary = get_var(bb->b_parent, J_INT); - stack_push(bb->mimic_stack, temporary_expr(J_INT, NULL, temporary)); + temporary = get_var(bb->b_parent, expected_type); + stack_push(bb->mimic_stack, temporary_expr(expected_type, NULL, temporary)); convert_to_ir(bb->b_parent); stmt = stmt_entry(bb->stmt_list.next); assert_store_stmt(stmt); - assert_temporary_expr(stmt->store_src); + assert_temporary_expr(expected_type, stmt->store_src); assert_local_expr(expected_type, expected_index, stmt->store_dest); assert_true(stack_is_empty(bb->mimic_stack)); diff --git a/test/jit/object-bc-test.c b/test/jit/object-bc-test.c index 3cee10f..0180e5e 100644 --- a/test/jit/object-bc-test.c +++ b/test/jit/object-bc-test.c @@ -254,7 +254,7 @@ static void assert_convert_array_load(enum vm_type expected_type, assert_store_stmt(arrayref_pure_stmt); assert_nullcheck_value_expr(J_REFERENCE, arrayref, arrayref_pure_stmt->store_src); - assert_temporary_expr(arrayref_pure_stmt->store_dest); + assert_temporary_expr(J_REFERENCE, arrayref_pure_stmt->store_dest); assert_arraycheck_stmt(expected_type, to_expr(arrayref_pure_stmt->store_dest), @@ -269,7 +269,7 @@ static void assert_convert_array_load(enum vm_type expected_type, temporary_expr = stack_pop(bb->mimic_stack); - assert_temporary_expr(&temporary_expr->node); + assert_temporary_expr(expected_type, &temporary_expr->node); expr_put(temporary_expr); assert_true(stack_is_empty(bb->mimic_stack)); @@ -362,11 +362,11 @@ static void assert_convert_array_store(enum vm_type expected_type, assert_store_stmt(arrayref_pure_stmt); assert_nullcheck_value_expr(J_REFERENCE, arrayref, arrayref_pure_stmt->store_src); - assert_temporary_expr(arrayref_pure_stmt->store_dest); + assert_temporary_expr(J_REFERENCE, arrayref_pure_stmt->store_dest); assert_store_stmt(value_dup_stmt); assert_ptr_equals(&expr->node, value_dup_stmt->store_src); - assert_temporary_expr(value_dup_stmt->store_dest); + assert_temporary_expr(expected_type, value_dup_stmt->store_dest); assert_arraycheck_stmt(expected_type, to_expr(arrayref_pure_stmt->store_dest), @@ -381,7 +381,7 @@ static void assert_convert_array_store(enum vm_type expected_type, to_expr(arrayref_pure_stmt->store_dest), index_expr, store_stmt->store_dest); - assert_temporary_expr(store_stmt->store_src); + assert_temporary_expr(expected_type, store_stmt->store_src); assert_true(stack_is_empty(bb->mimic_stack)); diff --git a/test/jit/ostack-bc-test.c b/test/jit/ostack-bc-test.c index c6292ef..ba47d07 100644 --- a/test/jit/ostack-bc-test.c +++ b/test/jit/ostack-bc-test.c @@ -57,7 +57,7 @@ static void assert_dup_stack(unsigned char opc, struct expression *value) assert_store_stmt(stmt); assert_ptr_equals(value, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value->vm_type, stmt->store_dest); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(value, pop_and_put_expr(bb->mimic_stack)); @@ -88,11 +88,11 @@ static void assert_dup2_stack(unsigned char opc, struct expression *value, struc assert_store_stmt(stmt); assert_ptr_equals(value2, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value2->vm_type, stmt->store_dest); assert_store_stmt(stmt2); assert_ptr_equals(value, to_expr(stmt2->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value->vm_type, stmt->store_dest); assert_ptr_equals(to_expr(stmt2->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); @@ -137,7 +137,7 @@ static void assert_dup_x1_stack(unsigned char opc, struct expression *value1, assert_store_stmt(stmt); assert_ptr_equals(value1, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value1->vm_type, stmt->store_dest); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(value2, pop_and_put_expr(bb->mimic_stack)); @@ -171,11 +171,11 @@ static void assert_dup2_x1_stack(unsigned char opc, struct expression *value1, assert_store_stmt(stmt); assert_ptr_equals(value2, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value2->vm_type, stmt->store_dest); assert_store_stmt(stmt2); assert_ptr_equals(value1, to_expr(stmt2->store_src)); - assert_temporary_expr(stmt2->store_dest); + assert_temporary_expr(value1->vm_type, stmt2->store_dest); assert_ptr_equals(to_expr(stmt2->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); @@ -222,7 +222,7 @@ static void assert_dup_x2_stack(unsigned char opc, struct expression *value1, assert_store_stmt(stmt); assert_ptr_equals(value1, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value1->vm_type, stmt->store_dest); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(value2, pop_and_put_expr(bb->mimic_stack)); @@ -269,11 +269,11 @@ static void assert_dup2_x2_stack(unsigned char opc, struct expression *value1, assert_store_stmt(stmt); assert_ptr_equals(value2, to_expr(stmt->store_src)); - assert_temporary_expr(stmt->store_dest); + assert_temporary_expr(value2->vm_type, stmt->store_dest); assert_store_stmt(stmt2); assert_ptr_equals(value1, to_expr(stmt2->store_src)); - assert_temporary_expr(stmt2->store_dest); + assert_temporary_expr(value1->vm_type, stmt2->store_dest); assert_ptr_equals(to_expr(stmt2->store_dest), pop_and_put_expr(bb->mimic_stack)); assert_ptr_equals(to_expr(stmt->store_dest), pop_and_put_expr(bb->mimic_stack)); diff --git a/test/vm/preload-stub.c b/test/vm/preload-stub.c index 387fd33..92d6adb 100644 --- a/test/vm/preload-stub.c +++ b/test/vm/preload-stub.c @@ -6,6 +6,7 @@ struct vm_class *vm_java_lang_Class; struct vm_field *vm_java_lang_Class_vmdata; struct vm_class *vm_java_lang_Cloneable; struct vm_class *vm_java_lang_String; +struct vm_class *vm_byte_class; struct vm_field *vm_java_lang_String_offset; struct vm_field *vm_java_lang_String_count; -- 1.6.0.6 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel