"Mohamed Shafi" <shafitvm@gmail.com> writes:
> I am working for a private GCC target.
> The target has 4 registers, each 32 bits reserved for arguments.
> When passing arguments depending on the type of the argument either
> registers or stack + registers will be used Sometimes the arguments
> will be split between a memory location and the register.Consider the
> following function call
>
> fun(int k, long long j, long long m);
>
> In the above case k and j will be passed through registers and m will
> be passed through register and stack, as all the other registers are
> used by the arguments k and j.
> In this case compiler is splitting the values on its own. But due to
> the restriction placed by load/store operation for the target, the
> splitting has to be modified according to the target.
>
> Is there any target hook that will help me to do it?
> Or can i write a pattern in the md file that can be used for this
> purpose. Is there any other target that does similar to this?
See TARGET_ARG_PARTIAL_BYTES.