equal
deleted
inserted
replaced
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 // Platform-specific definitions for method handles. |
25 // Platform-specific definitions for method handles. |
26 // These definitions are inlined into class MethodHandles. |
26 // These definitions are inlined into class MethodHandles. |
|
27 |
|
28 // Adapters |
|
29 enum /* platform_dependent_constants */ { |
|
30 adapter_code_size = NOT_LP64(30000 DEBUG_ONLY(+ 10000)) LP64_ONLY(80000 DEBUG_ONLY(+ 120000)) |
|
31 }; |
27 |
32 |
28 public: |
33 public: |
29 |
34 |
30 // The stack just after the recursive call from a ricochet frame |
35 // The stack just after the recursive call from a ricochet frame |
31 // looks something like this. Offsets are marked in words, not bytes. |
36 // looks something like this. Offsets are marked in words, not bytes. |
186 void verify() const NOT_DEBUG_RETURN; // check for MAGIC_NUMBER, etc. |
191 void verify() const NOT_DEBUG_RETURN; // check for MAGIC_NUMBER, etc. |
187 void zap_arguments() NOT_DEBUG_RETURN; |
192 void zap_arguments() NOT_DEBUG_RETURN; |
188 |
193 |
189 static void generate_ricochet_blob(MacroAssembler* _masm, |
194 static void generate_ricochet_blob(MacroAssembler* _masm, |
190 // output params: |
195 // output params: |
191 int* frame_size_in_words, int* bounce_offset, int* exception_offset); |
196 int* bounce_offset, |
|
197 int* exception_offset, |
|
198 int* frame_size_in_words); |
192 |
199 |
193 static void enter_ricochet_frame(MacroAssembler* _masm, |
200 static void enter_ricochet_frame(MacroAssembler* _masm, |
194 Register rcx_recv, |
201 Register rcx_recv, |
195 Register rax_argv, |
202 Register rax_argv, |
196 address return_handler, |
203 address return_handler, |