src/share/vm/opto/generateOptoStub.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8012972 Sdiff src/share/vm/opto

src/share/vm/opto/generateOptoStub.cpp

Print this page




  44                         int is_fancy_jump,
  45                         bool pass_tls,
  46                         bool return_pc) {
  47   ResourceMark rm;
  48 
  49   const TypeTuple *jdomain = C->tf()->domain();
  50   const TypeTuple *jrange  = C->tf()->range();
  51 
  52   // The procedure start
  53   StartNode* start = new (C) StartNode(root(), jdomain);
  54   _gvn.set_type_bottom(start);
  55 
  56   // Make a map, with JVM state
  57   uint parm_cnt = jdomain->cnt();
  58   uint max_map = MAX2(2*parm_cnt+1, jrange->cnt());
  59   // %%% SynchronizationEntryBCI is redundant; use InvocationEntryBci in interfaces
  60   assert(SynchronizationEntryBCI == InvocationEntryBci, "");
  61   JVMState* jvms = new (C) JVMState(0);
  62   jvms->set_bci(InvocationEntryBci);
  63   jvms->set_monoff(max_map);

  64   jvms->set_endoff(max_map);
  65   {
  66     SafePointNode *map = new (C) SafePointNode( max_map, jvms );
  67     jvms->set_map(map);
  68     set_jvms(jvms);
  69     assert(map == this->map(), "kit.map is set");
  70   }
  71 
  72   // Make up the parameters
  73   uint i;
  74   for( i = 0; i < parm_cnt; i++ )
  75     map()->init_req(i, _gvn.transform(new (C) ParmNode(start, i)));
  76   for( ; i<map()->req(); i++ )
  77     map()->init_req(i, top());      // For nicer debugging
  78 
  79   // GraphKit requires memory to be a MergeMemNode:
  80   set_all_memory(map()->memory());
  81 
  82   // Get base of thread-local storage area
  83   Node* thread = _gvn.transform( new (C) ThreadLocalNode() );




  44                         int is_fancy_jump,
  45                         bool pass_tls,
  46                         bool return_pc) {
  47   ResourceMark rm;
  48 
  49   const TypeTuple *jdomain = C->tf()->domain();
  50   const TypeTuple *jrange  = C->tf()->range();
  51 
  52   // The procedure start
  53   StartNode* start = new (C) StartNode(root(), jdomain);
  54   _gvn.set_type_bottom(start);
  55 
  56   // Make a map, with JVM state
  57   uint parm_cnt = jdomain->cnt();
  58   uint max_map = MAX2(2*parm_cnt+1, jrange->cnt());
  59   // %%% SynchronizationEntryBCI is redundant; use InvocationEntryBci in interfaces
  60   assert(SynchronizationEntryBCI == InvocationEntryBci, "");
  61   JVMState* jvms = new (C) JVMState(0);
  62   jvms->set_bci(InvocationEntryBci);
  63   jvms->set_monoff(max_map);
  64   jvms->set_scloff(max_map);
  65   jvms->set_endoff(max_map);
  66   {
  67     SafePointNode *map = new (C) SafePointNode( max_map, jvms );
  68     jvms->set_map(map);
  69     set_jvms(jvms);
  70     assert(map == this->map(), "kit.map is set");
  71   }
  72 
  73   // Make up the parameters
  74   uint i;
  75   for( i = 0; i < parm_cnt; i++ )
  76     map()->init_req(i, _gvn.transform(new (C) ParmNode(start, i)));
  77   for( ; i<map()->req(); i++ )
  78     map()->init_req(i, top());      // For nicer debugging
  79 
  80   // GraphKit requires memory to be a MergeMemNode:
  81   set_all_memory(map()->memory());
  82 
  83   // Get base of thread-local storage area
  84   Node* thread = _gvn.transform( new (C) ThreadLocalNode() );


src/share/vm/opto/generateOptoStub.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File