comparison src/cpu/sparc/vm/methodHandles_sparc.cpp @ 3342:8d944991dbf9

7041244: JSR 292: Server VM gets a SEGV running a JCK test Reviewed-by: iveresov, kvn, never
author twisti
date Wed, 04 May 2011 00:41:48 -0700
parents 2e038ad0c1d0
children fabcf26ee72f
comparison
equal deleted inserted replaced
3336:2e038ad0c1d0 3342:8d944991dbf9
643 __ delayed()->nop(); 643 __ delayed()->nop();
644 __ load_klass(O1_scratch, O1_scratch); 644 __ load_klass(O1_scratch, O1_scratch);
645 645
646 // Live at this point: 646 // Live at this point:
647 // - G5_klass : klass required by the target method 647 // - G5_klass : klass required by the target method
648 // - O0_argslot : argslot index in vmarg; may be required in the failing path
648 // - O1_scratch : argument klass to test 649 // - O1_scratch : argument klass to test
649 // - G3_method_handle: adapter method handle 650 // - G3_method_handle: adapter method handle
650 __ check_klass_subtype(O1_scratch, G5_klass, O0_argslot, O2_scratch, done); 651 __ check_klass_subtype(O1_scratch, G5_klass, O2_scratch, O3_scratch, done);
651 652
652 // If we get here, the type check failed! 653 // If we get here, the type check failed!
653 __ load_heap_oop(G3_amh_argument, O2_required); // required class 654 __ load_heap_oop(G3_amh_argument, O2_required); // required class
654 __ ld_ptr( vmarg, O1_actual); // bad object 655 __ ld_ptr( vmarg, O1_actual); // bad object
655 __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O3_scratch); 656 __ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O3_scratch);