RFR 8226921 [lworld] Refactor argument shuffling code for ValueTypePassFieldsAsArgs

Dmitry Samersoff dms at samersoff.net
Fri Jun 28 07:31:12 UTC 2019


Hi Ioi,

Flicked through your patch - Very Cool!

I'll apply it and check what is happening on aarch64 early next week.

-Dmitry

On 28.06.19 08:16, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8226921
> http://cr.openjdk.java.net/~iklam/valhalla/8226921-refactor-ValueTypePassFieldsAsArgs-args-shuffling.v01/
> 
> 
> Hi Dmitry,
> 
> Could you try this patch and see if it works for the aarch64 port?
> 
> To make it compile, you have to add these declaration into
> macroAssembler_aarch64.hpp:
> 
>   bool move_helper(VMReg from, VMReg to, BasicType bt, RegState
> reg_state[], int ret_off, int extra_stack_offset);
>   bool unpack_value_helper(const GrowableArray<SigEntry>* sig, int&
> sig_index, VMReg from, VMRegPair* regs_to, int& to_index,
>                            RegState reg_state[], int ret_off, int
> extra_stack_offset);
>   bool pack_value_helper(const GrowableArray<SigEntry>* sig, int&
> sig_index, int vtarg_index,
>                          VMReg to, VMRegPair* regs_from, int
> regs_from_count, int& from_index, RegState reg_state[],
>                          int ret_off, int extra_stack_offset);
>   int shuffle_value_args(bool is_packing, bool receiver_only, int
> extra_stack_offset,
>                          BasicType* sig_bt, const
> GrowableArray<SigEntry>* sig_cc,
>                          int args_passed, int args_on_stack, VMRegPair*
> regs,
>                          int args_passed_to, int args_on_stack_to,
> VMRegPair* regs_to);
>   VMReg spill_reg_for(VMReg reg);
> 
> I think I have removed all x64-ism from macroAssembler_common.cpp, but
> I have no way of verifying that :-(
> 
> I ran all the Valhalla tests on my linux/x64 boxes and saw no regression.
> 
> Thanks
> - Ioi
> 



More information about the valhalla-dev mailing list