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; |
2776 __ mov(G0, tmp->successor()); |
2775 __ mov(G0, tmp->successor()); |
2777 } |
2776 } |
2778 __ br_null(in_reg, true, Assembler::pn, skipUnbox); |
2777 __ br_null(in_reg, true, Assembler::pn, skipUnbox); |
2779 __ delayed()->mov(G0, tmp); |
2778 __ delayed()->mov(G0, tmp); |
2780 |
2779 |
2781 switch (out_sig_bt[c_arg]) { |
2780 BasicType bt = out_sig_bt[c_arg]; |
|
2781 int box_offset = java_lang_boxing_object::value_offset_in_bytes(bt); |
|
2782 switch (bt) { |
2782 case T_BYTE: |
2783 case T_BYTE: |
2783 __ ldub(in_reg, box_offset, tmp); break; |
2784 __ ldub(in_reg, box_offset, tmp); break; |
2784 case T_SHORT: |
2785 case T_SHORT: |
2785 __ lduh(in_reg, box_offset, tmp); break; |
2786 __ lduh(in_reg, box_offset, tmp); break; |
2786 case T_INT: |
2787 case T_INT: |