Mercurial > hg > truffle
comparison src/share/vm/code/nmethod.hpp @ 1937:4853c5cad3aa
More deoptmization tracing.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Thu, 23 Dec 2010 22:14:31 +0100 |
parents | d5d065957597 |
children | 06f017f7daa7 |
comparison
equal
deleted
inserted
replaced
1936:8d88c9ac9247 | 1937:4853c5cad3aa |
---|---|
577 void copy_scopes_data(address buffer, int size); | 577 void copy_scopes_data(address buffer, int size); |
578 | 578 |
579 // Deopt | 579 // Deopt |
580 // Return true is the PC is one would expect if the frame is being deopted. | 580 // Return true is the PC is one would expect if the frame is being deopted. |
581 bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } | 581 bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } |
582 bool is_deopt_entry (address pc) { return pc == deopt_handler_begin(); } | 582 |
583 // (tw) When using C1X, the address might be off by 5 (because this is the size of the call instruction. | |
584 // (tw) TODO: Replace this by a more general mechanism. | |
585 bool is_deopt_entry (address pc) { return pc == deopt_handler_begin() || (UseC1X && pc == deopt_handler_begin() + 5); } | |
583 bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } | 586 bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } |
584 // Accessor/mutator for the original pc of a frame before a frame was deopted. | 587 // Accessor/mutator for the original pc of a frame before a frame was deopted. |
585 address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } | 588 address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); } |
586 void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } | 589 void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; } |
587 | 590 |