diff options
author | Luite Stegeman <stegeman@gmail.com> | 2021-01-22 00:09:17 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-03-20 07:49:15 -0400 |
commit | 1f94e0f7601f8e22fdd81a47f130650265a44196 (patch) | |
tree | d06d02317049b56763b2f1da27f71f3663efa5a0 /includes | |
parent | 7de3532f0317032f75b76150c5d3a6f76178be04 (diff) | |
download | haskell-1f94e0f7601f8e22fdd81a47f130650265a44196.tar.gz |
Generate GHCi bytecode from STG instead of Core and support unboxed
tuples and sums.
fixes #1257
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/Bytecodes.h | 3 | ||||
-rw-r--r-- | includes/stg/MiscClosures.h | 72 |
2 files changed, 75 insertions, 0 deletions
diff --git a/includes/rts/Bytecodes.h b/includes/rts/Bytecodes.h index f7a0d6f151..859892de2d 100644 --- a/includes/rts/Bytecodes.h +++ b/includes/rts/Bytecodes.h @@ -91,6 +91,9 @@ #define bci_BRK_FUN 66 #define bci_TESTLT_W 67 #define bci_TESTEQ_W 68 + +#define bci_RETURN_T 69 +#define bci_PUSH_ALTS_T 70 /* If you need to go past 255 then you will run into the flags */ /* If you need to go below 0x0100 then you will run into the instructions */ diff --git a/includes/stg/MiscClosures.h b/includes/stg/MiscClosures.h index 43e099a0d6..d8aefd8035 100644 --- a/includes/stg/MiscClosures.h +++ b/includes/stg/MiscClosures.h @@ -87,6 +87,77 @@ RTS_RET(stg_ctoi_D1); RTS_RET(stg_ctoi_L1); RTS_RET(stg_ctoi_V); +RTS_FUN_DECL(stg_ctoi_t); +RTS_RET(stg_ctoi_t0); +RTS_RET(stg_ctoi_t1); +RTS_RET(stg_ctoi_t2); +RTS_RET(stg_ctoi_t3); +RTS_RET(stg_ctoi_t4); +RTS_RET(stg_ctoi_t5); +RTS_RET(stg_ctoi_t6); +RTS_RET(stg_ctoi_t7); +RTS_RET(stg_ctoi_t8); +RTS_RET(stg_ctoi_t9); + +RTS_RET(stg_ctoi_t10); +RTS_RET(stg_ctoi_t11); +RTS_RET(stg_ctoi_t12); +RTS_RET(stg_ctoi_t13); +RTS_RET(stg_ctoi_t14); +RTS_RET(stg_ctoi_t15); +RTS_RET(stg_ctoi_t16); +RTS_RET(stg_ctoi_t17); +RTS_RET(stg_ctoi_t18); +RTS_RET(stg_ctoi_t19); + +RTS_RET(stg_ctoi_t20); +RTS_RET(stg_ctoi_t21); +RTS_RET(stg_ctoi_t22); +RTS_RET(stg_ctoi_t23); +RTS_RET(stg_ctoi_t24); +RTS_RET(stg_ctoi_t25); +RTS_RET(stg_ctoi_t26); +RTS_RET(stg_ctoi_t27); +RTS_RET(stg_ctoi_t28); +RTS_RET(stg_ctoi_t29); + +RTS_RET(stg_ctoi_t30); +RTS_RET(stg_ctoi_t31); +RTS_RET(stg_ctoi_t32); +RTS_RET(stg_ctoi_t33); +RTS_RET(stg_ctoi_t34); +RTS_RET(stg_ctoi_t35); +RTS_RET(stg_ctoi_t36); +RTS_RET(stg_ctoi_t37); +RTS_RET(stg_ctoi_t38); +RTS_RET(stg_ctoi_t39); + +RTS_RET(stg_ctoi_t40); +RTS_RET(stg_ctoi_t41); +RTS_RET(stg_ctoi_t42); +RTS_RET(stg_ctoi_t43); +RTS_RET(stg_ctoi_t44); +RTS_RET(stg_ctoi_t45); +RTS_RET(stg_ctoi_t46); +RTS_RET(stg_ctoi_t47); +RTS_RET(stg_ctoi_t48); +RTS_RET(stg_ctoi_t49); + +RTS_RET(stg_ctoi_t50); +RTS_RET(stg_ctoi_t51); +RTS_RET(stg_ctoi_t52); +RTS_RET(stg_ctoi_t53); +RTS_RET(stg_ctoi_t54); +RTS_RET(stg_ctoi_t55); +RTS_RET(stg_ctoi_t56); +RTS_RET(stg_ctoi_t57); +RTS_RET(stg_ctoi_t58); +RTS_RET(stg_ctoi_t59); + +RTS_RET(stg_ctoi_t60); +RTS_RET(stg_ctoi_t61); +RTS_RET(stg_ctoi_t62); + RTS_RET(stg_apply_interp); RTS_ENTRY(stg_IND); @@ -292,6 +363,7 @@ RTS_RET(stg_ret_n); RTS_RET(stg_ret_f); RTS_RET(stg_ret_d); RTS_RET(stg_ret_l); +RTS_RET(stg_ret_t); RTS_FUN_DECL(stg_gc_prim); RTS_FUN_DECL(stg_gc_prim_p); |