diff options
Diffstat (limited to 'src/lisp.h')
-rw-r--r-- | src/lisp.h | 20 |
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); |