summaryrefslogtreecommitdiff
path: root/src/lisp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 1ac38164c27..44b59f6bac5 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2657,7 +2657,10 @@ enum Lisp_Compiled
COMPILED_CONSTANTS = 2,
COMPILED_STACK_DEPTH = 3,
COMPILED_DOC_STRING = 4,
- COMPILED_INTERACTIVE = 5
+ COMPILED_INTERACTIVE = 5,
+ COMPILED_INTERPRETER = 6,
+ COMPILED_JIT_CTXT = 7,
+ COMPILED_JIT_CLOSURE = 8
};
/* Flag bits in a character. These also get used in termhooks.h.
@@ -2769,6 +2772,11 @@ CHECK_STRING_CAR (Lisp_Object x)
{
CHECK_TYPE (STRINGP (XCAR (x)), Qstringp, XCAR (x));
}
+INLINE void
+CHECK_COMPILED (Lisp_Object x)
+{
+ CHECK_TYPE (COMPILEDP (x), Qcompiledp, x);
+}
/* This is a bit special because we always need size afterwards. */
INLINE ptrdiff_t
CHECK_VECTOR_OR_STRING (Lisp_Object x)
@@ -3101,6 +3109,7 @@ struct handler
enum handlertype type;
Lisp_Object tag_or_ch;
Lisp_Object val;
+ Lisp_Object *stack;
struct handler *next;
struct handler *nextfree;
@@ -3602,7 +3611,6 @@ build_string (const char *str)
}
extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
-extern void make_byte_code (struct Lisp_Vector *);
extern struct Lisp_Vector *allocate_vector (EMACS_INT);
/* Make an uninitialized vector for SIZE objects. NOTE: you must
@@ -4159,10 +4167,14 @@ extern int read_bytecode_char (bool);
/* Defined in bytecode.c. */
extern void syms_of_bytecode (void);
-extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object,
- Lisp_Object, ptrdiff_t, Lisp_Object *);
+extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, ptrdiff_t, Lisp_Object *);
extern Lisp_Object get_byte_code_arity (Lisp_Object);
+/* Defined in bytecode-jit.c */
+#ifdef HAVE_LIBJIT
+extern void syms_of_bytecode_jit (void);
+#endif
+
/* Defined in macros.c. */
extern void init_macros (void);
extern void syms_of_macros (void);