555 Label& DONE_LABEL);
556 #endif
557
558 void compiler_fast_lock_object(ConditionRegister flag, Register oop, Register box,
559 Register tmp1, Register tmp2, Register tmp3,
560 bool try_bias = UseBiasedLocking,
561 RTMLockingCounters* rtm_counters = NULL,
562 RTMLockingCounters* stack_rtm_counters = NULL,
563 Metadata* method_data = NULL,
564 bool use_rtm = false, bool profile_rtm = false);
565
566 void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box,
567 Register tmp1, Register tmp2, Register tmp3,
568 bool try_bias = UseBiasedLocking, bool use_rtm = false);
569
570 // Support for serializing memory accesses between threads
571 void serialize_memory(Register thread, Register tmp1, Register tmp2);
572
573 // GC barrier support.
574 void card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp);
575 void card_table_write(jbyte* byte_map_base, Register Rtmp, Register Robj);
576
577 #if INCLUDE_ALL_GCS
578 // General G1 pre-barrier generator.
579 void g1_write_barrier_pre(Register Robj, RegisterOrConstant offset, Register Rpre_val,
580 Register Rtmp1, Register Rtmp2, bool needs_frame = false);
581 // General G1 post-barrier generator
582 void g1_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp1,
583 Register Rtmp2, Register Rtmp3, Label *filtered_ext = NULL);
584 #endif
585
586 // Support for managing the JavaThread pointer (i.e.; the reference to
587 // thread-local information).
588
589 // Support for last Java frame (but use call_VM instead where possible):
590 // access R16_thread->last_Java_sp.
591 void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
592 void reset_last_Java_frame(void);
593 void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
594
595 // Read vm result from thread: oop_result = R16_thread->result;
|
555 Label& DONE_LABEL);
556 #endif
557
558 void compiler_fast_lock_object(ConditionRegister flag, Register oop, Register box,
559 Register tmp1, Register tmp2, Register tmp3,
560 bool try_bias = UseBiasedLocking,
561 RTMLockingCounters* rtm_counters = NULL,
562 RTMLockingCounters* stack_rtm_counters = NULL,
563 Metadata* method_data = NULL,
564 bool use_rtm = false, bool profile_rtm = false);
565
566 void compiler_fast_unlock_object(ConditionRegister flag, Register oop, Register box,
567 Register tmp1, Register tmp2, Register tmp3,
568 bool try_bias = UseBiasedLocking, bool use_rtm = false);
569
570 // Support for serializing memory accesses between threads
571 void serialize_memory(Register thread, Register tmp1, Register tmp2);
572
573 // GC barrier support.
574 void card_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp);
575 void card_table_write(volatile jbyte* byte_map_base, Register Rtmp, Register Robj);
576
577 #if INCLUDE_ALL_GCS
578 // General G1 pre-barrier generator.
579 void g1_write_barrier_pre(Register Robj, RegisterOrConstant offset, Register Rpre_val,
580 Register Rtmp1, Register Rtmp2, bool needs_frame = false);
581 // General G1 post-barrier generator
582 void g1_write_barrier_post(Register Rstore_addr, Register Rnew_val, Register Rtmp1,
583 Register Rtmp2, Register Rtmp3, Label *filtered_ext = NULL);
584 #endif
585
586 // Support for managing the JavaThread pointer (i.e.; the reference to
587 // thread-local information).
588
589 // Support for last Java frame (but use call_VM instead where possible):
590 // access R16_thread->last_Java_sp.
591 void set_last_Java_frame(Register last_java_sp, Register last_Java_pc);
592 void reset_last_Java_frame(void);
593 void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1);
594
595 // Read vm result from thread: oop_result = R16_thread->result;
|