< prev index next > src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp
Print this page
int available_gp_registers();
bool is_live_register(Register reg);
bool is_special_register(Register reg);
Register select_temp_register(bool& selected_live, Register skip_reg1 = noreg, Register skip_reg2 = noreg);
+ int max_branch_reach();
+
void maybe_far_jump_if_zero(MacroAssembler& masm, Register reg);
- void enter_if_gc_state(MacroAssembler& masm, const char test_state, Register tmp);
+ void patchable_jump(MacroAssembler& masm, const char test_state, bool active, Label* L_target, bool needs_far_jump);
+
+ void patchable_short_jump_if_gc_state(MacroAssembler& masm, const char test_state, Label* L_target) {
+ patchable_jump(masm, test_state, true, L_target, false);
+ }
+ void patchable_short_jump_if_not_gc_state(MacroAssembler& masm, const char test_state, Label* L_target) {
+ patchable_jump(masm, test_state, false, L_target, false);
+ }
+ void patchable_jump_if_gc_state(MacroAssembler& masm, const char test_state, Label* L_target) {
+ patchable_jump(masm, test_state, true, L_target, _needs_far_jump);
+ }
+ void patchable_jump_if_not_gc_state(MacroAssembler& masm, const char test_state, Label* L_target) {
+ patchable_jump(masm, test_state, false, L_target, _needs_far_jump);
+ }
+
+ void enter_if_gc_state(MacroAssembler& masm, const char test_state);
void keepalive(MacroAssembler& masm, Label* L_done);
void lrb(MacroAssembler& masm);
static void cardtable(MacroAssembler& masm, Address addr, Register tmp1, Register tmp2);
< prev index next >