]> git.eshelyaron.com Git - emacs.git/commitdiff
Reduced bytecode offset update
authorrocky <rocky@gnu.org>
Mon, 13 Jul 2020 15:49:02 +0000 (11:49 -0400)
committerrocky <rocky@gnu.org>
Mon, 13 Jul 2020 15:50:35 +0000 (11:50 -0400)
This reduces bytecode-offset updates to happen only before a call.

src/bytecode.c

index 8e3cddf785135fa78cd70510f55305699aaf7c71..4ea3cbfb12be1a667bcd74d5cf4138be5d4273f9 100644 (file)
@@ -434,7 +434,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
       /* NEXT is invoked at the end of an instruction to go to the
         next instruction.  It is either a computed goto, or a
         plain break.  */
-#define NEXT UPDATE_OFFSET; goto *(targets[op = FETCH])
+#define NEXT goto *(targets[op = FETCH])
       /* FIRST is like NEXT, but is only used at the start of the
         interpreter body.  In the switch-based interpreter it is the
         switch, so the threaded definition must include a semicolon.  */
@@ -622,6 +622,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
          op -= Bcall;
        docall:
          {
+           UPDATE_OFFSET;
            DISCARD (op);
 #ifdef BYTE_CODE_METER
            if (byte_metering_on && SYMBOLP (TOP))