[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
On Tue, 2014-10-14 at 21:09 +0200, Tim Deegan wrote: > 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". OK, so that's good. I think smc calls can potentially take more than 4 arguments, but I don't think we have any such right now. Using call_smc<N> will help protect us against stumbling over this in the future... > All of which reminds me of this (from last year): It reminded me of the stack misalignment issue we used to have on one of the arm subarchs, which broke variadics iirc... > https://www.mikeash.com/pyblog/friday-qa-2013-06-28-anatomy-of-a-compiler-bug.html Interesting read thanks! Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |