comparison src/cpu/sparc/vm/c1_Runtime1_sparc.cpp @ 12883:f50418dfb1b7

Merge
author iveresov
date Sun, 13 Oct 2013 13:22:24 -0700
parents 69944b868a32 8b80b262e501
children 252d541466ea
comparison
equal deleted inserted replaced
12844:7c26dced065e 12883:f50418dfb1b7
1074 default: ShouldNotReachHere(); 1074 default: ShouldNotReachHere();
1075 } 1075 }
1076 1076
1077 __ verify_not_null_oop(Oexception); 1077 __ verify_not_null_oop(Oexception);
1078 1078
1079 #ifdef ASSERT
1080 // check that fields in JavaThread for exception oop and issuing pc are
1081 // empty before writing to them
1082 Label oop_empty;
1083 Register scratch = I7; // We can use I7 here because it's overwritten later anyway.
1084 __ ld_ptr(Address(G2_thread, JavaThread::exception_oop_offset()), scratch);
1085 __ br_null(scratch, false, Assembler::pt, oop_empty);
1086 __ delayed()->nop();
1087 __ stop("exception oop already set");
1088 __ bind(oop_empty);
1089
1090 Label pc_empty;
1091 __ ld_ptr(Address(G2_thread, JavaThread::exception_pc_offset()), scratch);
1092 __ br_null(scratch, false, Assembler::pt, pc_empty);
1093 __ delayed()->nop();
1094 __ stop("exception pc already set");
1095 __ bind(pc_empty);
1096 #endif
1097
1079 // save the exception and issuing pc in the thread 1098 // save the exception and issuing pc in the thread
1080 __ st_ptr(Oexception, G2_thread, in_bytes(JavaThread::exception_oop_offset())); 1099 __ st_ptr(Oexception, G2_thread, in_bytes(JavaThread::exception_oop_offset()));
1081 __ st_ptr(Oissuing_pc, G2_thread, in_bytes(JavaThread::exception_pc_offset())); 1100 __ st_ptr(Oissuing_pc, G2_thread, in_bytes(JavaThread::exception_pc_offset()));
1082 1101
1083 // use the throwing pc as the return address to lookup (has bci & oop map) 1102 // use the throwing pc as the return address to lookup (has bci & oop map)