From b155432b65983df148ce6ce0e7bdc07d80c81d0e Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Tue, 13 Dec 2016 12:48:18 +0100 Subject: [PATCH] arm64: Fix largeptr test VT_PTR needs to be handled like VT_LLONG. --- arm64-gen.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arm64-gen.c b/arm64-gen.c index 5bb8e244..4b2608ac 100644 --- a/arm64-gen.c +++ b/arm64-gen.c @@ -1326,7 +1326,8 @@ static int arm64_iconst(uint64_t *val, SValue *sv) return 0; if (val) { int t = sv->type.t; - *val = ((t & VT_BTYPE) == VT_LLONG ? sv->c.i : + int bt = t & VT_BTYPE; + *val = ((bt == VT_LLONG || bt == VT_PTR) ? sv->c.i : (uint32_t)sv->c.i | (t & VT_UNSIGNED ? 0 : -(sv->c.i & 0x80000000))); }