exec_byte_code (Lisp_Object byte_code, Lisp_Object args_template,
ptrdiff_t nargs, Lisp_Object *args)
{
+#ifdef HAVE_LIBJIT
if (AREF (byte_code, COMPILED_JIT_ID))
return jit_exec (byte_code, args_template, nargs, args);
- else if (!byte_code_jit_on)
- return exec_byte_code__ (AREF (byte_code, COMPILED_BYTECODE),
- AREF (byte_code, COMPILED_CONSTANTS),
- AREF (byte_code, COMPILED_STACK_DEPTH),
- args_template, nargs, args);
- else
+ else if (byte_code_jit_on)
{
jit_byte_code__ (byte_code);
return jit_exec (byte_code, args_template, nargs, args);
}
+ else
+#endif
+ return exec_byte_code__ (AREF (byte_code, COMPILED_BYTECODE),
+ AREF (byte_code, COMPILED_CONSTANTS),
+ AREF (byte_code, COMPILED_STACK_DEPTH),
+ args_template, nargs, args);
}
+
/* `args_template' has the same meaning as in exec_byte_code() above. */
Lisp_Object
get_byte_code_arity (Lisp_Object args_template)
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+#include <config.h>
+
#include "lisp.h"
/* Define BYTE_CODE_SAFE true to enable some minor sanity checking,
extern void
bcall0 (Lisp_Object f);
+extern Lisp_Object
+exec_byte_code__ (Lisp_Object, Lisp_Object, Lisp_Object,
+ Lisp_Object, ptrdiff_t, Lisp_Object *);
+
+#ifdef HAVE_LIBJIT
extern void
jit_byte_code__ (Lisp_Object);
extern Lisp_Object
jit_exec (Lisp_Object, Lisp_Object, ptrdiff_t, Lisp_Object *);
-
-extern Lisp_Object
-exec_byte_code__ (Lisp_Object, Lisp_Object, Lisp_Object,
- Lisp_Object, ptrdiff_t, Lisp_Object *);
+#endif
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);