https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89582
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com --- Comment #7 from Jeffrey A. Law <law at redhat dot com> --- The same value in different locations (say an integer register and fp register) is represented as the PARALLEL of the two locations. Various ports do this already. The value of the expression can also be a @code{parallel} RTX@. This is used when an argument is passed in multiple locations. The mode of the @code{parallel} should be the mode of the entire argument. The @code{parallel} holds any number of @code{expr_list} pairs; each one describes where part of the argument is passed. In each @code{expr_list} the first operand must be a @code{reg} RTX for the hard register in which to pass this part of the argument, and the mode of the register RTX indicates how large this part of the argument is. The second operand of the @code{expr_list} is a @code{const_int} which gives the offset in bytes into the entire argument of where this part starts. As a special exception the first @code{expr_list} in the @code{parallel} RTX may have a first operand of zero. This indicates that the entire argument is also stored on the stack.