equal
deleted
inserted
replaced
918 } |
918 } |
919 |
919 |
920 |
920 |
921 LIR_Opr LIRGenerator::force_to_spill(LIR_Opr value, BasicType t) { |
921 LIR_Opr LIRGenerator::force_to_spill(LIR_Opr value, BasicType t) { |
922 assert(type2size[t] == type2size[value->type()], |
922 assert(type2size[t] == type2size[value->type()], |
923 err_msg_res("size mismatch: t=%s, value->type()=%s", type2name(t), type2name(value->type()))); |
923 "size mismatch: t=%s, value->type()=%s", type2name(t), type2name(value->type())); |
924 if (!value->is_register()) { |
924 if (!value->is_register()) { |
925 // force into a register |
925 // force into a register |
926 LIR_Opr r = new_register(value->type()); |
926 LIR_Opr r = new_register(value->type()); |
927 __ move(value, r); |
927 __ move(value, r); |
928 value = r; |
928 value = r; |
2830 } |
2830 } |
2831 |
2831 |
2832 |
2832 |
2833 void LIRGenerator::invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list) { |
2833 void LIRGenerator::invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list) { |
2834 assert(args->length() == arg_list->length(), |
2834 assert(args->length() == arg_list->length(), |
2835 err_msg_res("args=%d, arg_list=%d", args->length(), arg_list->length())); |
2835 "args=%d, arg_list=%d", args->length(), arg_list->length()); |
2836 for (int i = x->has_receiver() ? 1 : 0; i < args->length(); i++) { |
2836 for (int i = x->has_receiver() ? 1 : 0; i < args->length(); i++) { |
2837 LIRItem* param = args->at(i); |
2837 LIRItem* param = args->at(i); |
2838 LIR_Opr loc = arg_list->at(i); |
2838 LIR_Opr loc = arg_list->at(i); |
2839 if (loc->is_register()) { |
2839 if (loc->is_register()) { |
2840 param->load_item_force(loc); |
2840 param->load_item_force(loc); |
2974 SharedRuntime::get_resolve_static_call_stub(), |
2974 SharedRuntime::get_resolve_static_call_stub(), |
2975 arg_list, info); |
2975 arg_list, info); |
2976 break; |
2976 break; |
2977 } |
2977 } |
2978 default: |
2978 default: |
2979 fatal(err_msg("unexpected bytecode: %s", Bytecodes::name(x->code()))); |
2979 fatal("unexpected bytecode: %s", Bytecodes::name(x->code())); |
2980 break; |
2980 break; |
2981 } |
2981 } |
2982 |
2982 |
2983 // JSR 292 |
2983 // JSR 292 |
2984 // Restore the SP after MethodHandle call sites, if needed. |
2984 // Restore the SP after MethodHandle call sites, if needed. |