2559 |
2559 |
2560 if (block()->next()->as_OsrEntry()) { |
2560 if (block()->next()->as_OsrEntry()) { |
2561 // need to free up storage used for OSR entry point |
2561 // need to free up storage used for OSR entry point |
2562 LIR_Opr osrBuffer = block()->next()->operand(); |
2562 LIR_Opr osrBuffer = block()->next()->operand(); |
2563 BasicTypeList signature; |
2563 BasicTypeList signature; |
2564 signature.append(T_INT); |
2564 signature.append(NOT_LP64(T_INT) LP64_ONLY(T_LONG)); // pass a pointer to osrBuffer |
2565 CallingConvention* cc = frame_map()->c_calling_convention(&signature); |
2565 CallingConvention* cc = frame_map()->c_calling_convention(&signature); |
2566 __ move(osrBuffer, cc->args()->at(0)); |
2566 __ move(osrBuffer, cc->args()->at(0)); |
2567 __ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::OSR_migration_end), |
2567 __ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::OSR_migration_end), |
2568 getThreadTemp(), LIR_OprFact::illegalOpr, cc->args()); |
2568 getThreadTemp(), LIR_OprFact::illegalOpr, cc->args()); |
2569 } |
2569 } |