Mercurial > hg > truffle
comparison src/share/vm/runtime/deoptimization.cpp @ 8727:0094485b46c7
8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
Summary: deoptimization doesn't set up callee frames so that they restore caller frames correctly.
Reviewed-by: kvn
author | roland |
---|---|
date | Wed, 13 Mar 2013 09:44:45 +0100 |
parents | 6a51fc70a15e |
children | b9a918201d47 28e5aed7f3a6 d2907f74462e |
comparison
equal
deleted
inserted
replaced
8708:8196357e95b5 | 8727:0094485b46c7 |
---|---|
423 } | 423 } |
424 frame_sizes[number_of_frames - 1 - index] = BytesPerWord * array->element(index)->on_stack_size(caller_parms, | 424 frame_sizes[number_of_frames - 1 - index] = BytesPerWord * array->element(index)->on_stack_size(caller_parms, |
425 callee_parameters, | 425 callee_parameters, |
426 callee_locals, | 426 callee_locals, |
427 index == 0, | 427 index == 0, |
428 index == array->frames() - 1, | |
428 popframe_extra_args); | 429 popframe_extra_args); |
429 // This pc doesn't have to be perfect just good enough to identify the frame | 430 // This pc doesn't have to be perfect just good enough to identify the frame |
430 // as interpreted so the skeleton frame will be walkable | 431 // as interpreted so the skeleton frame will be walkable |
431 // The correct pc will be set when the skeleton frame is completely filled out | 432 // The correct pc will be set when the skeleton frame is completely filled out |
432 // The final pc we store in the loop is wrong and will be overwritten below | 433 // The final pc we store in the loop is wrong and will be overwritten below |