[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/soc-bytecode-in-traceback-reduced 9a36861: Reduced bytecode offs
From: |
Rocky Bernstein |
Subject: |
feature/soc-bytecode-in-traceback-reduced 9a36861: Reduced bytecode offset update |
Date: |
Mon, 13 Jul 2020 11:50:49 -0400 (EDT) |
branch: feature/soc-bytecode-in-traceback-reduced
commit 9a36861ef6ff812684980a3d52a6bccc8ff4e727
Author: rocky <rocky@gnu.org>
Commit: rocky <rocky@gnu.org>
Reduced bytecode offset update
This reduces bytecode-offset updates to happen only before a call.
---
src/bytecode.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/bytecode.c b/src/bytecode.c
index 8e3cddf..4ea3cbf 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,
/* 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))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/soc-bytecode-in-traceback-reduced 9a36861: Reduced bytecode offset update,
Rocky Bernstein <=