hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
changeset 22832 03720a5b7595
parent 18098 e3a8bc78b7e2
child 22858 f4a6f0eba875
equal deleted inserted replaced
22831:1e2ba1d62103 22832:03720a5b7595
   887   return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry);
   887   return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry);
   888 }
   888 }
   889 
   889 
   890 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
   890 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
   891                                          VMRegPair *regs,
   891                                          VMRegPair *regs,
       
   892                                          VMRegPair *regs2,
   892                                          int total_args_passed) {
   893                                          int total_args_passed) {
       
   894   assert(regs2 == NULL, "not needed on x86");
   893 // We return the amount of VMRegImpl stack slots we need to reserve for all
   895 // We return the amount of VMRegImpl stack slots we need to reserve for all
   894 // the arguments NOT counting out_preserve_stack_slots.
   896 // the arguments NOT counting out_preserve_stack_slots.
   895 
   897 
   896 // NOTE: These arrays will have to change when c1 is ported
   898 // NOTE: These arrays will have to change when c1 is ported
   897 #ifdef _WIN64
   899 #ifdef _WIN64
  1855   }
  1857   }
  1856 
  1858 
  1857   // Now figure out where the args must be stored and how much stack space
  1859   // Now figure out where the args must be stored and how much stack space
  1858   // they require.
  1860   // they require.
  1859   int out_arg_slots;
  1861   int out_arg_slots;
  1860   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, total_c_args);
  1862   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, NULL, total_c_args);
  1861 
  1863 
  1862   // Compute framesize for the wrapper.  We need to handlize all oops in
  1864   // Compute framesize for the wrapper.  We need to handlize all oops in
  1863   // incoming registers
  1865   // incoming registers
  1864 
  1866 
  1865   // Calculate the total number of stack slots we will need.
  1867   // Calculate the total number of stack slots we will need.
  2759   // Now figure out where the args must be stored and how much stack space
  2761   // Now figure out where the args must be stored and how much stack space
  2760   // they require (neglecting out_preserve_stack_slots but space for storing
  2762   // they require (neglecting out_preserve_stack_slots but space for storing
  2761   // the 1st six register arguments). It's weird see int_stk_helper.
  2763   // the 1st six register arguments). It's weird see int_stk_helper.
  2762 
  2764 
  2763   int out_arg_slots;
  2765   int out_arg_slots;
  2764   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, total_c_args);
  2766   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, NULL, total_c_args);
  2765 
  2767 
  2766   // Calculate the total number of stack slots we will need.
  2768   // Calculate the total number of stack slots we will need.
  2767 
  2769 
  2768   // First count the abi requirement plus all of the outgoing args
  2770   // First count the abi requirement plus all of the outgoing args
  2769   int stack_slots = SharedRuntime::out_preserve_stack_slots() + out_arg_slots;
  2771   int stack_slots = SharedRuntime::out_preserve_stack_slots() + out_arg_slots;