< prev index next >

src/hotspot/cpu/x86/c1_Runtime1_x86.cpp

Print this page


1301         //       activation and we are calling a leaf VM function only.
1302         generate_unwind_exception(sasm);
1303       }
1304       break;
1305 
1306     case throw_array_store_exception_id:
1307       { StubFrame f(sasm, "throw_array_store_exception", dont_gc_arguments);
1308         // tos + 0: link
1309         //     + 1: return address
1310         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_array_store_exception), true);
1311       }
1312       break;
1313 
1314     case throw_class_cast_exception_id:
1315       { StubFrame f(sasm, "throw_class_cast_exception", dont_gc_arguments);
1316         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_class_cast_exception), true);
1317       }
1318       break;
1319 
1320     case throw_incompatible_class_change_error_id:
1321       { StubFrame f(sasm, "throw_incompatible_class_cast_exception", dont_gc_arguments);
1322         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_incompatible_class_change_error), false);






1323       }
1324       break;
1325 
1326     case slow_subtype_check_id:
1327       {
1328         // Typical calling sequence:
1329         // __ push(klass_RInfo);  // object klass or other subclass
1330         // __ push(sup_k_RInfo);  // array element klass or other superclass
1331         // __ call(slow_subtype_check);
1332         // Note that the subclass is pushed first, and is therefore deepest.
1333         // Previous versions of this code reversed the names 'sub' and 'super'.
1334         // This was operationally harmless but made the code unreadable.
1335         enum layout {
1336           rax_off, SLOT2(raxH_off)
1337           rcx_off, SLOT2(rcxH_off)
1338           rsi_off, SLOT2(rsiH_off)
1339           rdi_off, SLOT2(rdiH_off)
1340           // saved_rbp_off, SLOT2(saved_rbpH_off)
1341           return_off, SLOT2(returnH_off)
1342           sup_k_off, SLOT2(sup_kH_off)




1301         //       activation and we are calling a leaf VM function only.
1302         generate_unwind_exception(sasm);
1303       }
1304       break;
1305 
1306     case throw_array_store_exception_id:
1307       { StubFrame f(sasm, "throw_array_store_exception", dont_gc_arguments);
1308         // tos + 0: link
1309         //     + 1: return address
1310         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_array_store_exception), true);
1311       }
1312       break;
1313 
1314     case throw_class_cast_exception_id:
1315       { StubFrame f(sasm, "throw_class_cast_exception", dont_gc_arguments);
1316         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_class_cast_exception), true);
1317       }
1318       break;
1319 
1320     case throw_incompatible_class_change_error_id:
1321       { StubFrame f(sasm, "throw_incompatible_class_change_error", dont_gc_arguments);
1322         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_incompatible_class_change_error), false);
1323       }
1324       break;
1325 
1326     case throw_illegal_monitor_state_exception_id:
1327       { StubFrame f(sasm, "throw_illegal_monitor_state_exception", dont_gc_arguments);
1328         oop_maps = generate_exception_throw(sasm, CAST_FROM_FN_PTR(address, throw_illegal_monitor_state_exception), false);
1329       }
1330       break;
1331 
1332     case slow_subtype_check_id:
1333       {
1334         // Typical calling sequence:
1335         // __ push(klass_RInfo);  // object klass or other subclass
1336         // __ push(sup_k_RInfo);  // array element klass or other superclass
1337         // __ call(slow_subtype_check);
1338         // Note that the subclass is pushed first, and is therefore deepest.
1339         // Previous versions of this code reversed the names 'sub' and 'super'.
1340         // This was operationally harmless but made the code unreadable.
1341         enum layout {
1342           rax_off, SLOT2(raxH_off)
1343           rcx_off, SLOT2(rcxH_off)
1344           rsi_off, SLOT2(rsiH_off)
1345           rdi_off, SLOT2(rdiH_off)
1346           // saved_rbp_off, SLOT2(saved_rbpH_off)
1347           return_off, SLOT2(returnH_off)
1348           sup_k_off, SLOT2(sup_kH_off)


< prev index next >