mirror of
https://github.com/openjdk/jdk.git
synced 2026-04-06 21:18:42 +00:00
Remove UseCCP from cpu/ppc
This commit is contained in:
parent
1f7c2a7ae9
commit
bd5c185c9b
@ -144,7 +144,7 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
|
||||
|
||||
if (len->is_valid()) {
|
||||
stw(len, arrayOopDesc::length_offset_in_bytes(), obj);
|
||||
} else if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE && !UseCompactObjectHeaders) {
|
||||
} else if (!UseCompactObjectHeaders) {
|
||||
// Otherwise length is in the class gap.
|
||||
store_klass_gap(obj);
|
||||
}
|
||||
|
||||
@ -3185,23 +3185,17 @@ Register MacroAssembler::encode_klass_not_null(Register dst, Register src) {
|
||||
|
||||
void MacroAssembler::store_klass(Register dst_oop, Register klass, Register ck) {
|
||||
assert(!UseCompactObjectHeaders, "not with compact headers");
|
||||
if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
Register compressedKlass = encode_klass_not_null(ck, klass);
|
||||
stw(compressedKlass, oopDesc::klass_offset_in_bytes(), dst_oop);
|
||||
} else {
|
||||
std(klass, oopDesc::klass_offset_in_bytes(), dst_oop);
|
||||
}
|
||||
Register compressedKlass = encode_klass_not_null(ck, klass);
|
||||
stw(compressedKlass, oopDesc::klass_offset_in_bytes(), dst_oop);
|
||||
}
|
||||
|
||||
void MacroAssembler::store_klass_gap(Register dst_oop, Register val) {
|
||||
assert(!UseCompactObjectHeaders, "not with compact headers");
|
||||
if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
if (val == noreg) {
|
||||
val = R0;
|
||||
li(val, 0);
|
||||
}
|
||||
stw(val, oopDesc::klass_gap_offset_in_bytes(), dst_oop);
|
||||
if (val == noreg) {
|
||||
val = R0;
|
||||
li(val, 0);
|
||||
}
|
||||
stw(val, oopDesc::klass_gap_offset_in_bytes(), dst_oop);
|
||||
}
|
||||
|
||||
int MacroAssembler::instr_size_for_decode_klass_not_null() {
|
||||
@ -3210,17 +3204,13 @@ int MacroAssembler::instr_size_for_decode_klass_not_null() {
|
||||
// Not yet computed?
|
||||
if (computed_size == -1) {
|
||||
|
||||
if (!USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
computed_size = 0;
|
||||
} else {
|
||||
// Determine by scratch emit.
|
||||
ResourceMark rm;
|
||||
int code_size = 8 * BytesPerInstWord;
|
||||
CodeBuffer cb("decode_klass_not_null scratch buffer", code_size, 0);
|
||||
MacroAssembler* a = new MacroAssembler(&cb);
|
||||
a->decode_klass_not_null(R11_scratch1);
|
||||
computed_size = a->offset();
|
||||
}
|
||||
// Determine by scratch emit.
|
||||
ResourceMark rm;
|
||||
int code_size = 8 * BytesPerInstWord;
|
||||
CodeBuffer cb("decode_klass_not_null scratch buffer", code_size, 0);
|
||||
MacroAssembler* a = new MacroAssembler(&cb);
|
||||
a->decode_klass_not_null(R11_scratch1);
|
||||
computed_size = a->offset();
|
||||
}
|
||||
|
||||
return computed_size;
|
||||
@ -3243,18 +3233,14 @@ void MacroAssembler::decode_klass_not_null(Register dst, Register src) {
|
||||
void MacroAssembler::load_klass_no_decode(Register dst, Register src) {
|
||||
if (UseCompactObjectHeaders) {
|
||||
load_narrow_klass_compact(dst, src);
|
||||
} else if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
lwz(dst, oopDesc::klass_offset_in_bytes(), src);
|
||||
} else {
|
||||
ld(dst, oopDesc::klass_offset_in_bytes(), src);
|
||||
lwz(dst, oopDesc::klass_offset_in_bytes(), src);
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::load_klass(Register dst, Register src) {
|
||||
load_klass_no_decode(dst, src);
|
||||
if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) { // also true for UseCompactObjectHeaders
|
||||
decode_klass_not_null(dst);
|
||||
}
|
||||
decode_klass_not_null(dst);
|
||||
}
|
||||
|
||||
// Loads the obj's Klass* into dst.
|
||||
@ -3270,18 +3256,13 @@ void MacroAssembler::load_narrow_klass_compact(Register dst, Register src) {
|
||||
|
||||
void MacroAssembler::cmp_klass(ConditionRegister dst, Register obj, Register klass, Register tmp, Register tmp2) {
|
||||
assert_different_registers(obj, klass, tmp);
|
||||
if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
if (UseCompactObjectHeaders) {
|
||||
load_narrow_klass_compact(tmp, obj);
|
||||
} else {
|
||||
lwz(tmp, oopDesc::klass_offset_in_bytes(), obj);
|
||||
}
|
||||
Register encoded_klass = encode_klass_not_null(tmp2, klass);
|
||||
cmpw(dst, tmp, encoded_klass);
|
||||
if (UseCompactObjectHeaders) {
|
||||
load_narrow_klass_compact(tmp, obj);
|
||||
} else {
|
||||
ld(tmp, oopDesc::klass_offset_in_bytes(), obj);
|
||||
cmpd(dst, tmp, klass);
|
||||
lwz(tmp, oopDesc::klass_offset_in_bytes(), obj);
|
||||
}
|
||||
Register encoded_klass = encode_klass_not_null(tmp2, klass);
|
||||
cmpw(dst, tmp, encoded_klass);
|
||||
}
|
||||
|
||||
void MacroAssembler::cmp_klasses_from_objects(ConditionRegister dst, Register obj1, Register obj2, Register tmp1, Register tmp2) {
|
||||
@ -3289,14 +3270,10 @@ void MacroAssembler::cmp_klasses_from_objects(ConditionRegister dst, Register ob
|
||||
load_narrow_klass_compact(tmp1, obj1);
|
||||
load_narrow_klass_compact(tmp2, obj2);
|
||||
cmpw(dst, tmp1, tmp2);
|
||||
} else if (USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE) {
|
||||
} else {
|
||||
lwz(tmp1, oopDesc::klass_offset_in_bytes(), obj1);
|
||||
lwz(tmp2, oopDesc::klass_offset_in_bytes(), obj2);
|
||||
cmpw(dst, tmp1, tmp2);
|
||||
} else {
|
||||
ld(tmp1, oopDesc::klass_offset_in_bytes(), obj1);
|
||||
ld(tmp2, oopDesc::klass_offset_in_bytes(), obj2);
|
||||
cmpd(dst, tmp1, tmp2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +88,6 @@
|
||||
|
||||
static bool narrow_klass_use_complex_address() {
|
||||
NOT_LP64(ShouldNotCallThis());
|
||||
assert(USE_COMPRESSED_CLASS_POINTERS_ALWAYS_TRUE, "only for compressed klass code");
|
||||
// TODO: PPC port if (MatchDecodeNodes) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user