aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorrocky2020-07-13 11:49:02 -0400
committerrocky2020-07-13 11:50:35 -0400
commit9a36861ef6ff812684980a3d52a6bccc8ff4e727 (patch)
tree75724a70edd7e563071818f174e845d203d777e9 /src/bytecode.c
parent0cb1df1edd86986d5d7a3ecf607fe78af03d62a0 (diff)
downloademacs-9a36861ef6ff812684980a3d52a6bccc8ff4e727.tar.gz
emacs-9a36861ef6ff812684980a3d52a6bccc8ff4e727.zip
Reduced bytecode offset update
This reduces bytecode-offset updates to happen only before a call.
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 8e3cddf7851..4ea3cbfb12b 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -434,7 +434,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
434 /* NEXT is invoked at the end of an instruction to go to the 434 /* NEXT is invoked at the end of an instruction to go to the
435 next instruction. It is either a computed goto, or a 435 next instruction. It is either a computed goto, or a
436 plain break. */ 436 plain break. */
437#define NEXT UPDATE_OFFSET; goto *(targets[op = FETCH]) 437#define NEXT goto *(targets[op = FETCH])
438 /* FIRST is like NEXT, but is only used at the start of the 438 /* FIRST is like NEXT, but is only used at the start of the
439 interpreter body. In the switch-based interpreter it is the 439 interpreter body. In the switch-based interpreter it is the
440 switch, so the threaded definition must include a semicolon. */ 440 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,
622 op -= Bcall; 622 op -= Bcall;
623 docall: 623 docall:
624 { 624 {
625 UPDATE_OFFSET;
625 DISCARD (op); 626 DISCARD (op);
626#ifdef BYTE_CODE_METER 627#ifdef BYTE_CODE_METER
627 if (byte_metering_on && SYMBOLP (TOP)) 628 if (byte_metering_on && SYMBOLP (TOP))