comparison src/cpu/ppc/vm/sharedRuntime_ppc.cpp @ 17809:a433eb716ce1

8037821: Account for trampoline stubs when estimating code buffer sizes Summary: Take into account space needed for "trampoline code" used by calls on PPC64. Reviewed-by: kvn Contributed-by: lutz.schmidt@sap.com
author goetz
date Tue, 25 Mar 2014 12:54:21 -0700
parents fd1b9f02cc91
children ba7846fcb814 e9e252c83b2b
comparison
equal deleted inserted replaced
17808:d623bc507723 17809:a433eb716ce1
32 #include "oops/compiledICHolder.hpp" 32 #include "oops/compiledICHolder.hpp"
33 #include "prims/jvmtiRedefineClassesTrace.hpp" 33 #include "prims/jvmtiRedefineClassesTrace.hpp"
34 #include "runtime/sharedRuntime.hpp" 34 #include "runtime/sharedRuntime.hpp"
35 #include "runtime/vframeArray.hpp" 35 #include "runtime/vframeArray.hpp"
36 #include "vmreg_ppc.inline.hpp" 36 #include "vmreg_ppc.inline.hpp"
37 #include "adfiles/ad_ppc_64.hpp"
37 #ifdef COMPILER1 38 #ifdef COMPILER1
38 #include "c1/c1_Runtime1.hpp" 39 #include "c1/c1_Runtime1.hpp"
39 #endif 40 #endif
40 #ifdef COMPILER2 41 #ifdef COMPILER2
41 #include "opto/runtime.hpp" 42 #include "opto/runtime.hpp"
48 #else 49 #else
49 #define BLOCK_COMMENT(str) __ block_comment(str) 50 #define BLOCK_COMMENT(str) __ block_comment(str)
50 #endif 51 #endif
51 52
52 #define BIND(label) bind(label); BLOCK_COMMENT(#label ":") 53 #define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
53
54
55 // Used by generate_deopt_blob. Defined in .ad file.
56 extern uint size_deopt_handler();
57 54
58 55
59 class RegisterSaver { 56 class RegisterSaver {
60 // Used for saving volatile registers. 57 // Used for saving volatile registers.
61 public: 58 public:
2780 // will replace the address of the deopt_handler in the call 2777 // will replace the address of the deopt_handler in the call
2781 // to Deoptimization::fetch_unroll_info below. 2778 // to Deoptimization::fetch_unroll_info below.
2782 // We can't grab a free register here, because all registers may 2779 // We can't grab a free register here, because all registers may
2783 // contain live values, so let the RegisterSaver do the adjustment 2780 // contain live values, so let the RegisterSaver do the adjustment
2784 // of the return pc. 2781 // of the return pc.
2785 const int return_pc_adjustment_no_exception = -size_deopt_handler(); 2782 const int return_pc_adjustment_no_exception = -HandlerImpl::size_deopt_handler();
2786 2783
2787 // Push the "unpack frame" 2784 // Push the "unpack frame"
2788 // Save everything in sight. 2785 // Save everything in sight.
2789 map = RegisterSaver::push_frame_reg_args_and_save_live_registers(masm, 2786 map = RegisterSaver::push_frame_reg_args_and_save_live_registers(masm,
2790 &first_frame_size_in_bytes, 2787 &first_frame_size_in_bytes,