Mercurial > hg > truffle
comparison src/share/vm/code/debugInfoRec.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 | 148e5441d916 |
comparison
equal
deleted
inserted
replaced
930:357d4e2eb4dd | 931:72088be4b386 |
---|---|
1 /* | 1 /* |
2 * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. | 2 * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
290 int sender_stream_offset = last_pd->scope_decode_offset(); | 290 int sender_stream_offset = last_pd->scope_decode_offset(); |
291 // update the stream offset of current pc desc | 291 // update the stream offset of current pc desc |
292 int stream_offset = stream()->position(); | 292 int stream_offset = stream()->position(); |
293 last_pd->set_scope_decode_offset(stream_offset); | 293 last_pd->set_scope_decode_offset(stream_offset); |
294 | 294 |
295 // Record reexecute bit into pcDesc | |
296 last_pd->set_should_reexecute(reexecute); | |
297 | |
295 // serialize sender stream offest | 298 // serialize sender stream offest |
296 stream()->write_int(sender_stream_offset); | 299 stream()->write_int(sender_stream_offset); |
297 | 300 |
298 // serialize scope | 301 // serialize scope |
299 jobject method_enc = (method == NULL)? NULL: method->encoding(); | 302 jobject method_enc = (method == NULL)? NULL: method->encoding(); |
300 stream()->write_int(oop_recorder()->find_index(method_enc)); | 303 stream()->write_int(oop_recorder()->find_index(method_enc)); |
301 stream()->write_bci_and_reexecute(bci, reexecute); | 304 stream()->write_bci(bci); |
302 assert(method == NULL || | 305 assert(method == NULL || |
303 (method->is_native() && bci == 0) || | 306 (method->is_native() && bci == 0) || |
304 (!method->is_native() && 0 <= bci && bci < method->code_size()) || | 307 (!method->is_native() && 0 <= bci && bci < method->code_size()) || |
305 bci == -1, "illegal bci"); | 308 bci == -1, "illegal bci"); |
306 | 309 |