]> git.eshelyaron.com Git - emacs.git/commitdiff
add discard and dup
authorAndrea Corallo <andrea_corallo@yahoo.it>
Fri, 24 May 2019 12:48:24 +0000 (14:48 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:33:38 +0000 (11:33 +0100)
src/comp.c

index bafb980dc691b0ccac53e37dbbfebe40fa21afce..5f250c81432586e7f7ca4be94357e56aa527566c 100644 (file)
@@ -85,6 +85,10 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #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;