equal
deleted
inserted
replaced
26 #include "jvm.h" |
26 #include "jvm.h" |
27 #include "asm/assembler.hpp" |
27 #include "asm/assembler.hpp" |
28 #include "asm/assembler.inline.hpp" |
28 #include "asm/assembler.inline.hpp" |
29 #include "compiler/disassembler.hpp" |
29 #include "compiler/disassembler.hpp" |
30 #include "gc/shared/cardTable.hpp" |
30 #include "gc/shared/cardTable.hpp" |
31 #include "gc/shared/cardTableModRefBS.hpp" |
31 #include "gc/shared/cardTableBarrierSet.hpp" |
32 #include "gc/shared/collectedHeap.inline.hpp" |
32 #include "gc/shared/collectedHeap.inline.hpp" |
33 #include "interpreter/interpreter.hpp" |
33 #include "interpreter/interpreter.hpp" |
34 #include "memory/resourceArea.hpp" |
34 #include "memory/resourceArea.hpp" |
35 #include "memory/universe.hpp" |
35 #include "memory/universe.hpp" |
36 #include "oops/klass.inline.hpp" |
36 #include "oops/klass.inline.hpp" |
5407 Address queue_index(thread, in_bytes(JavaThread::dirty_card_queue_offset() + |
5407 Address queue_index(thread, in_bytes(JavaThread::dirty_card_queue_offset() + |
5408 DirtyCardQueue::byte_offset_of_index())); |
5408 DirtyCardQueue::byte_offset_of_index())); |
5409 Address buffer(thread, in_bytes(JavaThread::dirty_card_queue_offset() + |
5409 Address buffer(thread, in_bytes(JavaThread::dirty_card_queue_offset() + |
5410 DirtyCardQueue::byte_offset_of_buf())); |
5410 DirtyCardQueue::byte_offset_of_buf())); |
5411 |
5411 |
5412 CardTableModRefBS* ctbs = |
5412 CardTableBarrierSet* ctbs = |
5413 barrier_set_cast<CardTableModRefBS>(Universe::heap()->barrier_set()); |
5413 barrier_set_cast<CardTableBarrierSet>(Universe::heap()->barrier_set()); |
5414 CardTable* ct = ctbs->card_table(); |
5414 CardTable* ct = ctbs->card_table(); |
5415 assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
5415 assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
5416 |
5416 |
5417 Label done; |
5417 Label done; |
5418 Label runtime; |
5418 Label runtime; |
5495 |
5495 |
5496 void MacroAssembler::store_check(Register obj) { |
5496 void MacroAssembler::store_check(Register obj) { |
5497 // Does a store check for the oop in register obj. The content of |
5497 // Does a store check for the oop in register obj. The content of |
5498 // register obj is destroyed afterwards. |
5498 // register obj is destroyed afterwards. |
5499 BarrierSet* bs = Universe::heap()->barrier_set(); |
5499 BarrierSet* bs = Universe::heap()->barrier_set(); |
5500 assert(bs->kind() == BarrierSet::CardTableModRef, |
5500 assert(bs->kind() == BarrierSet::CardTableBarrierSet, |
5501 "Wrong barrier set kind"); |
5501 "Wrong barrier set kind"); |
5502 |
5502 |
5503 CardTableModRefBS* ctbs = barrier_set_cast<CardTableModRefBS>(bs); |
5503 CardTableBarrierSet* ctbs = barrier_set_cast<CardTableBarrierSet>(bs); |
5504 CardTable* ct = ctbs->card_table(); |
5504 CardTable* ct = ctbs->card_table(); |
5505 assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
5505 assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
5506 |
5506 |
5507 shrptr(obj, CardTable::card_shift); |
5507 shrptr(obj, CardTable::card_shift); |
5508 |
5508 |