Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalCompilerToVM.cpp @ 7154:5d0bb7d52783
changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 12 Dec 2012 21:36:40 +0100 |
parents | 88d626e2c2a8 |
children | 291ffc492eb6 8a3efb8c831d |
comparison
equal
deleted
inserted
replaced
7153:c421c19b7bf8 | 7154:5d0bb7d52783 |
---|---|
587 #define set_object(name, value) do { env->SetObjectField(config, getFieldID(env, config, name, "Ljava/lang/Object;"), value); } while (0) | 587 #define set_object(name, value) do { env->SetObjectField(config, getFieldID(env, config, name, "Ljava/lang/Object;"), value); } while (0) |
588 #define set_int_array(name, value) do { env->SetObjectField(config, getFieldID(env, config, name, "[I"), value); } while (0) | 588 #define set_int_array(name, value) do { env->SetObjectField(config, getFieldID(env, config, name, "[I"), value); } while (0) |
589 | 589 |
590 guarantee(HeapWordSize == sizeof(char*), "Graal assumption that HeadWordSize == machine word size is wrong"); | 590 guarantee(HeapWordSize == sizeof(char*), "Graal assumption that HeadWordSize == machine word size is wrong"); |
591 #ifdef _WIN64 | 591 #ifdef _WIN64 |
592 set_boolean(env, config, "windowsOs", true); | 592 set_boolean("windowsOs", true); |
593 #else | 593 #else |
594 set_boolean("windowsOs", false); | 594 set_boolean("windowsOs", false); |
595 #endif | 595 #endif |
596 set_boolean("verifyOops", VerifyOops); | 596 set_boolean("verifyOops", VerifyOops); |
597 set_boolean("useFastLocking", UseFastLocking); | 597 set_boolean("useFastLocking", GraalUseFastLocking); |
598 set_boolean("useFastNewObjectArray", UseFastNewObjectArray); | |
599 set_boolean("useBiasedLocking", UseBiasedLocking); | 598 set_boolean("useBiasedLocking", UseBiasedLocking); |
600 set_boolean("useFastNewTypeArray", UseFastNewTypeArray); | |
601 set_boolean("useTLAB", UseTLAB); | 599 set_boolean("useTLAB", UseTLAB); |
602 set_int("codeEntryAlignment", CodeEntryAlignment); | 600 set_int("codeEntryAlignment", CodeEntryAlignment); |
603 set_int("vmPageSize", os::vm_page_size()); | 601 set_int("vmPageSize", os::vm_page_size()); |
604 set_int("stackShadowPages", StackShadowPages); | 602 set_int("stackShadowPages", StackShadowPages); |
605 set_int("hubOffset", oopDesc::klass_offset_in_bytes()); | 603 set_int("hubOffset", oopDesc::klass_offset_in_bytes()); |
626 set_int("extraStackEntries", Method::extra_stack_entries()); | 624 set_int("extraStackEntries", Method::extra_stack_entries()); |
627 set_int("methodAccessFlagsOffset", in_bytes(Method::access_flags_offset())); | 625 set_int("methodAccessFlagsOffset", in_bytes(Method::access_flags_offset())); |
628 set_int("klassHasFinalizerFlag", JVM_ACC_HAS_FINALIZER); | 626 set_int("klassHasFinalizerFlag", JVM_ACC_HAS_FINALIZER); |
629 set_int("threadExceptionOopOffset", in_bytes(JavaThread::exception_oop_offset())); | 627 set_int("threadExceptionOopOffset", in_bytes(JavaThread::exception_oop_offset())); |
630 set_int("threadExceptionPcOffset", in_bytes(JavaThread::exception_pc_offset())); | 628 set_int("threadExceptionPcOffset", in_bytes(JavaThread::exception_pc_offset())); |
631 set_long("safepointPollingAddress", (jlong)(os::get_polling_page() + (SafepointPollOffset % os::vm_page_size()))); | |
632 set_boolean("isPollingPageFar", Assembler::is_polling_page_far()); | 629 set_boolean("isPollingPageFar", Assembler::is_polling_page_far()); |
633 set_int("classMirrorOffset", in_bytes(Klass::java_mirror_offset())); | 630 set_int("classMirrorOffset", in_bytes(Klass::java_mirror_offset())); |
634 set_int("runtimeCallStackSize", (jint)frame::arg_reg_save_area_bytes); | 631 set_int("runtimeCallStackSize", (jint)frame::arg_reg_save_area_bytes); |
635 set_int("klassModifierFlagsOffset", in_bytes(Klass::modifier_flags_offset())); | 632 set_int("klassModifierFlagsOffset", in_bytes(Klass::modifier_flags_offset())); |
636 set_int("klassAccessFlagsOffset", in_bytes(Klass::access_flags_offset())); | 633 set_int("klassAccessFlagsOffset", in_bytes(Klass::access_flags_offset())); |
707 set_long("arithmeticCosStub", VmIds::addStub(CAST_FROM_FN_PTR(address, SharedRuntime::dcos))); | 704 set_long("arithmeticCosStub", VmIds::addStub(CAST_FROM_FN_PTR(address, SharedRuntime::dcos))); |
708 set_long("arithmeticTanStub", VmIds::addStub(CAST_FROM_FN_PTR(address, SharedRuntime::dtan))); | 705 set_long("arithmeticTanStub", VmIds::addStub(CAST_FROM_FN_PTR(address, SharedRuntime::dtan))); |
709 set_long("logPrimitiveStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_primitive_id))); | 706 set_long("logPrimitiveStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_primitive_id))); |
710 set_long("logObjectStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_object_id))); | 707 set_long("logObjectStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_object_id))); |
711 set_long("logPrintfStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_printf_id))); | 708 set_long("logPrintfStub", VmIds::addStub(GraalRuntime::entry_for(GraalRuntime::graal_log_printf_id))); |
709 | |
710 set_int("deoptReasonNone", Deoptimization::Reason_none); | |
711 set_int("deoptReasonNullCheck", Deoptimization::Reason_null_check); | |
712 set_int("deoptReasonRangeCheck", Deoptimization::Reason_range_check); | |
713 set_int("deoptReasonClassCheck", Deoptimization::Reason_class_check); | |
714 set_int("deoptReasonArrayCheck", Deoptimization::Reason_array_check); | |
715 set_int("deoptReasonUnreached0", Deoptimization::Reason_unreached0); | |
716 set_int("deoptReasonTypeCheckInlining", Deoptimization::Reason_type_checked_inlining); | |
717 set_int("deoptReasonOptimizedTypeCheck", Deoptimization::Reason_optimized_type_check); | |
718 set_int("deoptReasonNotCompiledExceptionHandler", Deoptimization::Reason_not_compiled_exception_handler); | |
719 set_int("deoptReasonUnresolved", Deoptimization::Reason_unresolved); | |
720 set_int("deoptReasonJsrMismatch", Deoptimization::Reason_jsr_mismatch); | |
721 set_int("deoptReasonDiv0Check", Deoptimization::Reason_div0_check); | |
722 set_int("deoptReasonConstraint", Deoptimization::Reason_constraint); | |
723 | |
724 set_int("deoptActionNone", Deoptimization::Action_none); | |
725 set_int("deoptActionMaybeRecompile", Deoptimization::Action_maybe_recompile); | |
726 set_int("deoptActionReinterpret", Deoptimization::Action_reinterpret); | |
727 set_int("deoptActionMakeNotEntrant", Deoptimization::Action_make_not_entrant); | |
728 set_int("deoptActionMakeNotCompilable", Deoptimization::Action_make_not_compilable); | |
712 | 729 |
713 | 730 |
714 BarrierSet* bs = Universe::heap()->barrier_set(); | 731 BarrierSet* bs = Universe::heap()->barrier_set(); |
715 switch (bs->kind()) { | 732 switch (bs->kind()) { |
716 case BarrierSet::CardTableModRef: | 733 case BarrierSet::CardTableModRef: |