< prev index next >

src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp

Print this page




1202 
1203     case predicate_failed_trap_id:
1204       {
1205         StubFrame f(sasm, "predicate_failed_trap", dont_gc_arguments);
1206 
1207         OopMap* map = save_live_registers(sasm);
1208 
1209         int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, predicate_failed_trap));
1210         oop_maps = new OopMapSet();
1211         oop_maps->add_gc_map(call_offset, map);
1212         restore_live_registers(sasm);
1213         __ leave();
1214         DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob();
1215         assert(deopt_blob != NULL, "deoptimization blob must have been created");
1216 
1217         __ far_jump(RuntimeAddress(deopt_blob->unpack_with_reexecution()));
1218       }
1219       break;
1220 
1221     default:
1222       // DMS CHECK: This code should be fixed in JDK workspace, because it fails 
1223       // with assert during vm intialization rather than insert a call 
1224       // to unimplemented_entry
1225       { StubFrame f(sasm, "unimplemented entry", dont_gc_arguments);
1226         __ mov(r0, (int)id);
1227         __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), r0);
1228         __ should_not_reach_here();
1229       }
1230       break;
1231     }
1232   }
1233 
1234 
1235   return oop_maps;
1236 }
1237 
1238 #undef __
1239 
1240 const char *Runtime1::pd_name_for_address(address entry) { Unimplemented(); return 0; }


1202 
1203     case predicate_failed_trap_id:
1204       {
1205         StubFrame f(sasm, "predicate_failed_trap", dont_gc_arguments);
1206 
1207         OopMap* map = save_live_registers(sasm);
1208 
1209         int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, predicate_failed_trap));
1210         oop_maps = new OopMapSet();
1211         oop_maps->add_gc_map(call_offset, map);
1212         restore_live_registers(sasm);
1213         __ leave();
1214         DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob();
1215         assert(deopt_blob != NULL, "deoptimization blob must have been created");
1216 
1217         __ far_jump(RuntimeAddress(deopt_blob->unpack_with_reexecution()));
1218       }
1219       break;
1220 
1221     default:
1222       // FIXME: For unhandled trap_id this code fails with assert during vm intialization 
1223       // rather than insert a call to unimplemented_entry

1224       { StubFrame f(sasm, "unimplemented entry", dont_gc_arguments);
1225         __ mov(r0, (int)id);
1226         __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), r0);
1227         __ should_not_reach_here();
1228       }
1229       break;
1230     }
1231   }
1232 
1233 
1234   return oop_maps;
1235 }
1236 
1237 #undef __
1238 
1239 const char *Runtime1::pd_name_for_address(address entry) { Unimplemented(); return 0; }
< prev index next >