[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] nick.lloyd-bytecode-jit 5d8f254 2/3: ; Fix errors introduc
From: |
Nickolas Lloyd |
Subject: |
[Emacs-diffs] nick.lloyd-bytecode-jit 5d8f254 2/3: ; Fix errors introduced during merge. |
Date: |
Thu, 2 Feb 2017 03:33:00 +0000 (UTC) |
branch: nick.lloyd-bytecode-jit
commit 5d8f2548ceaa5a0b33c08a39f1d6c11071ec63aa
Author: Nickolas Lloyd <address@hidden>
Commit: Nickolas Lloyd <address@hidden>
; Fix errors introduced during merge.
---
src/bytecode-jit.c | 14 ++------------
src/bytecode.c | 22 ----------------------
src/lisp.h | 6 ------
3 files changed, 2 insertions(+), 40 deletions(-)
diff --git a/src/bytecode-jit.c b/src/bytecode-jit.c
index 974b6aa..f970833 100644
--- a/src/bytecode-jit.c
+++ b/src/bytecode-jit.c
@@ -287,9 +287,7 @@ jit_type_t native_unwind_protect_sig;
static void
native_unwind_protect (Lisp_Object handler)
{
- record_unwind_protect (NILP (Ffunctionp (handler))
- ? unwind_body : bcall0,
- handler);
+ record_unwind_protect (FUNCTIONP (handler) ? bcall0 : prog_ignore, handler);
}
jit_type_t native_temp_output_buffer_setup_sig;
@@ -668,17 +666,9 @@ jit_exec (Lisp_Object byte_code, Lisp_Object
args_template, ptrdiff_t nargs, Lis
}
{
- /* We don't actually need to use this structure to keep track of a
- stack, since our stack isn't GCed. We just need to use it as a
- placeholder in `byte_stack_list' to facilitate proper unwinding. */
- struct byte_stack stack = {};
- stack.next = byte_stack_list;
- byte_stack_list = &stack;
Lisp_Object (*func)(Lisp_Object *) =
(void *)AREF (byte_code, COMPILED_JIT_CLOSURE);
- Lisp_Object ret = func (top);
- byte_stack_list = byte_stack_list->next;
- return ret;
+ return func (top);
}
}
diff --git a/src/bytecode.c b/src/bytecode.c
index 02a3f70..88df30c 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -58,28 +58,6 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. */
#endif /* BYTE_CODE_METER */
-/* Relocate program counters in the stacks on byte_stack_list. Called
- when GC has completed. */
-
-void
-relocate_byte_stack (struct byte_stack *stack)
-{
- for (; stack; stack = stack->next)
- {
-#ifdef HAVE_LIBJIT
- if (!stack->byte_string_start)
- continue;
-#endif
- if (stack->byte_string_start != SDATA (stack->byte_string))
- {
- ptrdiff_t offset = stack->pc - stack->byte_string_start;
- stack->byte_string_start = SDATA (stack->byte_string);
- stack->pc = stack->byte_string_start + offset;
- }
- }
-}
-
-
/* Fetch the next byte from the bytecode stream. */
#define FETCH (*pc++)
diff --git a/src/lisp.h b/src/lisp.h
index 0c444cc..a293359 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2777,11 +2777,6 @@ CHECK_COMPILED (Lisp_Object x)
{
CHECK_TYPE (COMPILEDP (x), Qcompiledp, x);
}
-INLINE void
-CHECK_BOOL_VECTOR (Lisp_Object x)
-{
- CHECK_TYPE (BOOL_VECTOR_P (x), Qbool_vector_p, x);
-}
/* This is a bit special because we always need size afterwards. */
INLINE ptrdiff_t
CHECK_VECTOR_OR_STRING (Lisp_Object x)
@@ -4173,7 +4168,6 @@ extern int read_bytecode_char (bool);
/* Defined in bytecode.c. */
extern void syms_of_bytecode (void);
-extern void relocate_byte_stack (struct byte_stack *);
extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, ptrdiff_t,
Lisp_Object *);
extern Lisp_Object get_byte_code_arity (Lisp_Object);