hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
changeset 22832 03720a5b7595
parent 16624 9dbd4b210bf9
child 22858 f4a6f0eba875
equal deleted inserted replaced
22831:1e2ba1d62103 22832:03720a5b7595
   975   return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry);
   975   return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry);
   976 }
   976 }
   977 
   977 
   978 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
   978 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
   979                                          VMRegPair *regs,
   979                                          VMRegPair *regs,
       
   980                                          VMRegPair *regs2,
   980                                          int total_args_passed) {
   981                                          int total_args_passed) {
       
   982   assert(regs2 == NULL, "not needed on x86");
   981 // We return the amount of VMRegImpl stack slots we need to reserve for all
   983 // We return the amount of VMRegImpl stack slots we need to reserve for all
   982 // the arguments NOT counting out_preserve_stack_slots.
   984 // the arguments NOT counting out_preserve_stack_slots.
   983 
   985 
   984   uint    stack = 0;        // All arguments on stack
   986   uint    stack = 0;        // All arguments on stack
   985 
   987 
  1622   }
  1624   }
  1623 
  1625 
  1624   // Now figure out where the args must be stored and how much stack space
  1626   // Now figure out where the args must be stored and how much stack space
  1625   // they require.
  1627   // they require.
  1626   int out_arg_slots;
  1628   int out_arg_slots;
  1627   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, total_c_args);
  1629   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, NULL, total_c_args);
  1628 
  1630 
  1629   // Compute framesize for the wrapper.  We need to handlize all oops in
  1631   // Compute framesize for the wrapper.  We need to handlize all oops in
  1630   // registers a max of 2 on x86.
  1632   // registers a max of 2 on x86.
  1631 
  1633 
  1632   // Calculate the total number of stack slots we will need.
  1634   // Calculate the total number of stack slots we will need.
  2493 
  2495 
  2494   // Now figure out where the args must be stored and how much stack space
  2496   // Now figure out where the args must be stored and how much stack space
  2495   // they require (neglecting out_preserve_stack_slots).
  2497   // they require (neglecting out_preserve_stack_slots).
  2496 
  2498 
  2497   int out_arg_slots;
  2499   int out_arg_slots;
  2498   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, total_c_args);
  2500   out_arg_slots = c_calling_convention(out_sig_bt, out_regs, NULL, total_c_args);
  2499 
  2501 
  2500   // Calculate the total number of stack slots we will need.
  2502   // Calculate the total number of stack slots we will need.
  2501 
  2503 
  2502   // First count the abi requirement plus all of the outgoing args
  2504   // First count the abi requirement plus all of the outgoing args
  2503   int stack_slots = SharedRuntime::out_preserve_stack_slots() + out_arg_slots;
  2505   int stack_slots = SharedRuntime::out_preserve_stack_slots() + out_arg_slots;