src/cpu/sparc/vm/macroAssembler_sparc.cpp

Print this page
rev 5190 : 8015107: NPG: Use consistent naming for metaspace concepts

*** 3909,3938 **** void MacroAssembler::load_klass(Register src_oop, Register klass) { // The number of bytes in this code is used by // MachCallDynamicJavaNode::ret_addr_offset() // if this changes, change that. ! if (UseCompressedKlassPointers) { lduw(src_oop, oopDesc::klass_offset_in_bytes(), klass); decode_klass_not_null(klass); } else { ld_ptr(src_oop, oopDesc::klass_offset_in_bytes(), klass); } } void MacroAssembler::store_klass(Register klass, Register dst_oop) { ! if (UseCompressedKlassPointers) { assert(dst_oop != klass, "not enough registers"); encode_klass_not_null(klass); st(klass, dst_oop, oopDesc::klass_offset_in_bytes()); } else { st_ptr(klass, dst_oop, oopDesc::klass_offset_in_bytes()); } } void MacroAssembler::store_klass_gap(Register s, Register d) { ! if (UseCompressedKlassPointers) { assert(s != d, "not enough registers"); st(s, d, oopDesc::klass_gap_offset_in_bytes()); } } --- 3909,3938 ---- void MacroAssembler::load_klass(Register src_oop, Register klass) { // The number of bytes in this code is used by // MachCallDynamicJavaNode::ret_addr_offset() // if this changes, change that. ! if (UseCompressedClassPointers) { lduw(src_oop, oopDesc::klass_offset_in_bytes(), klass); decode_klass_not_null(klass); } else { ld_ptr(src_oop, oopDesc::klass_offset_in_bytes(), klass); } } void MacroAssembler::store_klass(Register klass, Register dst_oop) { ! if (UseCompressedClassPointers) { assert(dst_oop != klass, "not enough registers"); encode_klass_not_null(klass); st(klass, dst_oop, oopDesc::klass_offset_in_bytes()); } else { st_ptr(klass, dst_oop, oopDesc::klass_offset_in_bytes()); } } void MacroAssembler::store_klass_gap(Register s, Register d) { ! if (UseCompressedClassPointers) { assert(s != d, "not enough registers"); st(s, d, oopDesc::klass_gap_offset_in_bytes()); } }
*** 4087,4097 **** if (Universe::narrow_oop_base() != NULL) add(dst, G6_heapbase, dst); } void MacroAssembler::encode_klass_not_null(Register r) { ! assert (UseCompressedKlassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); assert(r != G6_heapbase, "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); sub(r, G6_heapbase, r); if (Universe::narrow_klass_shift() != 0) { --- 4087,4097 ---- if (Universe::narrow_oop_base() != NULL) add(dst, G6_heapbase, dst); } void MacroAssembler::encode_klass_not_null(Register r) { ! assert (UseCompressedClassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); assert(r != G6_heapbase, "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); sub(r, G6_heapbase, r); if (Universe::narrow_klass_shift() != 0) {
*** 4103,4113 **** void MacroAssembler::encode_klass_not_null(Register src, Register dst) { if (src == dst) { encode_klass_not_null(src); } else { ! assert (UseCompressedKlassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); set((intptr_t)Universe::narrow_klass_base(), dst); sub(src, dst, dst); if (Universe::narrow_klass_shift() != 0) { srlx(dst, LogKlassAlignmentInBytes, dst); --- 4103,4113 ---- void MacroAssembler::encode_klass_not_null(Register src, Register dst) { if (src == dst) { encode_klass_not_null(src); } else { ! assert (UseCompressedClassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); set((intptr_t)Universe::narrow_klass_base(), dst); sub(src, dst, dst); if (Universe::narrow_klass_shift() != 0) { srlx(dst, LogKlassAlignmentInBytes, dst);
*** 4117,4127 **** // Function instr_size_for_decode_klass_not_null() counts the instructions // generated by decode_klass_not_null() and reinit_heapbase(). Hence, if // the instructions they generate change, then this method needs to be updated. int MacroAssembler::instr_size_for_decode_klass_not_null() { ! assert (UseCompressedKlassPointers, "only for compressed klass ptrs"); // set + add + set int num_instrs = insts_for_internal_set((intptr_t)Universe::narrow_klass_base()) + 1 + insts_for_internal_set((intptr_t)Universe::narrow_ptrs_base()); if (Universe::narrow_klass_shift() == 0) { return num_instrs * BytesPerInstWord; --- 4117,4127 ---- // Function instr_size_for_decode_klass_not_null() counts the instructions // generated by decode_klass_not_null() and reinit_heapbase(). Hence, if // the instructions they generate change, then this method needs to be updated. int MacroAssembler::instr_size_for_decode_klass_not_null() { ! assert (UseCompressedClassPointers, "only for compressed klass ptrs"); // set + add + set int num_instrs = insts_for_internal_set((intptr_t)Universe::narrow_klass_base()) + 1 + insts_for_internal_set((intptr_t)Universe::narrow_ptrs_base()); if (Universe::narrow_klass_shift() == 0) { return num_instrs * BytesPerInstWord;
*** 4133,4143 **** // !!! If the instructions that get generated here change then function // instr_size_for_decode_klass_not_null() needs to get updated. void MacroAssembler::decode_klass_not_null(Register r) { // Do not add assert code to this unless you change vtableStubs_sparc.cpp // pd_code_size_limit. ! assert (UseCompressedKlassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); assert(r != G6_heapbase, "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); if (Universe::narrow_klass_shift() != 0) sllx(r, LogKlassAlignmentInBytes, r); --- 4133,4143 ---- // !!! If the instructions that get generated here change then function // instr_size_for_decode_klass_not_null() needs to get updated. void MacroAssembler::decode_klass_not_null(Register r) { // Do not add assert code to this unless you change vtableStubs_sparc.cpp // pd_code_size_limit. ! assert (UseCompressedClassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); assert(r != G6_heapbase, "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); if (Universe::narrow_klass_shift() != 0) sllx(r, LogKlassAlignmentInBytes, r);
*** 4149,4159 **** if (src == dst) { decode_klass_not_null(src); } else { // Do not add assert code to this unless you change vtableStubs_sparc.cpp // pd_code_size_limit. ! assert (UseCompressedKlassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); if (Universe::narrow_klass_shift() != 0) { assert((src != G6_heapbase) && (dst != G6_heapbase), "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); sllx(src, LogKlassAlignmentInBytes, dst); --- 4149,4159 ---- if (src == dst) { decode_klass_not_null(src); } else { // Do not add assert code to this unless you change vtableStubs_sparc.cpp // pd_code_size_limit. ! assert (UseCompressedClassPointers, "must be compressed"); assert(Universe::narrow_klass_base() != NULL, "narrow_klass_base should be initialized"); if (Universe::narrow_klass_shift() != 0) { assert((src != G6_heapbase) && (dst != G6_heapbase), "bad register choice"); set((intptr_t)Universe::narrow_klass_base(), G6_heapbase); sllx(src, LogKlassAlignmentInBytes, dst);
*** 4165,4175 **** } } } void MacroAssembler::reinit_heapbase() { ! if (UseCompressedOops || UseCompressedKlassPointers) { if (Universe::heap() != NULL) { set((intptr_t)Universe::narrow_ptrs_base(), G6_heapbase); } else { AddressLiteral base(Universe::narrow_ptrs_base_addr()); load_ptr_contents(base, G6_heapbase); --- 4165,4175 ---- } } } void MacroAssembler::reinit_heapbase() { ! if (UseCompressedOops || UseCompressedClassPointers) { if (Universe::heap() != NULL) { set((intptr_t)Universe::narrow_ptrs_base(), G6_heapbase); } else { AddressLiteral base(Universe::narrow_ptrs_base_addr()); load_ptr_contents(base, G6_heapbase);