Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 5111:422c979ff392
fixed two cases where DeoptAction was invalid
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Thu, 15 Mar 2012 16:34:31 -0700 |
parents | 6766253384bf |
children | 957c266d8bc5 |
comparison
equal
deleted
inserted
replaced
5110:0ebca2e35ca5 | 5111:422c979ff392 |
---|---|
3013 #endif | 3013 #endif |
3014 | 3014 |
3015 #ifdef GRAAL | 3015 #ifdef GRAAL |
3016 __ jmp(cont); | 3016 __ jmp(cont); |
3017 | 3017 |
3018 int jmp_uncommon_trap_offset = __ pc() - start; | 3018 int implicit_exception_uncommon_trap_offset = __ pc() - start; |
3019 __ pushptr(Address(r15_thread, in_bytes(JavaThread::ScratchA_offset()))); | 3019 __ pushptr(Address(r15_thread, in_bytes(JavaThread::ScratchA_offset()))); |
3020 __ movptr(rscratch1, 2); // InvalidateRecompile | 3020 __ movptr(rscratch1, Address(r15_thread, in_bytes(JavaThread::ScratchB_offset()))); |
3021 | 3021 |
3022 int uncommon_trap_offset = __ pc() - start; | 3022 int uncommon_trap_offset = __ pc() - start; |
3023 | 3023 |
3024 // Save everything in sight. | 3024 // Save everything in sight. |
3025 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words); | 3025 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words); |
3242 | 3242 |
3243 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); | 3243 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); |
3244 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); | 3244 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); |
3245 #ifdef GRAAL | 3245 #ifdef GRAAL |
3246 _deopt_blob->set_uncommon_trap_offset(uncommon_trap_offset); | 3246 _deopt_blob->set_uncommon_trap_offset(uncommon_trap_offset); |
3247 _deopt_blob->set_jmp_uncommon_trap_offset(jmp_uncommon_trap_offset); | 3247 _deopt_blob->set_implicit_exception_uncommon_trap_offset(implicit_exception_uncommon_trap_offset); |
3248 #endif | 3248 #endif |
3249 } | 3249 } |
3250 | 3250 |
3251 #ifdef COMPILER2 | 3251 #ifdef COMPILER2 |
3252 //------------------------------generate_uncommon_trap_blob-------------------- | 3252 //------------------------------generate_uncommon_trap_blob-------------------- |