comparison src/share/vm/graal/graalRuntime.cpp @ 8499:96a337d307bd

-More progress in G1 WBs
author Christos Kotselidis <christos.kotselidis@oracle.com>
date Mon, 04 Mar 2013 16:46:37 +0100
parents b089cde44076
children 992f62c457b0
comparison
equal deleted inserted replaced
8498:c158d128fae9 8499:96a337d307bd
27 #include "graal/graalVMToCompiler.hpp" 27 #include "graal/graalVMToCompiler.hpp"
28 #include "memory/oopFactory.hpp" 28 #include "memory/oopFactory.hpp"
29 #include "prims/jvm.h" 29 #include "prims/jvm.h"
30 #include "runtime/biasedLocking.hpp" 30 #include "runtime/biasedLocking.hpp"
31 #include "runtime/interfaceSupport.hpp" 31 #include "runtime/interfaceSupport.hpp"
32 32 #include "utilities/debug.hpp"
33 // Implementation of GraalStubAssembler 33 // Implementation of GraalStubAssembler
34 34
35 GraalStubAssembler::GraalStubAssembler(CodeBuffer* code, const char * name, int stub_id) : MacroAssembler(code) { 35 GraalStubAssembler::GraalStubAssembler(CodeBuffer* code, const char * name, int stub_id) : MacroAssembler(code) {
36 _name = name; 36 _name = name;
37 _must_gc_arguments = false; 37 _must_gc_arguments = false;
481 if (TraceGraal >= 3) { 481 if (TraceGraal >= 3) {
482 tty->print_cr("%s: exiting locking slow with obj=" INTPTR_FORMAT, thread->name(), obj); 482 tty->print_cr("%s: exiting locking slow with obj=" INTPTR_FORMAT, thread->name(), obj);
483 } 483 }
484 JRT_END 484 JRT_END
485 485
486 static const bool TRACE_WB=true;
487
486 JRT_LEAF(void, GraalRuntime::graal_wb_pre_call(JavaThread* thread, oopDesc* obj)) 488 JRT_LEAF(void, GraalRuntime::graal_wb_pre_call(JavaThread* thread, oopDesc* obj))
487 tty->print_cr("HELLO PRE WRITE BARRIER"); 489 if(TRACE_WB) tty->print_cr("HELLO PRE WRITE BARRIER");
488 SharedRuntime::g1_wb_pre(obj, thread); 490 SharedRuntime::g1_wb_pre(obj, thread);
489 JRT_END 491 JRT_END
490 492
491 JRT_LEAF(void, GraalRuntime::graal_wb_post_call(JavaThread* thread, oopDesc* obj, void* card_addr)) 493 JRT_LEAF(void, GraalRuntime::graal_wb_post_call(JavaThread* thread, oopDesc* obj, void* card_addr))
492 tty->print_cr("HELLO POST WRITE BARRIER Card address 0x%016lx", card_addr); 494 if(TRACE_WB) tty->print_cr("HELLO POST WRITE BARRIER Card address 0x%016lx", card_addr);
493 thread->dirty_card_queue().enqueue(card_addr); 495 thread->dirty_card_queue().enqueue(card_addr);
496 //if(!((CardTableModRefBS*)(Universe::heap()->barrier_set()))->is_valid_card_address(obj,(signed char*)card_addr)) {
497 // tty->print_cr("Invalid worker start card");
498 //}
499
500
501 JRT_END
502
503 JRT_LEAF(void, GraalRuntime::graal_ver_oop(JavaThread* thread, oopDesc* obj))
504 if(!TRACE_WB) return;
505 if(obj==NULL) tty->print_cr("ERROR NULL in verifyoop G1 in method obj " INTPTR_FORMAT, obj);
506 if (obj!=NULL &&!obj->is_oop()) {
507 tty->print_cr("ERROR in verifyoop G1 in method obj " INTPTR_FORMAT, obj);
508
509 }else {
510 tty->print_cr("PASS in verifyoop G1 in method obj " INTPTR_FORMAT, obj);
511 }
494 JRT_END 512 JRT_END
495 513
496 JRT_LEAF(void, GraalRuntime::graal_monitorexit(JavaThread* thread, oopDesc* obj, BasicLock* lock)) 514 JRT_LEAF(void, GraalRuntime::graal_monitorexit(JavaThread* thread, oopDesc* obj, BasicLock* lock))
497 assert(thread == JavaThread::current(), "threads must correspond"); 515 assert(thread == JavaThread::current(), "threads must correspond");
498 assert(thread->last_Java_sp(), "last_Java_sp must be set"); 516 assert(thread->last_Java_sp(), "last_Java_sp must be set");
524 tty->flush(); 542 tty->flush();
525 } 543 }
526 JRT_END 544 JRT_END
527 545
528 JRT_ENTRY(void, GraalRuntime::graal_log_object(JavaThread* thread, oop obj, jint flags)) 546 JRT_ENTRY(void, GraalRuntime::graal_log_object(JavaThread* thread, oop obj, jint flags))
547 if (!obj->is_oop()) {
548 tty->print_cr("ERROR in verifyoop G1 in method obj " INTPTR_FORMAT, obj);
549
550 }else {
551 tty->print_cr("WIN in verifyoop G1 in method obj " INTPTR_FORMAT, obj);
552 }
553
554 if(obj==NULL) return;
529 bool string = mask_bits_are_true(flags, LOG_OBJECT_STRING); 555 bool string = mask_bits_are_true(flags, LOG_OBJECT_STRING);
530 bool address = mask_bits_are_true(flags, LOG_OBJECT_ADDRESS); 556 bool address = mask_bits_are_true(flags, LOG_OBJECT_ADDRESS);
531 bool newline = mask_bits_are_true(flags, LOG_OBJECT_NEWLINE); 557 bool newline = mask_bits_are_true(flags, LOG_OBJECT_NEWLINE);
532 if (!string) { 558 if (!string) {
533 if (!address && obj->is_oop_or_null(true)) { 559 if (!address && obj->is_oop_or_null(true)) {