< prev index next >

src/hotspot/cpu/s390/c1_Runtime1_s390.cpp

Print this page

191 
192 static void restore_live_registers(StubAssembler* sasm, bool restore_fpu_registers = true) {
193   __ block_comment("restore_live_registers");
194   RegisterSaver::RegisterSet reg_set =
195     restore_fpu_registers ? RegisterSaver::all_registers : RegisterSaver::all_integer_registers;
196   RegisterSaver::restore_live_registers(sasm, reg_set);
197 }
198 
199 static void restore_live_registers_except_r2(StubAssembler* sasm, bool restore_fpu_registers = true) {
200   if (!restore_fpu_registers) {
201     __ unimplemented(FILE_AND_LINE);
202   }
203   __ block_comment("restore_live_registers_except_r2");
204   RegisterSaver::restore_live_registers(sasm, RegisterSaver::all_registers_except_r2);
205 }
206 
207 void Runtime1::initialize_pd() {
208   // Nothing to do.
209 }
210 





211 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
212   // Make a frame and preserve the caller's caller-save registers.
213   OopMap* oop_map = save_live_registers(sasm);
214   int call_offset;
215   if (!has_argument) {
216     call_offset = __ call_RT(noreg, noreg, target);
217   } else {
218     call_offset = __ call_RT(noreg, noreg, target, Z_R1_scratch, Z_R0_scratch);
219   }
220   OopMapSet* oop_maps = new OopMapSet();
221   oop_maps->add_gc_map(call_offset, oop_map);
222 
223   __ should_not_reach_here();
224   return oop_maps;
225 }
226 
227 void Runtime1::generate_unwind_exception(StubAssembler *sasm) {
228   // Incoming parameters: Z_EXC_OOP and Z_EXC_PC.
229   // Keep copies in callee-saved registers during runtime call.
230   const Register exception_oop_callee_saved = Z_R11;

191 
192 static void restore_live_registers(StubAssembler* sasm, bool restore_fpu_registers = true) {
193   __ block_comment("restore_live_registers");
194   RegisterSaver::RegisterSet reg_set =
195     restore_fpu_registers ? RegisterSaver::all_registers : RegisterSaver::all_integer_registers;
196   RegisterSaver::restore_live_registers(sasm, reg_set);
197 }
198 
199 static void restore_live_registers_except_r2(StubAssembler* sasm, bool restore_fpu_registers = true) {
200   if (!restore_fpu_registers) {
201     __ unimplemented(FILE_AND_LINE);
202   }
203   __ block_comment("restore_live_registers_except_r2");
204   RegisterSaver::restore_live_registers(sasm, RegisterSaver::all_registers_except_r2);
205 }
206 
207 void Runtime1::initialize_pd() {
208   // Nothing to do.
209 }
210 
211 uint Runtime1::runtime_blob_current_thread_offset(frame f) {
212   Unimplemented();
213   return 0;
214 }
215 
216 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
217   // Make a frame and preserve the caller's caller-save registers.
218   OopMap* oop_map = save_live_registers(sasm);
219   int call_offset;
220   if (!has_argument) {
221     call_offset = __ call_RT(noreg, noreg, target);
222   } else {
223     call_offset = __ call_RT(noreg, noreg, target, Z_R1_scratch, Z_R0_scratch);
224   }
225   OopMapSet* oop_maps = new OopMapSet();
226   oop_maps->add_gc_map(call_offset, oop_map);
227 
228   __ should_not_reach_here();
229   return oop_maps;
230 }
231 
232 void Runtime1::generate_unwind_exception(StubAssembler *sasm) {
233   // Incoming parameters: Z_EXC_OOP and Z_EXC_PC.
234   // Keep copies in callee-saved registers during runtime call.
235   const Register exception_oop_callee_saved = Z_R11;
< prev index next >