comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 344:6aae2f9d0294

Merge
author ysr
date Thu, 12 Jun 2008 13:50:55 -0700
parents 37f87013dfd8 1f809e010142
children 1ee8caae33af
comparison
equal deleted inserted replaced
342:37f87013dfd8 344:6aae2f9d0294
2554 2554
2555 int i=0; 2555 int i=0;
2556 int total_strings = 0; 2556 int total_strings = 0;
2557 int first_arg_to_pass = 0; 2557 int first_arg_to_pass = 0;
2558 int total_c_args = 0; 2558 int total_c_args = 0;
2559 int box_offset = java_lang_boxing_object::value_offset_in_bytes();
2560 2559
2561 // Skip the receiver as dtrace doesn't want to see it 2560 // Skip the receiver as dtrace doesn't want to see it
2562 if( !method->is_static() ) { 2561 if( !method->is_static() ) {
2563 in_sig_bt[i++] = T_OBJECT; 2562 in_sig_bt[i++] = T_OBJECT;
2564 first_arg_to_pass = 1; 2563 first_arg_to_pass = 1;
2719 } 2718 }
2720 2719
2721 #endif /* ASSERT */ 2720 #endif /* ASSERT */
2722 2721
2723 VMRegPair zero; 2722 VMRegPair zero;
2724 zero.set2(G0->as_VMReg()); 2723 const Register g0 = G0; // without this we get a compiler warning (why??)
2724 zero.set2(g0->as_VMReg());
2725 2725
2726 int c_arg, j_arg; 2726 int c_arg, j_arg;
2727 2727
2728 Register conversion_off = noreg; 2728 Register conversion_off = noreg;
2729 2729
2776 __ mov(G0, tmp->successor()); 2776 __ mov(G0, tmp->successor());
2777 } 2777 }
2778 __ br_null(in_reg, true, Assembler::pn, skipUnbox); 2778 __ br_null(in_reg, true, Assembler::pn, skipUnbox);
2779 __ delayed()->mov(G0, tmp); 2779 __ delayed()->mov(G0, tmp);
2780 2780
2781 switch (out_sig_bt[c_arg]) { 2781 BasicType bt = out_sig_bt[c_arg];
2782 int box_offset = java_lang_boxing_object::value_offset_in_bytes(bt);
2783 switch (bt) {
2782 case T_BYTE: 2784 case T_BYTE:
2783 __ ldub(in_reg, box_offset, tmp); break; 2785 __ ldub(in_reg, box_offset, tmp); break;
2784 case T_SHORT: 2786 case T_SHORT:
2785 __ lduh(in_reg, box_offset, tmp); break; 2787 __ lduh(in_reg, box_offset, tmp); break;
2786 case T_INT: 2788 case T_INT: