comparison src/cpu/sparc/vm/methodHandles_sparc.cpp @ 3336:2e038ad0c1d0

7009361: JSR 292 Invalid value on stack on solaris-sparc with -Xcomp Reviewed-by: kvn, twisti
author never
date Mon, 02 May 2011 18:53:37 -0700
parents d934e4b931e9
children 8d944991dbf9
comparison
equal deleted inserted replaced
3335:49d67a090fe2 3336:2e038ad0c1d0
348 348
349 349
350 #ifndef PRODUCT 350 #ifndef PRODUCT
351 extern "C" void print_method_handle(oop mh); 351 extern "C" void print_method_handle(oop mh);
352 void trace_method_handle_stub(const char* adaptername, 352 void trace_method_handle_stub(const char* adaptername,
353 oopDesc* mh) { 353 oopDesc* mh,
354 printf("MH %s mh="INTPTR_FORMAT"\n", adaptername, (intptr_t) mh); 354 intptr_t* saved_sp) {
355 tty->print_cr("MH %s mh="INTPTR_FORMAT " saved_sp=" INTPTR_FORMAT, adaptername, (intptr_t) mh, saved_sp);
355 print_method_handle(mh); 356 print_method_handle(mh);
356 } 357 }
357 void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) { 358 void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
358 if (!TraceMethodHandles) return; 359 if (!TraceMethodHandles) return;
359 BLOCK_COMMENT("trace_method_handle {"); 360 BLOCK_COMMENT("trace_method_handle {");
360 // save: Gargs, O5_savedSP 361 // save: Gargs, O5_savedSP
361 __ save_frame(16); 362 __ save_frame(16);
362 __ set((intptr_t) adaptername, O0); 363 __ set((intptr_t) adaptername, O0);
363 __ mov(G3_method_handle, O1); 364 __ mov(G3_method_handle, O1);
365 __ mov(I5_savedSP, O2);
364 __ mov(G3_method_handle, L3); 366 __ mov(G3_method_handle, L3);
365 __ mov(Gargs, L4); 367 __ mov(Gargs, L4);
366 __ mov(G5_method_type, L5); 368 __ mov(G5_method_type, L5);
367 __ call_VM_leaf(L7, CAST_FROM_FN_PTR(address, trace_method_handle_stub)); 369 __ call_VM_leaf(L7, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
368 370