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
|