hotspot/src/share/vm/interpreter/templateInterpreter.cpp
changeset 37480 291ee208fb72
parent 37161 e881f320966e
child 42664 29142a56c193
equal deleted inserted replaced
37479:14a195eaf2c5 37480:291ee208fb72
    87 
    87 
    88 //------------------------------------------------------------------------------------------------------------------------
    88 //------------------------------------------------------------------------------------------------------------------------
    89 // Implementation of EntryPoint
    89 // Implementation of EntryPoint
    90 
    90 
    91 EntryPoint::EntryPoint() {
    91 EntryPoint::EntryPoint() {
    92   assert(number_of_states == 9, "check the code below");
    92   assert(number_of_states == 10, "check the code below");
    93   _entry[btos] = NULL;
    93   _entry[btos] = NULL;
       
    94   _entry[ztos] = NULL;
    94   _entry[ctos] = NULL;
    95   _entry[ctos] = NULL;
    95   _entry[stos] = NULL;
    96   _entry[stos] = NULL;
    96   _entry[atos] = NULL;
    97   _entry[atos] = NULL;
    97   _entry[itos] = NULL;
    98   _entry[itos] = NULL;
    98   _entry[ltos] = NULL;
    99   _entry[ltos] = NULL;
   100   _entry[dtos] = NULL;
   101   _entry[dtos] = NULL;
   101   _entry[vtos] = NULL;
   102   _entry[vtos] = NULL;
   102 }
   103 }
   103 
   104 
   104 
   105 
   105 EntryPoint::EntryPoint(address bentry, address centry, address sentry, address aentry, address ientry, address lentry, address fentry, address dentry, address ventry) {
   106 EntryPoint::EntryPoint(address bentry, address zentry, address centry, address sentry, address aentry, address ientry, address lentry, address fentry, address dentry, address ventry) {
   106   assert(number_of_states == 9, "check the code below");
   107   assert(number_of_states == 10, "check the code below");
   107   _entry[btos] = bentry;
   108   _entry[btos] = bentry;
       
   109   _entry[ztos] = zentry;
   108   _entry[ctos] = centry;
   110   _entry[ctos] = centry;
   109   _entry[stos] = sentry;
   111   _entry[stos] = sentry;
   110   _entry[atos] = aentry;
   112   _entry[atos] = aentry;
   111   _entry[itos] = ientry;
   113   _entry[itos] = ientry;
   112   _entry[ltos] = lentry;
   114   _entry[ltos] = lentry;
   153 EntryPoint DispatchTable::entry(int i) const {
   155 EntryPoint DispatchTable::entry(int i) const {
   154   assert(0 <= i && i < length, "index out of bounds");
   156   assert(0 <= i && i < length, "index out of bounds");
   155   return
   157   return
   156     EntryPoint(
   158     EntryPoint(
   157       _table[btos][i],
   159       _table[btos][i],
       
   160       _table[ztos][i],
   158       _table[ctos][i],
   161       _table[ctos][i],
   159       _table[stos][i],
   162       _table[stos][i],
   160       _table[atos][i],
   163       _table[atos][i],
   161       _table[itos][i],
   164       _table[itos][i],
   162       _table[ltos][i],
   165       _table[ltos][i],
   167 }
   170 }
   168 
   171 
   169 
   172 
   170 void DispatchTable::set_entry(int i, EntryPoint& entry) {
   173 void DispatchTable::set_entry(int i, EntryPoint& entry) {
   171   assert(0 <= i && i < length, "index out of bounds");
   174   assert(0 <= i && i < length, "index out of bounds");
   172   assert(number_of_states == 9, "check the code below");
   175   assert(number_of_states == 10, "check the code below");
   173   _table[btos][i] = entry.entry(btos);
   176   _table[btos][i] = entry.entry(btos);
       
   177   _table[ztos][i] = entry.entry(ztos);
   174   _table[ctos][i] = entry.entry(ctos);
   178   _table[ctos][i] = entry.entry(ctos);
   175   _table[stos][i] = entry.entry(stos);
   179   _table[stos][i] = entry.entry(stos);
   176   _table[atos][i] = entry.entry(atos);
   180   _table[atos][i] = entry.entry(atos);
   177   _table[itos][i] = entry.entry(itos);
   181   _table[itos][i] = entry.entry(itos);
   178   _table[ltos][i] = entry.entry(ltos);
   182   _table[ltos][i] = entry.entry(ltos);