equal
deleted
inserted
replaced
25 |
25 |
26 #include "precompiled.hpp" |
26 #include "precompiled.hpp" |
27 #include "asm/macroAssembler.inline.hpp" |
27 #include "asm/macroAssembler.inline.hpp" |
28 #include "compiler/disassembler.hpp" |
28 #include "compiler/disassembler.hpp" |
29 #include "gc/shared/cardTable.hpp" |
29 #include "gc/shared/cardTable.hpp" |
30 #include "gc/shared/cardTableModRefBS.hpp" |
30 #include "gc/shared/cardTableBarrierSet.hpp" |
31 #include "gc/shared/collectedHeap.inline.hpp" |
31 #include "gc/shared/collectedHeap.inline.hpp" |
32 #include "interpreter/interpreter.hpp" |
32 #include "interpreter/interpreter.hpp" |
33 #include "memory/resourceArea.hpp" |
33 #include "memory/resourceArea.hpp" |
34 #include "nativeInst_ppc.hpp" |
34 #include "nativeInst_ppc.hpp" |
35 #include "prims/methodHandles.hpp" |
35 #include "prims/methodHandles.hpp" |
3034 |
3034 |
3035 // GC barrier helper macros |
3035 // GC barrier helper macros |
3036 |
3036 |
3037 // Write the card table byte if needed. |
3037 // Write the card table byte if needed. |
3038 void MacroAssembler::card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp) { |
3038 void MacroAssembler::card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp) { |
3039 CardTableModRefBS* bs = |
3039 CardTableBarrierSet* bs = |
3040 barrier_set_cast<CardTableModRefBS>(Universe::heap()->barrier_set()); |
3040 barrier_set_cast<CardTableBarrierSet>(Universe::heap()->barrier_set()); |
3041 assert(bs->kind() == BarrierSet::CardTableModRef, "wrong barrier"); |
3041 assert(bs->kind() == BarrierSet::CardTableBarrierSet, "wrong barrier"); |
3042 CardTable* ct = bs->card_table(); |
3042 CardTable* ct = bs->card_table(); |
3043 #ifdef ASSERT |
3043 #ifdef ASSERT |
3044 cmpdi(CCR0, Rnew_val, 0); |
3044 cmpdi(CCR0, Rnew_val, 0); |
3045 asm_assert_ne("null oop not allowed", 0x321); |
3045 asm_assert_ne("null oop not allowed", 0x321); |
3046 #endif |
3046 #endif |