Mercurial > hg > truffle
comparison src/share/vm/runtime/vm_operations.cpp @ 5111:422c979ff392
fixed two cases where DeoptAction was invalid
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Thu, 15 Mar 2012 16:34:31 -0700 |
parents | 0ebca2e35ca5 |
children | 291ffc492eb6 |
comparison
equal
deleted
inserted
replaced
5110:0ebca2e35ca5 | 5111:422c979ff392 |
---|---|
123 _reason = reason; | 123 _reason = reason; |
124 } | 124 } |
125 | 125 |
126 | 126 |
127 void VM_DeoptimizeFrame::doit() { | 127 void VM_DeoptimizeFrame::doit() { |
128 assert(_reason > Deoptimization::Reason_none && _reason < Deoptimization::DeoptReason.Reason_LIMIT, "invalid deopt reason"); | 128 assert(_reason > Deoptimization::Reason_none && _reason < Deoptimization::Reason_LIMIT, "invalid deopt reason"); |
129 Deoptimization::deoptimize_frame_internal(_thread, _id, (Deoptimization::DeoptReason)_reason); | 129 Deoptimization::deoptimize_frame_internal(_thread, _id, (Deoptimization::DeoptReason)_reason); |
130 } | 130 } |
131 | 131 |
132 | 132 |
133 #ifndef PRODUCT | 133 #ifndef PRODUCT |
156 // Biased llocking wants a updated register map | 156 // Biased llocking wants a updated register map |
157 for(StackFrameStream fst(thread, UseBiasedLocking); !fst.is_done(); fst.next()) { | 157 for(StackFrameStream fst(thread, UseBiasedLocking); !fst.is_done(); fst.next()) { |
158 if (fst.current()->can_be_deoptimized()) { | 158 if (fst.current()->can_be_deoptimized()) { |
159 if (fcount++ == fnum) { | 159 if (fcount++ == fnum) { |
160 fcount = 0; | 160 fcount = 0; |
161 Deoptimization::deoptimize(thread, *fst.current(), fst.register_map()); | 161 Deoptimization::deoptimize(thread, *fst.current(), fst.register_map(), Deoptimization::Reason_constraint); |
162 } | 162 } |
163 } | 163 } |
164 } | 164 } |
165 } | 165 } |
166 } | 166 } |