Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.cpp @ 931:72088be4b386
6873116: Modify reexecute implementation to use pcDesc to record the reexecute bit
Summary: use PcDesc to keep record of the reexecute bit instead of using DebugInfoStreams
Reviewed-by: kvn, never, twisti
author | cfang |
---|---|
date | Thu, 20 Aug 2009 12:42:57 -0700 |
parents | 9987d9d5eb0e |
children | 489a4f8dcd0f |
comparison
equal
deleted
inserted
replaced
930:357d4e2eb4dd | 931:72088be4b386 |
---|---|
1227 methodOop method = NULL; | 1227 methodOop method = NULL; |
1228 int bci = 0; | 1228 int bci = 0; |
1229 | 1229 |
1230 // Compiled java method case. | 1230 // Compiled java method case. |
1231 if (decode_offset != 0) { | 1231 if (decode_offset != 0) { |
1232 bool dummy_reexecute = false; | |
1233 DebugInfoReadStream stream(nm, decode_offset); | 1232 DebugInfoReadStream stream(nm, decode_offset); |
1234 decode_offset = stream.read_int(); | 1233 decode_offset = stream.read_int(); |
1235 method = (methodOop)nm->oop_at(stream.read_int()); | 1234 method = (methodOop)nm->oop_at(stream.read_int()); |
1236 //fill_in_stack_trace does not need the reexecute information which is designed | 1235 bci = stream.read_bci(); |
1237 //for the deopt to reexecute | |
1238 bci = stream.read_bci_and_reexecute(dummy_reexecute); | |
1239 } else { | 1236 } else { |
1240 if (fr.is_first_frame()) break; | 1237 if (fr.is_first_frame()) break; |
1241 address pc = fr.pc(); | 1238 address pc = fr.pc(); |
1242 if (fr.is_interpreted_frame()) { | 1239 if (fr.is_interpreted_frame()) { |
1243 intptr_t bcx = fr.interpreter_frame_bcx(); | 1240 intptr_t bcx = fr.interpreter_frame_bcx(); |