comparison src/cpu/x86/vm/c1_CodeStubs_x86.cpp @ 362:f8199438385b

Merge
author apetrusenko
date Wed, 17 Sep 2008 16:49:18 +0400
parents dc7f315e41f7 37f87013dfd8
children eb28cf662f56
comparison
equal deleted inserted replaced
316:5fa96a5a7e76 362:f8199438385b
454 #endif 454 #endif
455 455
456 __ jmp(_continuation); 456 __ jmp(_continuation);
457 } 457 }
458 458
459 /////////////////////////////////////////////////////////////////////////////
460 #ifndef SERIALGC
461
462 void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
463
464 // At this point we know that marking is in progress
465
466 __ bind(_entry);
467 assert(pre_val()->is_register(), "Precondition.");
468
469 Register pre_val_reg = pre_val()->as_register();
470
471 ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
472
473 __ cmpptr(pre_val_reg, (int32_t) NULL_WORD);
474 __ jcc(Assembler::equal, _continuation);
475 ce->store_parameter(pre_val()->as_register(), 0);
476 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_pre_barrier_slow_id)));
477 __ jmp(_continuation);
478
479 }
480
481 jbyte* G1PostBarrierStub::_byte_map_base = NULL;
482
483 jbyte* G1PostBarrierStub::byte_map_base_slow() {
484 BarrierSet* bs = Universe::heap()->barrier_set();
485 assert(bs->is_a(BarrierSet::G1SATBCTLogging),
486 "Must be if we're using this.");
487 return ((G1SATBCardTableModRefBS*)bs)->byte_map_base;
488 }
489
490 void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
491 __ bind(_entry);
492 assert(addr()->is_register(), "Precondition.");
493 assert(new_val()->is_register(), "Precondition.");
494 Register new_val_reg = new_val()->as_register();
495 __ cmpptr(new_val_reg, (int32_t) NULL_WORD);
496 __ jcc(Assembler::equal, _continuation);
497 ce->store_parameter(addr()->as_register(), 0);
498 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_post_barrier_slow_id)));
499 __ jmp(_continuation);
500 }
501
502 #endif // SERIALGC
503 /////////////////////////////////////////////////////////////////////////////
459 504
460 #undef __ 505 #undef __