Mercurial > hg > truffle
comparison src/share/vm/c1/c1_LinearScan.cpp @ 17980:0bf37f737702
8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by: twisti, kvn
author | roland |
---|---|
date | Tue, 01 Apr 2014 09:36:49 +0200 |
parents | 15766b73dc1d |
children | 52b4284cb496 d04cb4166be7 |
comparison
equal
deleted
inserted
replaced
17978:ad51f24671c2 | 17980:0bf37f737702 |
---|---|
2438 OopMap* first_oop_map = compute_oop_map(iw, op, first_info, visitor.has_call()); | 2438 OopMap* first_oop_map = compute_oop_map(iw, op, first_info, visitor.has_call()); |
2439 | 2439 |
2440 for (int i = 0; i < visitor.info_count(); i++) { | 2440 for (int i = 0; i < visitor.info_count(); i++) { |
2441 CodeEmitInfo* info = visitor.info_at(i); | 2441 CodeEmitInfo* info = visitor.info_at(i); |
2442 OopMap* oop_map = first_oop_map; | 2442 OopMap* oop_map = first_oop_map; |
2443 | |
2444 // compute worst case interpreter size in case of a deoptimization | |
2445 _compilation->update_interpreter_frame_size(info->interpreter_frame_size()); | |
2443 | 2446 |
2444 if (info->stack()->locks_size() != first_info->stack()->locks_size()) { | 2447 if (info->stack()->locks_size() != first_info->stack()->locks_size()) { |
2445 // this info has a different number of locks then the precomputed oop map | 2448 // this info has a different number of locks then the precomputed oop map |
2446 // (possible for lock and unlock instructions) -> compute oop map with | 2449 // (possible for lock and unlock instructions) -> compute oop map with |
2447 // correct lock information | 2450 // correct lock information |