src/hotspot/cpu/x86/macroAssembler_x86.cpp
changeset 49455 848864ed9b17
parent 49449 ef5d5d343e2a
child 49614 3b1570be8557
equal deleted inserted replaced
49454:689ebcfe04fd 49455:848864ed9b17
    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