Mercurial > hg > truffle
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 2605:98fa88528319
Deopt on implicit null pointer exception.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Fri, 06 May 2011 16:20:56 +0200 |
parents | 0654ee04b214 |
children | 75a99b4f1c98 |
comparison
equal
deleted
inserted
replaced
2604:c9b17ac5c06b | 2605:98fa88528319 |
---|---|
2651 #endif | 2651 #endif |
2652 | 2652 |
2653 // (tw) Start of C1X uncommon trap code. | 2653 // (tw) Start of C1X uncommon trap code. |
2654 __ jmp(cont); | 2654 __ jmp(cont); |
2655 | 2655 |
2656 int jmp_uncommon_trap_offset = __ pc() - start; | |
2657 __ pushptr(Address(r15_thread, in_bytes(JavaThread::ScratchA_offset()))); | |
2658 | |
2656 int uncommon_trap_offset = __ pc() - start; | 2659 int uncommon_trap_offset = __ pc() - start; |
2657 | 2660 |
2658 // Warning: Duplicate code | 2661 // Warning: Duplicate code |
2659 | 2662 |
2660 // Save everything in sight. | 2663 // Save everything in sight. |
2875 masm->flush(); | 2878 masm->flush(); |
2876 | 2879 |
2877 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); | 2880 _deopt_blob = DeoptimizationBlob::create(&buffer, oop_maps, 0, exception_offset, reexecute_offset, frame_size_in_words); |
2878 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); | 2881 _deopt_blob->set_unpack_with_exception_in_tls_offset(exception_in_tls_offset); |
2879 _deopt_blob->set_uncommon_trap_offset(uncommon_trap_offset); | 2882 _deopt_blob->set_uncommon_trap_offset(uncommon_trap_offset); |
2883 _deopt_blob->set_jmp_uncommon_trap_offset(jmp_uncommon_trap_offset); | |
2880 } | 2884 } |
2881 | 2885 |
2882 #ifdef COMPILER2 | 2886 #ifdef COMPILER2 |
2883 //------------------------------generate_uncommon_trap_blob-------------------- | 2887 //------------------------------generate_uncommon_trap_blob-------------------- |
2884 void SharedRuntime::generate_uncommon_trap_blob() { | 2888 void SharedRuntime::generate_uncommon_trap_blob() { |