Print this page
rev 1021 : 6858164: invokedynamic code needs some cleanup (post-6655638)
Note: The bug ID for this change set was erroneously used to call for review of 6815692.
Summary: Fix several crashers, remove needless paths for boxed-style bootstrap method call, refactor & simplify APIs for rewriter constantPoolOop, remove sun.dyn.CallSiteImpl
Reviewed-by: ?
rev 1026 : imported patch indy.compiler.inline.patch

Split Close
Expand all
Collapse all
          --- old/src/share/vm/interpreter/rewriter.hpp
          +++ new/src/share/vm/interpreter/rewriter.hpp
↓ open down ↓ 49 lines elided ↑ open up ↑
  50   50      assert(cp_entry_to_cp_cache(cp_index) == cache_index, "");
  51   51      return cache_index;
  52   52    }
  53   53    int add_secondary_cp_cache_entry(int main_cpc_entry) {
  54   54      assert(main_cpc_entry < _cp_cache_map.length(), "must be earlier CP cache entry");
  55   55      int cache_index = _cp_cache_map.append(main_cpc_entry | _secondary_entry_tag);
  56   56      return cache_index;
  57   57    }
  58   58  
  59   59    // All the work goes in here:
  60      -  Rewriter(instanceKlassHandle klass, TRAPS);
       60 +  Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS);
  61   61  
  62   62    void compute_index_maps();
  63   63    void make_constant_pool_cache(TRAPS);
  64   64    void scan_method(methodOop m);
  65   65    methodHandle rewrite_jsrs(methodHandle m, TRAPS);
  66   66    void rewrite_Object_init(methodHandle m, TRAPS);
  67   67    int  rewrite_member_reference(address bcp, int offset);
  68   68    void rewrite_invokedynamic(address bcp, int offset, int cp_index);
  69   69  
  70   70   public:
  71   71    // Driver routine:
  72   72    static void rewrite(instanceKlassHandle klass, TRAPS);
       73 +  static void rewrite(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS);
  73   74  
  74   75    enum {
  75   76      _secondary_entry_tag = nth_bit(30)
  76   77    };
  77   78  };
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX