Mercurial > hg > truffle
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); |