Mercurial > hg > truffle
comparison src/share/vm/runtime/deoptimization.cpp @ 17795:a9becfeecd1b
Merge
author | kvn |
---|---|
date | Wed, 22 Jan 2014 17:42:23 -0800 |
parents | 69dc1be43fce 2b8e28fdf503 |
children | 8a9bb7821e28 62c54fcc0a35 |
comparison
equal
deleted
inserted
replaced
17794:3514ee402842 | 17795:a9becfeecd1b |
---|---|
1225 void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index) { | 1225 void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index) { |
1226 EXCEPTION_MARK; | 1226 EXCEPTION_MARK; |
1227 load_class_by_index(constant_pool, index, THREAD); | 1227 load_class_by_index(constant_pool, index, THREAD); |
1228 if (HAS_PENDING_EXCEPTION) { | 1228 if (HAS_PENDING_EXCEPTION) { |
1229 // Exception happened during classloading. We ignore the exception here, since it | 1229 // Exception happened during classloading. We ignore the exception here, since it |
1230 // is going to be rethrown since the current activation is going to be deoptimzied and | 1230 // is going to be rethrown since the current activation is going to be deoptimized and |
1231 // the interpreter will re-execute the bytecode. | 1231 // the interpreter will re-execute the bytecode. |
1232 CLEAR_PENDING_EXCEPTION; | 1232 CLEAR_PENDING_EXCEPTION; |
1233 // Class loading called java code which may have caused a stack | |
1234 // overflow. If the exception was thrown right before the return | |
1235 // to the runtime the stack is no longer guarded. Reguard the | |
1236 // stack otherwise if we return to the uncommon trap blob and the | |
1237 // stack bang causes a stack overflow we crash. | |
1238 assert(THREAD->is_Java_thread(), "only a java thread can be here"); | |
1239 JavaThread* thread = (JavaThread*)THREAD; | |
1240 bool guard_pages_enabled = thread->stack_yellow_zone_enabled(); | |
1241 if (!guard_pages_enabled) guard_pages_enabled = thread->reguard_stack(); | |
1242 assert(guard_pages_enabled, "stack banging in uncommon trap blob may cause crash"); | |
1233 } | 1243 } |
1234 } | 1244 } |
1235 | 1245 |
1236 JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint trap_request)) { | 1246 JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint trap_request)) { |
1237 HandleMark hm; | 1247 HandleMark hm; |