src/cpu/sparc/vm/methodHandles_sparc.cpp

changeset 2664
3ef1a1866a60
parent 2639
8033953d67ff
child 2809
d934e4b931e9
equal deleted inserted replaced
2642:fc5ebbb2d1a8 2664:3ef1a1866a60
773 Address arg_msw(O0_argslot, -Interpreter::stackElementSize); 773 Address arg_msw(O0_argslot, -Interpreter::stackElementSize);
774 774
775 switch (ek) { 775 switch (ek) {
776 case _adapter_opt_i2l: 776 case _adapter_opt_i2l:
777 { 777 {
778 __ ldsw(arg_lsw, O2_scratch); // Load LSW 778 #ifdef _LP64
779 NOT_LP64(__ srlx(O2_scratch, BitsPerInt, O3_scratch)); // Move high bits to lower bits for std 779 __ ldsw(arg_lsw, O2_scratch); // Load LSW sign-extended
780 __ st_long(O2_scratch, arg_msw); // Uses O2/O3 on !_LP64 780 #else
781 __ ldsw(arg_lsw, O3_scratch); // Load LSW sign-extended
782 __ srlx(O3_scratch, BitsPerInt, O2_scratch); // Move MSW value to lower 32-bits for std
783 #endif
784 __ st_long(O2_scratch, arg_msw); // Uses O2/O3 on !_LP64
781 } 785 }
782 break; 786 break;
783 case _adapter_opt_unboxl: 787 case _adapter_opt_unboxl:
784 { 788 {
785 // Load the value up from the heap. 789 // Load the value up from the heap.

mercurial