< prev index next >

src/hotspot/cpu/arm/c1_Runtime1_arm.cpp

Print this page
rev 49827 : 8201593: Print array length in ArrayIndexOutOfBoundsException.


 349 #ifndef AARCH64
 350 static void restore_live_registers_except_FP_LR(StubAssembler* sasm, bool restore_fpu_registers = HaveVFP) {
 351   restore_live_registers(sasm, true, false, false, restore_fpu_registers);
 352 }
 353 #endif // !AARCH64
 354 
 355 static void restore_live_registers_without_return(StubAssembler* sasm, bool restore_fpu_registers = HaveVFP) {
 356   restore_live_registers(sasm, true, true, false, restore_fpu_registers);
 357 }
 358 
 359 
 360 void Runtime1::initialize_pd() {
 361 }
 362 
 363 
 364 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
 365   OopMap* oop_map = save_live_registers(sasm);
 366 
 367   if (has_argument) {
 368     __ ldr(R1, Address(SP, arg1_offset));

 369   }
 370 
 371   int call_offset = __ call_RT(noreg, noreg, target);
 372   OopMapSet* oop_maps = new OopMapSet();
 373   oop_maps->add_gc_map(call_offset, oop_map);
 374 
 375   DEBUG_ONLY(STOP("generate_exception_throw");)  // Should not reach here
 376   return oop_maps;
 377 }
 378 
 379 
 380 static void restore_sp_for_method_handle(StubAssembler* sasm) {
 381   // Restore SP from its saved reg (FP) if the exception PC is a MethodHandle call site.
 382   __ ldr_s32(Rtemp, Address(Rthread, JavaThread::is_method_handle_return_offset()));
 383 #ifdef AARCH64
 384   Label skip;
 385   __ cbz(Rtemp, skip);
 386   __ mov(SP, Rmh_SP_save);
 387   __ bind(skip);
 388 #else




 349 #ifndef AARCH64
 350 static void restore_live_registers_except_FP_LR(StubAssembler* sasm, bool restore_fpu_registers = HaveVFP) {
 351   restore_live_registers(sasm, true, false, false, restore_fpu_registers);
 352 }
 353 #endif // !AARCH64
 354 
 355 static void restore_live_registers_without_return(StubAssembler* sasm, bool restore_fpu_registers = HaveVFP) {
 356   restore_live_registers(sasm, true, true, false, restore_fpu_registers);
 357 }
 358 
 359 
 360 void Runtime1::initialize_pd() {
 361 }
 362 
 363 
 364 OopMapSet* Runtime1::generate_exception_throw(StubAssembler* sasm, address target, bool has_argument) {
 365   OopMap* oop_map = save_live_registers(sasm);
 366 
 367   if (has_argument) {
 368     __ ldr(R1, Address(SP, arg1_offset));
 369     __ ldr(R2, Address(SP, arg2_offset));
 370   }
 371 
 372   int call_offset = __ call_RT(noreg, noreg, target);
 373   OopMapSet* oop_maps = new OopMapSet();
 374   oop_maps->add_gc_map(call_offset, oop_map);
 375 
 376   DEBUG_ONLY(STOP("generate_exception_throw");)  // Should not reach here
 377   return oop_maps;
 378 }
 379 
 380 
 381 static void restore_sp_for_method_handle(StubAssembler* sasm) {
 382   // Restore SP from its saved reg (FP) if the exception PC is a MethodHandle call site.
 383   __ ldr_s32(Rtemp, Address(Rthread, JavaThread::is_method_handle_return_offset()));
 384 #ifdef AARCH64
 385   Label skip;
 386   __ cbz(Rtemp, skip);
 387   __ mov(SP, Rmh_SP_save);
 388   __ bind(skip);
 389 #else


< prev index next >