< 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 >