Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 15104:ed29f7ff71eb
add DeoptimizationStub
author | twisti |
---|---|
date | Mon, 14 Apr 2014 17:21:49 -1000 |
parents | 4062efea018b |
children | 2d6dd2eebd51 |
comparison
equal
deleted
inserted
replaced
15103:9dc7efd43c44 | 15104:ed29f7ff71eb |
---|---|
3358 __ movl(r14, Deoptimization::Unpack_reexecute); // callee-saved | 3358 __ movl(r14, Deoptimization::Unpack_reexecute); // callee-saved |
3359 __ jmp(cont); | 3359 __ jmp(cont); |
3360 | 3360 |
3361 #ifdef GRAAL | 3361 #ifdef GRAAL |
3362 int implicit_exception_uncommon_trap_offset = __ pc() - start; | 3362 int implicit_exception_uncommon_trap_offset = __ pc() - start; |
3363 | |
3363 __ pushptr(Address(r15_thread, in_bytes(JavaThread::graal_implicit_exception_pc_offset()))); | 3364 __ pushptr(Address(r15_thread, in_bytes(JavaThread::graal_implicit_exception_pc_offset()))); |
3364 | |
3365 int uncommon_trap_offset = __ pc() - start; | |
3366 | 3365 |
3367 // Save everything in sight. | 3366 // Save everything in sight. |
3368 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words); | 3367 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words); |
3369 // fetch_unroll_info needs to call last_java_frame() | 3368 // fetch_unroll_info needs to call last_java_frame() |
3370 __ set_last_Java_frame(noreg, noreg, NULL); | 3369 __ set_last_Java_frame(noreg, noreg, NULL); |
3641 masm->flush(); | 3640 masm->flush(); |
3642 | 3641 |
3643 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); | 3642 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); |
3644 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); | 3643 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); |
3645 #ifdef GRAAL | 3644 #ifdef GRAAL |
3646 _deopt_blob->set_uncommon_trap_offset(uncommon_trap_offset); | |
3647 _deopt_blob->set_implicit_exception_uncommon_trap_offset(implicit_exception_uncommon_trap_offset); | 3645 _deopt_blob->set_implicit_exception_uncommon_trap_offset(implicit_exception_uncommon_trap_offset); |
3648 #endif | 3646 #endif |
3649 } | 3647 } |
3650 | 3648 |
3651 #ifdef COMPILER2 | 3649 #ifdef COMPILER2 |