1.1 --- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Wed Mar 20 17:04:45 2013 -0700 1.2 +++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Thu Mar 21 09:27:54 2013 +0100 1.3 @@ -987,6 +987,25 @@ 1.4 break; 1.5 #endif // INCLUDE_ALL_GCS 1.6 1.7 + case predicate_failed_trap_id: 1.8 + { 1.9 + __ set_info("predicate_failed_trap", dont_gc_arguments); 1.10 + OopMap* oop_map = save_live_registers(sasm); 1.11 + 1.12 + int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, predicate_failed_trap)); 1.13 + 1.14 + oop_maps = new OopMapSet(); 1.15 + oop_maps->add_gc_map(call_offset, oop_map); 1.16 + 1.17 + DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob(); 1.18 + assert(deopt_blob != NULL, "deoptimization blob must have been created"); 1.19 + restore_live_registers(sasm); 1.20 + __ restore(); 1.21 + __ br(Assembler::always, false, Assembler::pt, deopt_blob->unpack_with_reexecution(), relocInfo::runtime_call_type); 1.22 + __ delayed()->nop(); 1.23 + } 1.24 + break; 1.25 + 1.26 default: 1.27 { __ set_info("unimplemented entry", dont_gc_arguments); 1.28 __ save_frame(0);