< prev index next >

src/share/vm/opto/macroArrayCopy.cpp

Print this page
rev 10504 : value type calling convention


  53   const TypeLong* lidxtype = TypeLong::make(CONST64(0), index_max, Type::WidenMax);
  54   idx = transform_later( new ConvI2LNode(idx, lidxtype) );
  55 #endif
  56   Node* scale = new LShiftXNode(idx, intcon(shift));
  57   transform_later(scale);
  58   return basic_plus_adr(ary, base, scale);
  59 }
  60 
  61 Node* PhaseMacroExpand::ConvI2L(Node* offset) {
  62   return transform_later(new ConvI2LNode(offset));
  63 }
  64 
  65 Node* PhaseMacroExpand::make_leaf_call(Node* ctrl, Node* mem,
  66                                        const TypeFunc* call_type, address call_addr,
  67                                        const char* call_name,
  68                                        const TypePtr* adr_type,
  69                                        Node* parm0, Node* parm1,
  70                                        Node* parm2, Node* parm3,
  71                                        Node* parm4, Node* parm5,
  72                                        Node* parm6, Node* parm7) {
  73   int size = call_type->domain()->cnt();
  74   Node* call = new CallLeafNoFPNode(call_type, call_addr, call_name, adr_type);
  75   call->init_req(TypeFunc::Control, ctrl);
  76   call->init_req(TypeFunc::I_O    , top());
  77   call->init_req(TypeFunc::Memory , mem);
  78   call->init_req(TypeFunc::ReturnAdr, top());
  79   call->init_req(TypeFunc::FramePtr, top());
  80 
  81   // Hook each parm in order.  Stop looking at the first NULL.
  82   if (parm0 != NULL) { call->init_req(TypeFunc::Parms+0, parm0);
  83   if (parm1 != NULL) { call->init_req(TypeFunc::Parms+1, parm1);
  84   if (parm2 != NULL) { call->init_req(TypeFunc::Parms+2, parm2);
  85   if (parm3 != NULL) { call->init_req(TypeFunc::Parms+3, parm3);
  86   if (parm4 != NULL) { call->init_req(TypeFunc::Parms+4, parm4);
  87   if (parm5 != NULL) { call->init_req(TypeFunc::Parms+5, parm5);
  88   if (parm6 != NULL) { call->init_req(TypeFunc::Parms+6, parm6);
  89   if (parm7 != NULL) { call->init_req(TypeFunc::Parms+7, parm7);
  90     /* close each nested if ===> */  } } } } } } } }
  91   assert(call->in(call->req()-1) != NULL, "must initialize all parms");
  92 
  93   return call;




  53   const TypeLong* lidxtype = TypeLong::make(CONST64(0), index_max, Type::WidenMax);
  54   idx = transform_later( new ConvI2LNode(idx, lidxtype) );
  55 #endif
  56   Node* scale = new LShiftXNode(idx, intcon(shift));
  57   transform_later(scale);
  58   return basic_plus_adr(ary, base, scale);
  59 }
  60 
  61 Node* PhaseMacroExpand::ConvI2L(Node* offset) {
  62   return transform_later(new ConvI2LNode(offset));
  63 }
  64 
  65 Node* PhaseMacroExpand::make_leaf_call(Node* ctrl, Node* mem,
  66                                        const TypeFunc* call_type, address call_addr,
  67                                        const char* call_name,
  68                                        const TypePtr* adr_type,
  69                                        Node* parm0, Node* parm1,
  70                                        Node* parm2, Node* parm3,
  71                                        Node* parm4, Node* parm5,
  72                                        Node* parm6, Node* parm7) {
  73   int size = call_type->domain_sig()->cnt();
  74   Node* call = new CallLeafNoFPNode(call_type, call_addr, call_name, adr_type);
  75   call->init_req(TypeFunc::Control, ctrl);
  76   call->init_req(TypeFunc::I_O    , top());
  77   call->init_req(TypeFunc::Memory , mem);
  78   call->init_req(TypeFunc::ReturnAdr, top());
  79   call->init_req(TypeFunc::FramePtr, top());
  80 
  81   // Hook each parm in order.  Stop looking at the first NULL.
  82   if (parm0 != NULL) { call->init_req(TypeFunc::Parms+0, parm0);
  83   if (parm1 != NULL) { call->init_req(TypeFunc::Parms+1, parm1);
  84   if (parm2 != NULL) { call->init_req(TypeFunc::Parms+2, parm2);
  85   if (parm3 != NULL) { call->init_req(TypeFunc::Parms+3, parm3);
  86   if (parm4 != NULL) { call->init_req(TypeFunc::Parms+4, parm4);
  87   if (parm5 != NULL) { call->init_req(TypeFunc::Parms+5, parm5);
  88   if (parm6 != NULL) { call->init_req(TypeFunc::Parms+6, parm6);
  89   if (parm7 != NULL) { call->init_req(TypeFunc::Parms+7, parm7);
  90     /* close each nested if ===> */  } } } } } } } }
  91   assert(call->in(call->req()-1) != NULL, "must initialize all parms");
  92 
  93   return call;


< prev index next >