hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
changeset 20703 2de7fe0e9693
parent 19710 2f8ca425504e
child 20710 550442bd8ffc
equal deleted inserted replaced
20702:bbe0fcde6e13 20703:2de7fe0e9693
  1065   default:  ShouldNotReachHere();
  1065   default:  ShouldNotReachHere();
  1066   }
  1066   }
  1067 
  1067 
  1068   __ verify_not_null_oop(Oexception);
  1068   __ verify_not_null_oop(Oexception);
  1069 
  1069 
       
  1070 #ifdef ASSERT
       
  1071   // check that fields in JavaThread for exception oop and issuing pc are
       
  1072   // empty before writing to them
       
  1073   Label oop_empty;
       
  1074   Register scratch = I7;  // We can use I7 here because it's overwritten later anyway.
       
  1075   __ ld_ptr(Address(G2_thread, JavaThread::exception_oop_offset()), scratch);
       
  1076   __ br_null(scratch, false, Assembler::pt, oop_empty);
       
  1077   __ delayed()->nop();
       
  1078   __ stop("exception oop already set");
       
  1079   __ bind(oop_empty);
       
  1080 
       
  1081   Label pc_empty;
       
  1082   __ ld_ptr(Address(G2_thread, JavaThread::exception_pc_offset()), scratch);
       
  1083   __ br_null(scratch, false, Assembler::pt, pc_empty);
       
  1084   __ delayed()->nop();
       
  1085   __ stop("exception pc already set");
       
  1086   __ bind(pc_empty);
       
  1087 #endif
       
  1088 
  1070   // save the exception and issuing pc in the thread
  1089   // save the exception and issuing pc in the thread
  1071   __ st_ptr(Oexception,  G2_thread, in_bytes(JavaThread::exception_oop_offset()));
  1090   __ st_ptr(Oexception,  G2_thread, in_bytes(JavaThread::exception_oop_offset()));
  1072   __ st_ptr(Oissuing_pc, G2_thread, in_bytes(JavaThread::exception_pc_offset()));
  1091   __ st_ptr(Oissuing_pc, G2_thread, in_bytes(JavaThread::exception_pc_offset()));
  1073 
  1092 
  1074   // use the throwing pc as the return address to lookup (has bci & oop map)
  1093   // use the throwing pc as the return address to lookup (has bci & oop map)