diff options
Diffstat (limited to 'src/interp.c')
-rw-r--r-- | src/interp.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/interp.c b/src/interp.c index 894be30..ad532f2 100644 --- a/src/interp.c +++ b/src/interp.c @@ -1019,7 +1019,7 @@ top: case EJIT_UINT16: gpr[i.r2] = params[i.r0].u16; break; case EJIT_UINT32: gpr[i.r2] = params[i.r0].u32; break; case EJIT_UINT64: gpr[i.r2] = params[i.r0].u64; break; - case EJIT_POINTER: gpr[i.r2] = (int64_t)params[i.r0].p; break; + case EJIT_POINTER: gpr[i.r2] = (int64_t)(intptr_t)params[i.r0].p; break; default: abort(); } DISPATCH(); @@ -1075,7 +1075,7 @@ top: DISPATCH(); DO(TAILR); - f = (struct ejit_func *)gpr[i.r1]; + f = (struct ejit_func *)(intptr_t)gpr[i.r1]; /** @todo we could potentially just interpret the func as a fallback * instead of aborting here, but this is good enough for now */ @@ -1089,22 +1089,22 @@ top: DISPATCH(); DO(CALLR_I); - retval = ejit_run((struct ejit_func *)gpr[i.r1], argc, args, NULL); + retval = ejit_run((struct ejit_func *)(intptr_t)gpr[i.r1], argc, args, NULL); argc = 0; DISPATCH(); DO(CALLR_L); - retval = ejit_run((struct ejit_func *)gpr[i.r1], argc, args, NULL); + retval = ejit_run((struct ejit_func *)(intptr_t)gpr[i.r1], argc, args, NULL); argc = 0; DISPATCH(); DO(CALLR_F); - retval = ejit_run((struct ejit_func *)gpr[i.r1], argc, args, NULL); + retval = ejit_run((struct ejit_func *)(intptr_t)gpr[i.r1], argc, args, NULL); argc = 0; DISPATCH(); DO(CALLR_D); - retval = ejit_run((struct ejit_func *)gpr[i.r1], argc, args, NULL); + retval = ejit_run((struct ejit_func *)(intptr_t)gpr[i.r1], argc, args, NULL); argc = 0; DISPATCH(); |