# HG changeset patch # User roland # Date 1366011766 -7200 # Node ID bb4a966cc68fa73313b02e453e98ff18bca0d766 # Parent 886d1fd67dc34bbd1adc670b44be7966372d4e0d 8011582: assert(nbits == 32 || (-(1 << nbits-1) <= x && x < ( 1 << nbits-1))) failed: value out of range Summary: c1 runtime's predicate_failed_trap should use jump_to on sparc Reviewed-by: kvn diff -r 886d1fd67dc3 -r bb4a966cc68f src/cpu/sparc/vm/c1_Runtime1_sparc.cpp --- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Fri Apr 12 19:14:47 2013 -0700 +++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Mon Apr 15 09:42:46 2013 +0200 @@ -1000,9 +1000,10 @@ DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob(); assert(deopt_blob != NULL, "deoptimization blob must have been created"); restore_live_registers(sasm); - __ restore(); - __ br(Assembler::always, false, Assembler::pt, deopt_blob->unpack_with_reexecution(), relocInfo::runtime_call_type); - __ delayed()->nop(); + + AddressLiteral dest(deopt_blob->unpack_with_reexecution()); + __ jump_to(dest, O0); + __ delayed()->restore(); } break;