diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-10-06 15:57:42 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-10-06 15:57:42 +0000 |
| commit | 13c7721bc52ca2ee998c0a4347f15264c78a951b (patch) | |
| tree | 9a40516b232a8408f6568c1c00f0a88c0970f984 /src/runtime/c | |
| parent | af7feea38589676ad4a2cfd93b13413be99f33b7 (diff) | |
using instruction RET was wrong; now use EVAL
Diffstat (limited to 'src/runtime/c')
| -rw-r--r-- | src/runtime/c/pgf/data.h | 5 | ||||
| -rw-r--r-- | src/runtime/c/pgf/jit.c | 29 |
2 files changed, 2 insertions, 32 deletions
diff --git a/src/runtime/c/pgf/data.h b/src/runtime/c/pgf/data.h index b1e0a2b35..4f1f66a3b 100644 --- a/src/runtime/c/pgf/data.h +++ b/src/runtime/c/pgf/data.h @@ -118,9 +118,8 @@ typedef enum { PGF_INSTR_SET_PAD = 8, PGF_INSTR_PUSH = 9, PGF_INSTR_EVAL = 10, - PGF_INSTR_RET = 13, - PGF_INSTR_DROP = 15, - PGF_INSTR_FAIL = 16 + PGF_INSTR_DROP = 13, + PGF_INSTR_FAIL = 14 } PgfInstruction; struct PgfPGF { diff --git a/src/runtime/c/pgf/jit.c b/src/runtime/c/pgf/jit.c index 488f9185a..3e538a6f4 100644 --- a/src/runtime/c/pgf/jit.c +++ b/src/runtime/c/pgf/jit.c @@ -1085,35 +1085,6 @@ pgf_jit_function(PgfReader* rdr, PgfAbstr* abstr, } break; } - case PGF_INSTR_RET: { - size_t h = pgf_read_int(rdr); - - if (h > 0) - jit_addi_p(JIT_VHEAP, JIT_VHEAP, h*sizeof(PgfClosure*)); - - size_t a, b; - if (mod == 1) { - a = pgf_read_int(rdr); - b = pgf_read_int(rdr); -#ifdef PGF_JIT_DEBUG - gu_printf(out, err, "RET hp(%d) tail(%d,%d)\n", h, a, b); -#endif - } else { - a = 0; - b = pgf_read_int(rdr); -#ifdef PGF_JIT_DEBUG - gu_printf(out, err, "RET hp(%d) update(%d)\n", h, b); -#endif - jit_movi_p(JIT_R0, abstr->eval_gates->evaluate_indirection); - jit_str_p(JIT_VCLOS, JIT_R0); - jit_stxi_p(offsetof(PgfIndirection,val), JIT_VCLOS, JIT_VHEAP); - } - - if (b-(a+1) > 0) - jit_addi_p(JIT_SP, JIT_SP, (b-(a+1))*sizeof(PgfClosure*)); - jit_bare_ret(a*sizeof(PgfClosure*)); - break; - } case PGF_INSTR_DROP: { size_t n = pgf_read_int(rdr); size_t target = pgf_read_int(rdr); |
