src/cpu/sparc/vm/frame_sparc.cpp

changeset 7553
f43fad8786fc
parent 5784
190899198332
child 7994
04ff2f6cd0eb
child 8199
5d96c022391c
equal deleted inserted replaced
7552:0ef505d06e12 7553:f43fad8786fc
340 } 340 }
341 341
342 // constructors 342 // constructors
343 343
344 // Construct an unpatchable, deficient frame 344 // Construct an unpatchable, deficient frame
345 frame::frame(intptr_t* sp, unpatchable_t, address pc, CodeBlob* cb) { 345 void frame::init(intptr_t* sp, address pc, CodeBlob* cb) {
346 #ifdef _LP64 346 #ifdef _LP64
347 assert( (((intptr_t)sp & (wordSize-1)) == 0), "frame constructor passed an invalid sp"); 347 assert( (((intptr_t)sp & (wordSize-1)) == 0), "frame constructor passed an invalid sp");
348 #endif 348 #endif
349 _sp = sp; 349 _sp = sp;
350 _younger_sp = NULL; 350 _younger_sp = NULL;
360 if ( _cb != NULL && _cb->is_nmethod()) { 360 if ( _cb != NULL && _cb->is_nmethod()) {
361 // Without a valid unextended_sp() we can't convert the pc to "original" 361 // Without a valid unextended_sp() we can't convert the pc to "original"
362 assert(!((nmethod*)_cb)->is_deopt_pc(_pc), "invariant broken"); 362 assert(!((nmethod*)_cb)->is_deopt_pc(_pc), "invariant broken");
363 } 363 }
364 #endif // ASSERT 364 #endif // ASSERT
365 }
366
367 frame::frame(intptr_t* sp, unpatchable_t, address pc, CodeBlob* cb) {
368 init(sp, pc, cb);
365 } 369 }
366 370
367 frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_is_interpreted) : 371 frame::frame(intptr_t* sp, intptr_t* younger_sp, bool younger_frame_is_interpreted) :
368 _sp(sp), 372 _sp(sp),
369 _younger_sp(younger_sp), 373 _younger_sp(younger_sp),
415 } else { 419 } else {
416 _deopt_state = not_deoptimized; 420 _deopt_state = not_deoptimized;
417 } 421 }
418 } 422 }
419 } 423 }
424
425 #ifndef PRODUCT
426 // This is a generic constructor which is only used by pns() in debug.cpp.
427 frame::frame(void* sp, void* fp, void* pc) {
428 init((intptr_t*)sp, (address)pc, NULL);
429 }
430 #endif
420 431
421 bool frame::is_interpreted_frame() const { 432 bool frame::is_interpreted_frame() const {
422 return Interpreter::contains(pc()); 433 return Interpreter::contains(pc());
423 } 434 }
424 435

mercurial