comparison src/share/vm/code/debugInfoRec.cpp @ 1253:f70b0d9ab095

6910618: C2: Error: assert(d->is_oop(),"JVM_ArrayCopy: dst not an oop") Summary: Mark in PcDesc call sites which return oop and save the result oop across objects reallocation during deoptimization. Reviewed-by: never
author kvn
date Tue, 09 Feb 2010 01:31:13 -0800
parents e66fd840cb6b
children c18cbe5936b8
comparison
equal deleted inserted replaced
1252:f516d5d7a019 1253:f70b0d9ab095
280 void DebugInformationRecorder::describe_scope(int pc_offset, 280 void DebugInformationRecorder::describe_scope(int pc_offset,
281 ciMethod* method, 281 ciMethod* method,
282 int bci, 282 int bci,
283 bool reexecute, 283 bool reexecute,
284 bool is_method_handle_invoke, 284 bool is_method_handle_invoke,
285 bool return_oop,
285 DebugToken* locals, 286 DebugToken* locals,
286 DebugToken* expressions, 287 DebugToken* expressions,
287 DebugToken* monitors) { 288 DebugToken* monitors) {
288 assert(_recording_state != rs_null, "nesting of recording calls"); 289 assert(_recording_state != rs_null, "nesting of recording calls");
289 PcDesc* last_pd = last_pc(); 290 PcDesc* last_pd = last_pc();
294 last_pd->set_scope_decode_offset(stream_offset); 295 last_pd->set_scope_decode_offset(stream_offset);
295 296
296 // Record flags into pcDesc. 297 // Record flags into pcDesc.
297 last_pd->set_should_reexecute(reexecute); 298 last_pd->set_should_reexecute(reexecute);
298 last_pd->set_is_method_handle_invoke(is_method_handle_invoke); 299 last_pd->set_is_method_handle_invoke(is_method_handle_invoke);
300 last_pd->set_return_oop(return_oop);
299 301
300 // serialize sender stream offest 302 // serialize sender stream offest
301 stream()->write_int(sender_stream_offset); 303 stream()->write_int(sender_stream_offset);
302 304
303 // serialize scope 305 // serialize scope