equal
deleted
inserted
replaced
52 } |
52 } |
53 |
53 |
54 // Constructors |
54 // Constructors |
55 |
55 |
56 // Initialize all fields, _unextended_sp will be adjusted in find_codeblob_and_set_pc_and_deopt_state. |
56 // Initialize all fields, _unextended_sp will be adjusted in find_codeblob_and_set_pc_and_deopt_state. |
57 inline frame::frame() : _sp(NULL), _unextended_sp(NULL), _fp(NULL), _cb(NULL), _pc(NULL), _deopt_state(unknown) {} |
57 inline frame::frame() : _sp(NULL), _pc(NULL), _cb(NULL), _deopt_state(unknown), _unextended_sp(NULL), _fp(NULL) {} |
58 |
58 |
59 inline frame::frame(intptr_t* sp) : _sp(sp), _unextended_sp(sp) { |
59 inline frame::frame(intptr_t* sp) : _sp(sp), _unextended_sp(sp) { |
60 find_codeblob_and_set_pc_and_deopt_state((address)own_abi()->return_pc); |
60 find_codeblob_and_set_pc_and_deopt_state((address)own_abi()->return_pc); |
61 } |
61 } |
62 |
62 |
69 } |
69 } |
70 |
70 |
71 // Generic constructor. Used by pns() in debug.cpp only |
71 // Generic constructor. Used by pns() in debug.cpp only |
72 #ifndef PRODUCT |
72 #ifndef PRODUCT |
73 inline frame::frame(void* sp, void* pc, void* unextended_sp) : |
73 inline frame::frame(void* sp, void* pc, void* unextended_sp) : |
74 _sp((intptr_t*)sp), _unextended_sp((intptr_t*)unextended_sp), _cb(NULL), _pc(NULL) { |
74 _sp((intptr_t*)sp), _pc(NULL), _cb(NULL), _unextended_sp((intptr_t*)unextended_sp) { |
75 find_codeblob_and_set_pc_and_deopt_state((address)pc); // Also sets _fp and adjusts _unextended_sp. |
75 find_codeblob_and_set_pc_and_deopt_state((address)pc); // Also sets _fp and adjusts _unextended_sp. |
76 } |
76 } |
77 #endif |
77 #endif |
78 |
78 |
79 // template interpreter state |
79 // template interpreter state |