From 770e52e7001ccdd309a47cbf8b8c9862bfd44ab5 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Fri, 24 May 2019 14:48:24 +0200 Subject: [PATCH] add discard and dup --- src/comp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/comp.c b/src/comp.c index bafb980dc69..5f250c81432 100644 --- a/src/comp.c +++ b/src/comp.c @@ -85,6 +85,10 @@ along with GNU Emacs. If not, see . */ #define FETCH2 (op = FETCH, op + (FETCH << 8)) +/* Discard n values from the stack. */ + +#define DISCARD(n) (stack -= (n)) + /* The compiler context */ typedef struct { @@ -800,12 +804,15 @@ compile_f (const char *f_name, ptrdiff_t bytestr_length, case Breturn: printf("Breturn\n"); break; + case Bdiscard: - printf("Bdiscard\n"); + DISCARD (1); break; + case Bdup: - printf("Bdup\n"); + PUSH (*(stack - 1)); break; + case Bsave_excursion: printf("Bsave_excursion\n"); break; -- 2.39.5