Print this page


Split Close
Expand all
Collapse all
          --- old/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
          +++ new/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
↓ open down ↓ 1103 lines elided ↑ open up ↑
1104 1104  }
1105 1105  
1106 1106  // ---------------------------------------------------------------------------
1107 1107  // Generate a native wrapper for a given method.  The method takes arguments
1108 1108  // in the Java compiled code convention, marshals them to the native
1109 1109  // convention (handlizes oops, etc), transitions to native, makes the call,
1110 1110  // returns to java state (possibly blocking), unhandlizes any result and
1111 1111  // returns.
1112 1112  nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
1113 1113                                                  methodHandle method,
     1114 +                                                int compile_id,
1114 1115                                                  int total_in_args,
1115 1116                                                  int comp_args_on_stack,
1116 1117                                                  BasicType *in_sig_bt,
1117 1118                                                  VMRegPair *in_regs,
1118 1119                                                  BasicType ret_type) {
1119 1120  
1120 1121    // An OopMap for lock (and class if static)
1121 1122    OopMapSet *oop_maps = new OopMapSet();
1122 1123  
1123 1124    // We have received a description of where all the java arg are located
↓ open down ↓ 723 lines elided ↑ open up ↑
1847 1848    __ empty_FPU_stack();
1848 1849  
1849 1850    // pop our frame
1850 1851    __ leave();
1851 1852    // and forward the exception
1852 1853    __ jump(RuntimeAddress(StubRoutines::forward_exception_entry()));
1853 1854  
1854 1855    __ flush();
1855 1856  
1856 1857    nmethod *nm = nmethod::new_native_nmethod(method,
     1858 +                                            compile_id,
1857 1859                                              masm->code(),
1858 1860                                              vep_offset,
1859 1861                                              frame_complete,
1860 1862                                              stack_slots / VMRegImpl::slots_per_word,
1861 1863                                              (is_static ? in_ByteSize(klass_offset) : in_ByteSize(receiver_offset)),
1862 1864                                              in_ByteSize(lock_slot_offset*VMRegImpl::stack_slot_size),
1863 1865                                              oop_maps);
1864 1866    return nm;
1865 1867  
1866 1868  }
↓ open down ↓ 1135 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX