325 326 // Resets a call-site in compiled code so it will get resolved again. 327 static methodHandle reresolve_call_site(JavaThread *thread, TRAPS); 328 329 // In the code prolog, if the klass comparison fails, the inline cache 330 // misses and the call site is patched to megamorphic 331 static methodHandle handle_ic_miss_helper(JavaThread* thread, TRAPS); 332 333 // Find the method that called us. 334 static methodHandle find_callee_method(JavaThread* thread, TRAPS); 335 336 337 private: 338 static Handle find_callee_info(JavaThread* thread, 339 Bytecodes::Code& bc, 340 CallInfo& callinfo, TRAPS); 341 static Handle find_callee_info_helper(JavaThread* thread, 342 vframeStream& vfst, 343 Bytecodes::Code& bc, 344 CallInfo& callinfo, TRAPS); 345 346 static address clean_virtual_call_entry(); 347 static address clean_opt_virtual_call_entry(); 348 static address clean_static_call_entry(); 349 350 public: 351 352 // Read the array of BasicTypes from a Java signature, and compute where 353 // compiled Java code would like to put the results. Values in reg_lo and 354 // reg_hi refer to 4-byte quantities. Values less than SharedInfo::stack0 are 355 // registers, those above refer to 4-byte stack slots. All stack slots are 356 // based off of the window top. SharedInfo::stack0 refers to the first usable 357 // slot in the bottom of the frame. SharedInfo::stack0+1 refers to the memory word 358 // 4-bytes higher. So for sparc because the register window save area is at 359 // the bottom of the frame the first 16 words will be skipped and SharedInfo::stack0 360 // will be just above it. ( 361 // return value is the maximum number of VMReg stack slots the convention will use. 362 static int java_calling_convention(const BasicType* sig_bt, VMRegPair* regs, int total_args_passed, int is_outgoing); 363 364 static void check_member_name_argument_is_last_argument(methodHandle method, | 325 326 // Resets a call-site in compiled code so it will get resolved again. 327 static methodHandle reresolve_call_site(JavaThread *thread, TRAPS); 328 329 // In the code prolog, if the klass comparison fails, the inline cache 330 // misses and the call site is patched to megamorphic 331 static methodHandle handle_ic_miss_helper(JavaThread* thread, TRAPS); 332 333 // Find the method that called us. 334 static methodHandle find_callee_method(JavaThread* thread, TRAPS); 335 336 337 private: 338 static Handle find_callee_info(JavaThread* thread, 339 Bytecodes::Code& bc, 340 CallInfo& callinfo, TRAPS); 341 static Handle find_callee_info_helper(JavaThread* thread, 342 vframeStream& vfst, 343 Bytecodes::Code& bc, 344 CallInfo& callinfo, TRAPS); 345 static methodHandle extract_attached_call_info(JavaThread* thread); 346 static void resolve_attached_call_info(JavaThread* thread, 347 methodHandle info, 348 Bytecodes::Code bc, 349 Handle& receiver, 350 CallInfo& callinfo, TRAPS); 351 352 static address clean_virtual_call_entry(); 353 static address clean_opt_virtual_call_entry(); 354 static address clean_static_call_entry(); 355 356 public: 357 358 // Read the array of BasicTypes from a Java signature, and compute where 359 // compiled Java code would like to put the results. Values in reg_lo and 360 // reg_hi refer to 4-byte quantities. Values less than SharedInfo::stack0 are 361 // registers, those above refer to 4-byte stack slots. All stack slots are 362 // based off of the window top. SharedInfo::stack0 refers to the first usable 363 // slot in the bottom of the frame. SharedInfo::stack0+1 refers to the memory word 364 // 4-bytes higher. So for sparc because the register window save area is at 365 // the bottom of the frame the first 16 words will be skipped and SharedInfo::stack0 366 // will be just above it. ( 367 // return value is the maximum number of VMReg stack slots the convention will use. 368 static int java_calling_convention(const BasicType* sig_bt, VMRegPair* regs, int total_args_passed, int is_outgoing); 369 370 static void check_member_name_argument_is_last_argument(methodHandle method, |