[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for 4.5] arm32: fix build after 063188f4b3
At 14:13 +0100 on 14 Oct (1413292415), Jan Beulich wrote: > >>> On 14.10.14 at 15:06, <julien.grall@xxxxxxxxxx> wrote: > > On 10/14/2014 01:57 PM, Ian Campbell wrote: > >> On Tue, 2014-10-14 at 13:43 +0100, Julien Grall wrote: > >>> On 10/14/2014 10:15 AM, Ian Campbell wrote: > >>>> On Mon, 2014-10-13 at 16:29 +0100, Julien Grall wrote: > >>>>> +int do_smc(register_t function_id, ...); > >>>> > >>>> Are you sure that the variadic function calling convention is the same > >>>> as for a regular function call? I'm not entirely clear having read > >>>> AAPCS, it says they are marshalled according to "the standard base". > >>> > >>> All the parameters fits in a register, so the compiler will effectively > >>> use the first registers to pass arguments. > >> > >> Does it? Even with variadic functions? It's not unheard of for an ABI to > >> fallback to pushing things onto the stack for such cases, since it works > >> out far easier in stdargs.h. > > > > You are right, it looks like it's compiler depend how variadic function > > will be called. > > Now that should never happen - there ought to be an ABI that all > compilers abide by. Indeed. It may depend on compiler _flags_ but it muct be one of the standard layouts. By my reading of the AAPCS, calls with up to four word-sized integer/pointer arguments (even variadic) will use registers -- "marshalled as for the base standard" just means "not using any of the optional rules for FP arguments". All of which reminds me of this (from last year): https://www.mikeash.com/pyblog/friday-qa-2013-06-28-anatomy-of-a-compiler-bug.html Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |