1320 case handle_exception_id:
1321 { StubFrame f(sasm, "handle_exception", dont_gc_arguments);
1322 oop_maps = new OopMapSet();
1323 OopMap* oop_map = save_live_registers(sasm, 1, save_fpu_registers);
1324 generate_handle_exception(sasm, oop_maps, oop_map, save_fpu_registers);
1325 }
1326 break;
1327
1328 case unwind_exception_id:
1329 { __ set_info("unwind_exception", dont_gc_arguments);
1330 // note: no stubframe since we are about to leave the current
1331 // activation and we are calling a leaf VM function only.
1332 generate_unwind_exception(sasm);
1333 }
1334 break;
1335
1336 case throw_array_store_exception_id:
1337 { StubFrame f(sasm, "throw_array_store_exception", dont_gc_arguments);
1338 // tos + 0: link
1339 // + 1: return address
1340 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_array_store_exception), false);
1341 }
1342 break;
1343
1344 case throw_class_cast_exception_id:
1345 { StubFrame f(sasm, "throw_class_cast_exception", dont_gc_arguments);
1346 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_class_cast_exception), true);
1347 }
1348 break;
1349
1350 case throw_incompatible_class_change_error_id:
1351 { StubFrame f(sasm, "throw_incompatible_class_cast_exception", dont_gc_arguments);
1352 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_incompatible_class_change_error), false);
1353 }
1354 break;
1355
1356 case slow_subtype_check_id:
1357 {
1358 // Typical calling sequence:
1359 // __ push(klass_RInfo); // object klass or other subclass
1360 // __ push(sup_k_RInfo); // array element klass or other superclass
|
1320 case handle_exception_id:
1321 { StubFrame f(sasm, "handle_exception", dont_gc_arguments);
1322 oop_maps = new OopMapSet();
1323 OopMap* oop_map = save_live_registers(sasm, 1, save_fpu_registers);
1324 generate_handle_exception(sasm, oop_maps, oop_map, save_fpu_registers);
1325 }
1326 break;
1327
1328 case unwind_exception_id:
1329 { __ set_info("unwind_exception", dont_gc_arguments);
1330 // note: no stubframe since we are about to leave the current
1331 // activation and we are calling a leaf VM function only.
1332 generate_unwind_exception(sasm);
1333 }
1334 break;
1335
1336 case throw_array_store_exception_id:
1337 { StubFrame f(sasm, "throw_array_store_exception", dont_gc_arguments);
1338 // tos + 0: link
1339 // + 1: return address
1340 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_array_store_exception), true);
1341 }
1342 break;
1343
1344 case throw_class_cast_exception_id:
1345 { StubFrame f(sasm, "throw_class_cast_exception", dont_gc_arguments);
1346 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_class_cast_exception), true);
1347 }
1348 break;
1349
1350 case throw_incompatible_class_change_error_id:
1351 { StubFrame f(sasm, "throw_incompatible_class_cast_exception", dont_gc_arguments);
1352 oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_incompatible_class_change_error), false);
1353 }
1354 break;
1355
1356 case slow_subtype_check_id:
1357 {
1358 // Typical calling sequence:
1359 // __ push(klass_RInfo); // object klass or other subclass
1360 // __ push(sup_k_RInfo); // array element klass or other superclass
|