equal
deleted
inserted
replaced
494 intptr_t* _get_previous_fp() { |
494 intptr_t* _get_previous_fp() { |
495 intptr_t **frameptr; |
495 intptr_t **frameptr; |
496 __asm { |
496 __asm { |
497 mov frameptr, ebp |
497 mov frameptr, ebp |
498 }; |
498 }; |
|
499 // ebp (frameptr) is for this frame (_get_previous_fp). We want the ebp for the |
|
500 // caller of os::current_frame*(), so go up two frames. However, for |
|
501 // optimized builds, _get_previous_fp() will be inlined, so only go |
|
502 // up 1 frame in that case. |
|
503 #ifdef _NMT_NOINLINE_ |
|
504 return **(intptr_t***)frameptr; |
|
505 #else |
499 return *frameptr; |
506 return *frameptr; |
|
507 #endif |
500 } |
508 } |
501 #endif // !AMD64 |
509 #endif // !AMD64 |
502 |
510 |
503 frame os::current_frame() { |
511 frame os::current_frame() { |
504 |
512 |