aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm64-gen.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arm64-gen.c b/arm64-gen.c
index 5bb8e24..4b2608a 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)));
}