< prev index next >

src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp

Print this page
rev 53582 : imported patch rename

*** 1,7 **** /* ! * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * 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 --- 1,7 ---- /* ! * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * 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
*** 27,36 **** --- 27,37 ---- #include "asm/macroAssembler.inline.hpp" #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1BarrierSetAssembler.hpp" #include "gc/g1/g1BarrierSetRuntime.hpp" #include "gc/g1/g1CardTable.hpp" + #include "gc/g1/g1DirtyCardQueue.hpp" #include "gc/g1/g1SATBMarkQueueSet.hpp" #include "gc/g1/g1ThreadLocalData.hpp" #include "gc/g1/heapRegion.hpp" #include "interpreter/interp_masm.hpp" #include "runtime/sharedRuntime.hpp"
*** 510,520 **** int dirty_card_q_index_byte_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_index_offset()); int dirty_card_q_buf_byte_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_buffer_offset()); __ bind(restart); ! // Get the index into the update buffer. DirtyCardQueue::_index is // a size_t so ld_ptr is appropriate here. __ ld(tmp2, dirty_card_q_index_byte_offset, R16_thread); // index == 0? __ cmpdi(CCR0, tmp2, 0); --- 511,521 ---- int dirty_card_q_index_byte_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_index_offset()); int dirty_card_q_buf_byte_offset = in_bytes(G1ThreadLocalData::dirty_card_queue_buffer_offset()); __ bind(restart); ! // Get the index into the update buffer. G1DirtyCardQueue::_index is // a size_t so ld_ptr is appropriate here. __ ld(tmp2, dirty_card_q_index_byte_offset, R16_thread); // index == 0? __ cmpdi(CCR0, tmp2, 0);
*** 537,547 **** const int nbytes_save = (MacroAssembler::num_volatile_regs + stack_slots) * BytesPerWord; __ save_volatile_gprs(R1_SP, -nbytes_save); // except R0 __ mflr(R0); __ std(R0, _abi(lr), R1_SP); __ push_frame_reg_args(nbytes_save, R0); // dummy frame for C call ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, DirtyCardQueueSet::handle_zero_index_for_thread), R16_thread); __ pop_frame(); __ ld(R0, _abi(lr), R1_SP); __ mtlr(R0); __ restore_volatile_gprs(R1_SP, -nbytes_save); // except R0 __ b(restart); --- 538,548 ---- const int nbytes_save = (MacroAssembler::num_volatile_regs + stack_slots) * BytesPerWord; __ save_volatile_gprs(R1_SP, -nbytes_save); // except R0 __ mflr(R0); __ std(R0, _abi(lr), R1_SP); __ push_frame_reg_args(nbytes_save, R0); // dummy frame for C call ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, G1DirtyCardQueueSet::handle_zero_index_for_thread), R16_thread); __ pop_frame(); __ ld(R0, _abi(lr), R1_SP); __ mtlr(R0); __ restore_volatile_gprs(R1_SP, -nbytes_save); // except R0 __ b(restart);
< prev index next >