Mercurial > hg > truffle
diff src/cpu/sparc/vm/frame_sparc.cpp @ 4818:82e5a84b7436
7120450: complete information dumped by frame_describe
Summary: improvements of frame_describe
Reviewed-by: never, twisti
author | bdelsart |
---|---|
date | Tue, 24 Jan 2012 15:41:17 +0100 |
parents | 5432047c7db7 |
children | 5dbed2f542ff |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/frame_sparc.cpp Sun Jan 22 14:03:20 2012 -0800 +++ b/src/cpu/sparc/vm/frame_sparc.cpp Tue Jan 24 15:41:17 2012 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -820,11 +820,19 @@ values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1); } - if (is_interpreted_frame()) { + if (is_ricochet_frame()) { + MethodHandles::RicochetFrame::describe(this, values, frame_no); + } else if (is_interpreted_frame()) { DESCRIBE_FP_OFFSET(interpreter_frame_d_scratch_fp); DESCRIBE_FP_OFFSET(interpreter_frame_l_scratch_fp); DESCRIBE_FP_OFFSET(interpreter_frame_padding); DESCRIBE_FP_OFFSET(interpreter_frame_oop_temp); + + // esp, according to Lesp (e.g. not depending on bci), if seems valid + intptr_t* esp = *interpreter_frame_esp_addr(); + if ((esp >= sp()) && (esp < fp())) { + values.describe(-1, esp, "*Lesp"); + } } if (!is_compiled_frame()) { @@ -844,4 +852,3 @@ // unused... but returns fp() to minimize changes introduced by 7087445 return fp(); } -