Mercurial > hg > truffle
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: |