diff --git a/vm/vmcore/src/util/em64t/base/jit_lock_rt_support_em64t.cpp b/vm/vmcore/src/util/em64t/base/jit_lock_rt_support_em64t.cpp old mode 100644 new mode 100755 index e26fdd4..24afcc6 --- a/vm/vmcore/src/util/em64t/base/jit_lock_rt_support_em64t.cpp +++ b/vm/vmcore/src/util/em64t/base/jit_lock_rt_support_em64t.cpp @@ -198,12 +198,13 @@ if(!VM_Global_State::loader_env->TI->isE lil_npc_to_fp(exn_get_rth_throw_illegal_monitor_state())); }else{ return lil_parse_onto_end(cs, - "push_m2n 0, 0;" + "push_m2n 0, %0i;" "out platform:ref:void;" "o0 = l0;" - "call %0i;" + "call %1i;" "pop_m2n;" "ret;", + FRAME_NON_UNWINDABLE, vm_monitor_exit); } } @@ -223,8 +224,10 @@ #ifdef VM_STATS #endif // convert struct Class into java_lang_Class cs = lil_parse_onto_end(cs, + "locals 1;" "in2out platform:ref;" "call %0i;" + "l0 = r;" "out platform:ref:g4;" "o0 = r;", struct_Class_to_java_lang_Class @@ -261,6 +264,8 @@ #endif // check if object is null cs = lil_parse_onto_end(cs, "jc i0 = %0i:ref, throw_null_pointer;" + "locals 1;" + "l0 = i0:ref;" "in2out platform:g4;", (ManagedObject *) VM_Global_State::loader_env->managed_null ); @@ -298,6 +303,8 @@ NativeCodePtr rth_get_lil_monitor_exit_n LilCodeStub * cs = lil_parse_code_stub( "entry 0:managed:ref:void;" + "locals 1;" + "l0 = i0:ref;" "in2out platform:g4;" ); assert(cs);