< prev index next >
src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp
Print this page
*** 26,36 ****
#include "asm/macroAssembler.inline.hpp"
#include "gc/shared/barrierSet.hpp"
#include "gc/shared/cardTable.hpp"
#include "gc/shared/cardTableBarrierSet.hpp"
#include "gc/shared/cardTableBarrierSetAssembler.hpp"
- #include "gc/shared/collectedHeap.hpp"
#define __ masm->
#ifdef PRODUCT
#define BLOCK_COMMENT(str) /* nothing */
--- 26,35 ----
*** 42,52 ****
#define TIMES_OOP (UseCompressedOops ? Address::times_4 : Address::times_8)
void CardTableBarrierSetAssembler::gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators,
Register addr, Register count, Register tmp) {
! BarrierSet *bs = Universe::heap()->barrier_set();
CardTableBarrierSet* ctbs = barrier_set_cast<CardTableBarrierSet>(bs);
CardTable* ct = ctbs->card_table();
assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
intptr_t disp = (intptr_t) ct->byte_map_base();
--- 41,51 ----
#define TIMES_OOP (UseCompressedOops ? Address::times_4 : Address::times_8)
void CardTableBarrierSetAssembler::gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators,
Register addr, Register count, Register tmp) {
! BarrierSet *bs = BarrierSet::barrier_set();
CardTableBarrierSet* ctbs = barrier_set_cast<CardTableBarrierSet>(bs);
CardTable* ct = ctbs->card_table();
assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
intptr_t disp = (intptr_t) ct->byte_map_base();
*** 87,97 ****
}
void CardTableBarrierSetAssembler::store_check(MacroAssembler* masm, Register obj, Address dst) {
// Does a store check for the oop in register obj. The content of
// register obj is destroyed afterwards.
! BarrierSet* bs = Universe::heap()->barrier_set();
CardTableBarrierSet* ct = barrier_set_cast<CardTableBarrierSet>(bs);
assert(sizeof(*ct->card_table()->byte_map_base()) == sizeof(jbyte), "adjust this code");
__ shrptr(obj, CardTable::card_shift);
--- 86,96 ----
}
void CardTableBarrierSetAssembler::store_check(MacroAssembler* masm, Register obj, Address dst) {
// Does a store check for the oop in register obj. The content of
// register obj is destroyed afterwards.
! BarrierSet* bs = BarrierSet::barrier_set();
CardTableBarrierSet* ct = barrier_set_cast<CardTableBarrierSet>(bs);
assert(sizeof(*ct->card_table()->byte_map_base()) == sizeof(jbyte), "adjust this code");
__ shrptr(obj, CardTable::card_shift);
< prev index next >