Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/frame_x86.cpp @ 6266:1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author | twisti |
---|---|
date | Tue, 24 Jul 2012 10:51:00 -0700 |
parents | 5f17b16b3219 |
children | 957c266d8bc5 da91efe96a93 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/frame_x86.cpp Mon Jul 23 13:04:59 2012 -0700 +++ b/src/cpu/x86/vm/frame_x86.cpp Tue Jul 24 10:51:00 2012 -0700 @@ -439,7 +439,6 @@ // frame::sender_for_compiled_frame frame frame::sender_for_compiled_frame(RegisterMap* map) const { assert(map != NULL, "map must be set"); - assert(!is_ricochet_frame(), "caller must handle this"); // frame owned by optimizing compiler assert(_cb->frame_size() >= 0, "must have non-zero frame size"); @@ -483,7 +482,6 @@ if (is_entry_frame()) return sender_for_entry_frame(map); if (is_interpreted_frame()) return sender_for_interpreter_frame(map); assert(_cb == CodeCache::find_blob(pc()),"Must be the same"); - if (is_ricochet_frame()) return sender_for_ricochet_frame(map); if (_cb != NULL) { return sender_for_compiled_frame(map); @@ -658,9 +656,7 @@ values.describe(frame_no, fp() + frame::name##_offset, #name) void frame::describe_pd(FrameValues& values, int frame_no) { - if (is_ricochet_frame()) { - MethodHandles::RicochetFrame::describe(this, values, frame_no); - } else if (is_interpreted_frame()) { + if (is_interpreted_frame()) { DESCRIBE_FP_OFFSET(interpreter_frame_sender_sp); DESCRIBE_FP_OFFSET(interpreter_frame_last_sp); DESCRIBE_FP_OFFSET(interpreter_frame_method); @@ -682,12 +678,7 @@ if (_cb != NULL) { // use the frame size if valid int size = _cb->frame_size(); - if ((size > 0) && - (! is_ricochet_frame())) { - // Work-around: ricochet explicitly excluded because frame size is not - // constant for the ricochet blob but its frame_size could not, for - // some reasons, be declared as <= 0. This potentially confusing - // size declaration should be fixed as another CR. + if (size > 0) { return unextended_sp() + size; } }