On 25 February 2015 at 20:58, Laurent Vivier <laur...@vivier.eu> wrote: > >> Le 25 février 2015 à 12:28, Peter Maydell <peter.mayd...@linaro.org> a >> écrit : >> >> >> On 25 February 2015 at 17:39, Laurent Vivier <laur...@vivier.eu> wrote: >> > Hi, >> > >> > I think you should use abi_long instead of uint32_t. >> > >> > abi_long has an "aligned" attribute, and on m68k long are aligned on a >> > short >> > boundary. >> > >> > >> > #ifdef TARGET_M68K >> > #define ABI_INT_ALIGNMENT 2 >> > #define ABI_LONG_ALIGNMENT 2 >> > #define ABI_LLONG_ALIGNMENT 2 >> > #endif >> > >> > typedef uint32_t abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT))); >> >> In this instance it doesn't matter because get_sigframe() aligns >> the pointer we're going to write the sigframe to, and the elements >> in the struct before retcode[] won't make it worse than 4-aligned, >> I think? > > Yes, I agree. But the aim of the abi_* types is to define the target ABI. > Thus, for consistency it should better to use the abi_long (or abi_ulong) > instead of uint32_t.
Well, strictly speaking this is writing instructions into a byte array rather than ABI longs, so it ought to do it byte-at-a-time to respect the definition of the struct. Anyway, if you want to submit a patch I don't object. -- PMM