Mercurial > hg > graal-jvmci-8
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, |