tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] RE :Re: New test 73_arm64 hangs if ran on RPi


From: Michael Matz
Subject: Re: [Tinycc-devel] RE :Re: New test 73_arm64 hangs if ran on RPi
Date: Mon, 9 Mar 2015 11:36:01 +0100 (CET)
User-agent: Alpine 2.00 (LNX 1167 2008-08-23)

Hi,

On Mon, 9 Mar 2015, Edmund Grimley Evans wrote:

Michael Matz <address@hidden>:

And some more fixes for more tests in 73_arm64, namely stdarg
passing of structs passed in purely integer registers.  structs
passed in fp regs or mixed int/fp regs are unfortunately not
consecutive in the reg_save_area, and hence need temporary memory,
but this requires some more involved changes in libtcc1.

On arm64 a struct is sometimes not consecutive in memory. Code is
generated in gen_va_arg() in arm64-gen.c to rearrange the data. I get
more stack space using the global variable "loc".

Yes, I know. I just wanted to avoid having to open-code a va_arg in x86-64, it currently uses a C implementation from libtcc1. With that approach I can't allocate stack in the calling routine, of course, and would have to resort to a static buffer, which in turn would break multi-threaded use, or use malloc which would create a leak, or use malloc with reuse, which requires a global list, again creating multi-threaded problems :-/ Over that set of stones and hard places I went to bed. (I now think the only realistic option is indeed to generate va_arg from the backend).


Ciao,
Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]