remove pic->iseq
This commit is contained in:
parent
b0f05f54a6
commit
ca4fb058d1
|
@ -20,7 +20,7 @@ struct fullcont {
|
|||
size_t ci_offset;
|
||||
ptrdiff_t ci_len;
|
||||
|
||||
struct code *ip;
|
||||
const struct code *ip;
|
||||
|
||||
struct object **arena;
|
||||
size_t arena_size, arena_idx;
|
||||
|
|
|
@ -13,7 +13,7 @@ struct cont {
|
|||
ptrdiff_t sp_offset;
|
||||
ptrdiff_t ci_offset;
|
||||
size_t arena_idx;
|
||||
struct code *ip;
|
||||
const struct code *ip;
|
||||
|
||||
int retc;
|
||||
pic_value *retv;
|
||||
|
|
|
@ -23,7 +23,7 @@ struct lib {
|
|||
|
||||
struct callinfo {
|
||||
int argc, retc;
|
||||
struct code *ip;
|
||||
const struct code *ip;
|
||||
pic_value *fp;
|
||||
struct irep *irep;
|
||||
struct context *cxt;
|
||||
|
@ -48,7 +48,7 @@ struct pic_state {
|
|||
struct callinfo *ci;
|
||||
struct callinfo *cibase, *ciend;
|
||||
|
||||
struct code *ip;
|
||||
const struct code *ip;
|
||||
|
||||
const char *lib;
|
||||
|
||||
|
@ -62,7 +62,6 @@ struct pic_state {
|
|||
struct list_head ireps;
|
||||
|
||||
xFILE files[XOPEN_MAX];
|
||||
struct code iseq[2]; /* for pic_apply_trampoline */
|
||||
|
||||
bool gc_enable;
|
||||
struct heap *heap;
|
||||
|
|
|
@ -783,15 +783,11 @@ pic_apply(pic_state *pic, pic_value proc, int argc, pic_value *argv)
|
|||
pic_value
|
||||
pic_applyk(pic_state *pic, pic_value proc, int argc, pic_value *args)
|
||||
{
|
||||
static const struct code iseq[2] = { { OP_NOP, 0, 0 }, { OP_TAILCALL, -1, 0 } };
|
||||
pic_value *sp;
|
||||
struct callinfo *ci;
|
||||
int i;
|
||||
|
||||
pic->iseq[0].insn = OP_NOP;
|
||||
pic->iseq[0].a = 0;
|
||||
pic->iseq[1].insn = OP_TAILCALL;
|
||||
pic->iseq[1].a = -1;
|
||||
|
||||
*pic->sp++ = proc;
|
||||
|
||||
sp = pic->sp;
|
||||
|
@ -800,7 +796,7 @@ pic_applyk(pic_state *pic, pic_value proc, int argc, pic_value *args)
|
|||
}
|
||||
|
||||
ci = PUSHCI();
|
||||
ci->ip = pic->iseq;
|
||||
ci->ip = iseq;
|
||||
ci->fp = pic->sp;
|
||||
ci->retc = (int)argc;
|
||||
|
||||
|
|
Loading…
Reference in New Issue