Mercurial > hg > truffle
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) |