equal
deleted
inserted
replaced
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; |