Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/library_call.cpp @ 17990:00c8a1255912
8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
author | vlivanov |
---|---|
date | Tue, 17 Jun 2014 09:02:30 +0000 |
parents | dbf0d88d867d |
children | 52b4284cb496 922c87c9aed4 |
comparison
equal
deleted
inserted
replaced
17989:168c10900e79 | 17990:00c8a1255912 |
---|---|
4574 | 4574 |
4575 if (!stopped()) { | 4575 if (!stopped()) { |
4576 // It's an instance, and it passed the slow-path tests. | 4576 // It's an instance, and it passed the slow-path tests. |
4577 PreserveJVMState pjvms(this); | 4577 PreserveJVMState pjvms(this); |
4578 Node* obj_size = NULL; | 4578 Node* obj_size = NULL; |
4579 Node* alloc_obj = new_instance(obj_klass, NULL, &obj_size); | 4579 // Need to deoptimize on exception from allocation since Object.clone intrinsic |
4580 // is reexecuted if deoptimization occurs and there could be problems when merging | |
4581 // exception state between multiple Object.clone versions (reexecute=true vs reexecute=false). | |
4582 Node* alloc_obj = new_instance(obj_klass, NULL, &obj_size, /*deoptimize_on_exception=*/true); | |
4580 | 4583 |
4581 copy_to_clone(obj, alloc_obj, obj_size, false, !use_ReduceInitialCardMarks()); | 4584 copy_to_clone(obj, alloc_obj, obj_size, false, !use_ReduceInitialCardMarks()); |
4582 | 4585 |
4583 // Present the results of the slow call. | 4586 // Present the results of the slow call. |
4584 result_reg->init_req(_instance_path, control()); | 4587 result_reg->init_req(_instance_path, control()); |