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 1022 : 6829192: JSR 292 needs to support 64-bit x86
Summary: changes for method handles and invokedynamic
Reviewed-by: ?, ?

Split Close
Expand all
Collapse all
          --- old/src/cpu/x86/vm/templateTable_x86_32.cpp
          +++ new/src/cpu/x86/vm/templateTable_x86_32.cpp
↓ open down ↓ 3138 lines elided ↑ open up ↑
3139 3139    // rcx: receiver address
3140 3140    // rdx: flags (unused)
3141 3141  
3142 3142    if (ProfileInterpreter) {
3143 3143      Label L;
3144 3144      // %%% should make a type profile for any invokedynamic that takes a ref argument
3145 3145      // profile this call
3146 3146      __ profile_call(rsi);
3147 3147    }
3148 3148  
3149      -  Label handle_unlinked_site;
3150 3149    __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
3151 3150    __ null_check(rcx);
3152 3151    __ prepare_to_jump_from_interpreted();
3153 3152    __ jump_to_method_handle_entry(rcx, rdx);
3154 3153  }
3155 3154  
3156 3155  //----------------------------------------------------------------------------------------------------
3157 3156  // Allocation
3158 3157  
3159 3158  void TemplateTable::_new() {
↓ open down ↓ 486 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX