< prev index next >

src/share/vm/opto/loopTransform.cpp

Print this page
rev 8611 : 8086069: Adapt runtime calls to recent intrinsics to pass ints as long
Summary: Remove CCallingConventionRequiresIntsAsLongs from shared code and push functionality to native wrapper. Less optimal but more flexible.

*** 2939,2967 **** } else if (t == T_DOUBLE) { store_value = new MoveD2LNode(store_value); _igvn.register_new_node_with_optimizer(store_value); } - if (CCallingConventionRequiresIntsAsLongs && - // See StubRoutines::select_fill_function for types. FLOAT has been converted to INT. - (t == T_FLOAT || t == T_INT || is_subword_type(t))) { - store_value = new ConvI2LNode(store_value); - _igvn.register_new_node_with_optimizer(store_value); - } - Node* mem_phi = store->in(MemNode::Memory); Node* result_ctrl; Node* result_mem; const TypeFunc* call_type = OptoRuntime::array_fill_Type(); CallLeafNode *call = new CallLeafNoFPNode(call_type, fill, fill_name, TypeAryPtr::get_array_body_type(t)); uint cnt = 0; call->init_req(TypeFunc::Parms + cnt++, from); call->init_req(TypeFunc::Parms + cnt++, store_value); - if (CCallingConventionRequiresIntsAsLongs) { - call->init_req(TypeFunc::Parms + cnt++, C->top()); - } #ifdef _LP64 len = new ConvI2LNode(len); _igvn.register_new_node_with_optimizer(len); #endif call->init_req(TypeFunc::Parms + cnt++, len); --- 2939,2957 ----
< prev index next >