8218767: ZGC: Do not assume that r12 is a special register in C2
Reviewed-by: eosterlund, rkennke
This commit is contained in:
parent
3df5e4fabb
commit
865c33112c
@ -359,7 +359,7 @@ void ZBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler*
|
|||||||
// ZBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded().
|
// ZBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded().
|
||||||
static address generate_load_barrier_stub(StubCodeGenerator* cgen, Register raddr, DecoratorSet decorators) {
|
static address generate_load_barrier_stub(StubCodeGenerator* cgen, Register raddr, DecoratorSet decorators) {
|
||||||
// Don't generate stub for invalid registers
|
// Don't generate stub for invalid registers
|
||||||
if (raddr == rsp || raddr == r12 || raddr == r15) {
|
if (raddr == rsp || raddr == r15) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,9 +26,8 @@ source %{
|
|||||||
#include "gc/z/zBarrierSetAssembler.hpp"
|
#include "gc/z/zBarrierSetAssembler.hpp"
|
||||||
|
|
||||||
static void z_load_barrier_slow_reg(MacroAssembler& _masm, Register dst, Address src, bool weak) {
|
static void z_load_barrier_slow_reg(MacroAssembler& _masm, Register dst, Address src, bool weak) {
|
||||||
assert(dst != r12, "Invalid register");
|
|
||||||
assert(dst != r15, "Invalid register");
|
|
||||||
assert(dst != rsp, "Invalid register");
|
assert(dst != rsp, "Invalid register");
|
||||||
|
assert(dst != r15, "Invalid register");
|
||||||
|
|
||||||
const address stub = weak ? ZBarrierSet::assembler()->load_barrier_weak_slow_stub(dst)
|
const address stub = weak ? ZBarrierSet::assembler()->load_barrier_weak_slow_stub(dst)
|
||||||
: ZBarrierSet::assembler()->load_barrier_slow_stub(dst);
|
: ZBarrierSet::assembler()->load_barrier_slow_stub(dst);
|
||||||
|
@ -354,7 +354,7 @@ RegMask _STACK_OR_LONG_REG_mask;
|
|||||||
RegMask _STACK_OR_INT_REG_mask;
|
RegMask _STACK_OR_INT_REG_mask;
|
||||||
|
|
||||||
static bool need_r12_heapbase() {
|
static bool need_r12_heapbase() {
|
||||||
return UseCompressedOops || UseCompressedClassPointers || UseZGC;
|
return UseCompressedOops || UseCompressedClassPointers;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reg_mask_init() {
|
void reg_mask_init() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user