From: Andrea Corallo Date: Tue, 21 May 2019 19:24:34 +0000 (+0200) Subject: add varbind support X-Git-Tag: emacs-28.0.90~2727^2~1541 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5238cd1e6a9b3c310743fdb4497f8f16d965367e;p=emacs.git add varbind support --- diff --git a/src/comp.c b/src/comp.c index 9713a6fd459..5bc2c8fa4e8 100644 --- a/src/comp.c +++ b/src/comp.c @@ -353,30 +353,34 @@ compile_f (const char *f_name, ptrdiff_t bytestr_length, } break; + case Bvarbind6: + op = FETCH; + goto varbind; + + case Bvarbind7: + op = FETCH2; + goto varbind; + case Bvarbind: - printf("Bvarbind\n"); - break; case Bvarbind1: - printf("Bvarbind1\n"); - break; case Bvarbind2: - printf("Bvarbind2\n"); - break; case Bvarbind3: - printf("Bvarbind3\n"); - break; case Bvarbind4: - printf("Bvarbind4\n"); - break; case Bvarbind5: - printf("Bvarbind5\n"); - break; - case Bvarbind6: - printf("Bvarbind6\n"); - break; - case Bvarbind7: - printf("Bvarbind7\n"); - break; + op -= Bvarbind; + varbind: + { + POP1; + args[1] = args[0]; + args[0] = gcc_jit_context_new_rvalue_from_ptr(comp.ctxt, + comp.lisp_obj, + vectorp[op]); + + res = jit_emit_call ("specbind", 2, args); + PUSH (gcc_jit_lvalue_as_rvalue (res)); + break; + } + case Bcall: printf("Bcall\n"); break;