tcg-hppa: Fix 64-bit argument ordering
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
3436332ed6
commit
3f90f252ec
12
tcg/tcg.c
12
tcg/tcg.c
@ -596,7 +596,17 @@ void tcg_gen_callN(TCGContext *s, TCGv_ptr func, unsigned int flags,
|
|||||||
real_args++;
|
real_args++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef TCG_TARGET_WORDS_BIGENDIAN
|
/* If stack grows up, then we will be placing successive
|
||||||
|
arguments at lower addresses, which means we need to
|
||||||
|
reverse the order compared to how we would normally
|
||||||
|
treat either big or little-endian. For those arguments
|
||||||
|
that will wind up in registers, this still works for
|
||||||
|
HPPA (the only current STACK_GROWSUP target) since the
|
||||||
|
argument registers are *also* allocated in decreasing
|
||||||
|
order. If another such target is added, this logic may
|
||||||
|
have to get more complicated to differentiate between
|
||||||
|
stack arguments and register arguments. */
|
||||||
|
#if defined(TCG_TARGET_WORDS_BIGENDIAN) != defined(TCG_TARGET_STACK_GROWSUP)
|
||||||
*gen_opparam_ptr++ = args[i] + 1;
|
*gen_opparam_ptr++ = args[i] + 1;
|
||||||
*gen_opparam_ptr++ = args[i];
|
*gen_opparam_ptr++ = args[i];
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user