comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 165:437d03ea40b1

6703888: Compressed Oops: use the 32-bits gap after klass in a object Summary: Use the gap also for a narrow oop field and a boxing object value. Reviewed-by: coleenp, never
author kvn
date Wed, 21 May 2008 16:31:35 -0700
parents 018d5b58dd4f
children 1f809e010142
comparison
equal deleted inserted replaced
164:c436414a719e 165:437d03ea40b1
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: