< prev index next >

src/cpu/aarch64/vm/shenandoahBarrierSet_aarch64.cpp

Print this page
rev 10764 : [backport] Rename BrooksPointer to ShenandoahBrooksPointer
rev 10772 : [backport] Update copyrights
rev 10777 : [backport] Remove ShenandoahWriteBarrierRB flag

*** 1,7 **** /* ! * Copyright (c) 2015, Red Hat, Inc. and/or its affiliates. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * --- 1,7 ---- /* ! * Copyright (c) 2015, 2018, Red Hat, Inc. All rights reserved. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. *
*** 19,30 **** * or visit www.oracle.com if you need additional information or have any * questions. * */ - #include "gc_implementation/shenandoah/brooksPointer.hpp" #include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" #include "asm/macroAssembler.hpp" #include "interpreter/interpreter.hpp" #define __ masm-> --- 19,30 ---- * or visit www.oracle.com if you need additional information or have any * questions. * */ #include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" + #include "gc_implementation/shenandoah/shenandoahBrooksPointer.hpp" #include "asm/macroAssembler.hpp" #include "interpreter/interpreter.hpp" #define __ masm->
*** 39,49 **** } } void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) { if (ShenandoahReadBarrier) { ! __ ldr(dst, Address(dst, BrooksPointer::byte_offset())); } } void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst) { if (! ShenandoahWriteBarrier) { --- 39,49 ---- } } void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) { if (ShenandoahReadBarrier) { ! __ ldr(dst, Address(dst, ShenandoahBrooksPointer::byte_offset())); } } void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst) { if (! ShenandoahWriteBarrier) {
*** 62,74 **** __ mov(rscratch2, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::EVACUATION); __ tst(rscratch1, rscratch2); __ br(Assembler::EQ, done); // Heap is unstable, need to perform the read-barrier even if WB is inactive ! if (ShenandoahWriteBarrierRB) { ! __ ldr(dst, Address(dst, BrooksPointer::byte_offset())); ! } // Check for evacuation-in-progress and jump to WB slow-path if needed __ mov(rscratch2, ShenandoahHeap::EVACUATION); __ tst(rscratch1, rscratch2); __ br(Assembler::EQ, done); --- 62,72 ---- __ mov(rscratch2, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::EVACUATION); __ tst(rscratch1, rscratch2); __ br(Assembler::EQ, done); // Heap is unstable, need to perform the read-barrier even if WB is inactive ! __ ldr(dst, Address(dst, ShenandoahBrooksPointer::byte_offset())); // Check for evacuation-in-progress and jump to WB slow-path if needed __ mov(rscratch2, ShenandoahHeap::EVACUATION); __ tst(rscratch1, rscratch2); __ br(Assembler::EQ, done);
*** 96,106 **** __ bind(done); } void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) { ! __ add(obj, obj, BrooksPointer::byte_size()); __ str(obj, Address(obj, -1 * HeapWordSize)); } void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register op2) { --- 94,104 ---- __ bind(done); } void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) { ! __ add(obj, obj, ShenandoahBrooksPointer::byte_size()); __ str(obj, Address(obj, -1 * HeapWordSize)); } void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register op2) {
< prev index next >