334 // Resets a call-site in compiled code so it will get resolved again.
335 static methodHandle reresolve_call_site(JavaThread *thread, TRAPS);
336
337 // In the code prolog, if the klass comparison fails, the inline cache
338 // misses and the call site is patched to megamorphic
339 static methodHandle handle_ic_miss_helper(JavaThread* thread, TRAPS);
340
341 // Find the method that called us.
342 static methodHandle find_callee_method(JavaThread* thread, TRAPS);
343
344
345 private:
346 static Handle find_callee_info(JavaThread* thread,
347 Bytecodes::Code& bc,
348 CallInfo& callinfo, TRAPS);
349 static Handle find_callee_info_helper(JavaThread* thread,
350 vframeStream& vfst,
351 Bytecodes::Code& bc,
352 CallInfo& callinfo, TRAPS);
353
354 static methodHandle extract_attached_method(vframeStream& vfst);
355
356 static address clean_virtual_call_entry();
357 static address clean_opt_virtual_call_entry();
358 static address clean_static_call_entry();
359
360 #if defined(X86) && defined(COMPILER1)
361 // For Object.hashCode, System.identityHashCode try to pull hashCode from object header if available.
362 static void inline_check_hashcode_from_object_header(MacroAssembler* masm, const methodHandle& method, Register obj_reg, Register result);
363 #endif // X86 && COMPILER1
364
365 public:
366
367 // Read the array of BasicTypes from a Java signature, and compute where
368 // compiled Java code would like to put the results. Values in reg_lo and
369 // reg_hi refer to 4-byte quantities. Values less than SharedInfo::stack0 are
370 // registers, those above refer to 4-byte stack slots. All stack slots are
371 // based off of the window top. SharedInfo::stack0 refers to the first usable
372 // slot in the bottom of the frame. SharedInfo::stack0+1 refers to the memory word
373 // 4-bytes higher. So for sparc because the register window save area is at
374 // the bottom of the frame the first 16 words will be skipped and SharedInfo::stack0
|
334 // Resets a call-site in compiled code so it will get resolved again.
335 static methodHandle reresolve_call_site(JavaThread *thread, TRAPS);
336
337 // In the code prolog, if the klass comparison fails, the inline cache
338 // misses and the call site is patched to megamorphic
339 static methodHandle handle_ic_miss_helper(JavaThread* thread, TRAPS);
340
341 // Find the method that called us.
342 static methodHandle find_callee_method(JavaThread* thread, TRAPS);
343
344
345 private:
346 static Handle find_callee_info(JavaThread* thread,
347 Bytecodes::Code& bc,
348 CallInfo& callinfo, TRAPS);
349 static Handle find_callee_info_helper(JavaThread* thread,
350 vframeStream& vfst,
351 Bytecodes::Code& bc,
352 CallInfo& callinfo, TRAPS);
353
354 static Method* extract_attached_method(vframeStream& vfst);
355
356 static address clean_virtual_call_entry();
357 static address clean_opt_virtual_call_entry();
358 static address clean_static_call_entry();
359
360 #if defined(X86) && defined(COMPILER1)
361 // For Object.hashCode, System.identityHashCode try to pull hashCode from object header if available.
362 static void inline_check_hashcode_from_object_header(MacroAssembler* masm, const methodHandle& method, Register obj_reg, Register result);
363 #endif // X86 && COMPILER1
364
365 public:
366
367 // Read the array of BasicTypes from a Java signature, and compute where
368 // compiled Java code would like to put the results. Values in reg_lo and
369 // reg_hi refer to 4-byte quantities. Values less than SharedInfo::stack0 are
370 // registers, those above refer to 4-byte stack slots. All stack slots are
371 // based off of the window top. SharedInfo::stack0 refers to the first usable
372 // slot in the bottom of the frame. SharedInfo::stack0+1 refers to the memory word
373 // 4-bytes higher. So for sparc because the register window save area is at
374 // the bottom of the frame the first 16 words will be skipped and SharedInfo::stack0
|