< prev index next >

src/hotspot/cpu/ppc/gc/shenandoah/shenandoahBarrierSetAssembler_ppc.cpp

Print this page

1081   __ call_VM_leaf(jrt_address, R3_obj, R4_load_addr);
1082 
1083   // Restore to-be-preserved registers.
1084   __ pop_frame();
1085   __ restore_LR(R11_tmp);
1086   __ restore_volatile_gprs(R1_SP, -nbytes_save, true, false); // Skip 'R3_RET' register.
1087 
1088   __ blr();
1089   __ block_comment("} generate_c1_load_reference_barrier_runtime_stub (shenandoahgc)");
1090 }
1091 
1092 #undef __
1093 
1094 #endif // COMPILER1
1095 
1096 #ifdef COMPILER2
1097 
1098 #undef __
1099 #define __ masm.
1100 













1101 bool ShenandoahBarrierStubC2::has_live_vector_registers() {
1102   // TODO: Implement; currently assumes vector registers.
1103   return true;
1104 }
1105 
1106 void ShenandoahBarrierStubC2::emit_code(MacroAssembler& masm) {
1107   assert(_needs_keep_alive_barrier || _needs_load_ref_barrier, "Why are you here?");
1108   Unimplemented();
1109 }
1110 
1111 void ShenandoahBarrierStubC2::post_init(int offset) {
1112   // Do nothing.
1113 }
1114 
1115 #endif // COMPILER2

1081   __ call_VM_leaf(jrt_address, R3_obj, R4_load_addr);
1082 
1083   // Restore to-be-preserved registers.
1084   __ pop_frame();
1085   __ restore_LR(R11_tmp);
1086   __ restore_volatile_gprs(R1_SP, -nbytes_save, true, false); // Skip 'R3_RET' register.
1087 
1088   __ blr();
1089   __ block_comment("} generate_c1_load_reference_barrier_runtime_stub (shenandoahgc)");
1090 }
1091 
1092 #undef __
1093 
1094 #endif // COMPILER1
1095 
1096 #ifdef COMPILER2
1097 
1098 #undef __
1099 #define __ masm.
1100 
1101 address ShenandoahBarrierSetAssembler::parse_stub_address(address pc) {
1102   Unimplemented();
1103   return nullptr;
1104 }
1105 
1106 void ShenandoahBarrierSetAssembler::patch_branch_to_nop(address pc) {
1107   Unimplemented();
1108 }
1109 
1110 void ShenandoahBarrierSetAssembler::patch_nop_to_branch(address pc, address stub_addr) {
1111   Unimplemented();
1112 }
1113 
1114 bool ShenandoahBarrierStubC2::has_live_vector_registers() {
1115   // TODO: Implement; currently assumes vector registers.
1116   return true;
1117 }
1118 
1119 void ShenandoahBarrierStubC2::emit_code(MacroAssembler& masm) {
1120   assert(_needs_keep_alive_barrier || _needs_load_ref_barrier, "Why are you here?");
1121   Unimplemented();
1122 }
1123 




1124 #endif // COMPILER2
< prev index next >