diff options
Diffstat (limited to 'src/interp.c')
-rw-r--r-- | src/interp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/interp.c b/src/interp.c index 293da46..5618564 100644 --- a/src/interp.c +++ b/src/interp.c @@ -22,6 +22,8 @@ union interp_ret ejit_interp(struct ejit_func *f, size_t argc, [EXTRU8] = &&EXTRU8, [EXTRU16] = &&EXTRU16, [EXTRU32] = &&EXTRU32, + [EXTRF] = &&EXTRF, + [EXTRD] = &&EXTRD, [ADDR] = &&ADDR, [ADDR_F] = &&ADDR_F, @@ -300,6 +302,14 @@ union interp_ret ejit_interp(struct ejit_func *f, size_t argc, gpr[i.r0] = (uint32_t)gpr[i.r1]; DISPATCH(); + DO(EXTRF); + fpr[i.r0].f = (float)gpr[i.r1]; + DISPATCH(); + + DO(EXTRD); + fpr[i.r0].d = (double)gpr[i.r1]; + DISPATCH(); + DO(ADDR); gpr[i.r0] = gpr[i.r1] + gpr[i.r2]; DISPATCH(); |