Mercurial > hg > graal-jvmci-8
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)) { |