Index: libjit/jit/jit-function.c =================================================================== --- libjit/jit/jit-function.c (revision 74) +++ libjit/jit/jit-function.c (working copy) @@ -196,12 +196,14 @@ jit_memory_pool_init(&(func->builder->value_pool), struct _jit_value); jit_memory_pool_init(&(func->builder->insn_pool), struct _jit_insn); jit_memory_pool_init(&(func->builder->meta_pool), struct _jit_meta); +#if defined(__i386) || defined(__i386__) || defined(_M_IX86) jit_memory_pool_init(&(func->builder->jite_vreg_pool), struct _jite_vreg); jit_memory_pool_init(&(func->builder->jite_critical_point_pool), struct _jite_critical_point); jit_memory_pool_init(&(func->builder->jite_list_pool), struct _jite_list); jit_memory_pool_init(&(func->builder->jite_frame_pool), struct _jite_frame); jit_memory_pool_init(&(func->builder->memory_pool), void *); jit_memory_pool_init(&(func->builder->jite_linked_list_pool), struct _jite_linked_list); +#endif /* Create the initial entry block */ if(!_jit_block_init(func)) @@ -231,6 +233,7 @@ if(func->builder) { _jit_block_free(func); +#if defined(__i386) || defined(__i386__) || defined(_M_IX86) jit_memory_pool_free(&(func->builder->jite_vreg_pool), 0); jit_memory_pool_free(&(func->builder->jite_critical_point_pool), 0); jit_memory_pool_free(&(func->builder->jite_list_pool), 0); @@ -240,7 +243,7 @@ jit_memory_pool_free(&(func->builder->value_pool), _jit_value_free); jit_memory_pool_free(&(func->builder->meta_pool), _jit_meta_free_one); jit_memory_pool_free(&(func->builder->jite_linked_list_pool), 0); - +#endif jit_free(func->builder->param_values); jit_free(func->builder->insns); jit_free(func->builder->label_blocks); Index: libjit/jit/jit-value.c =================================================================== --- libjit/jit/jit-value.c (revision 74) +++ libjit/jit/jit-value.c (working copy) @@ -205,7 +205,9 @@ value->reg = -1; value->frame_offset = JIT_INVALID_FRAME_OFFSET; value->index = -1; +#if defined(JITE_ENABLED) value->vreg = 0; +#endif return value; } Index: libjit/jit/jit-internal.h =================================================================== --- libjit/jit/jit-internal.h (revision 74) +++ libjit/jit/jit-internal.h (working copy) @@ -25,9 +25,14 @@ #include +/* you cannot do this as there are definitons for x86_64 words... */ +/* #if defined(__i386) || defined(__i386__) || defined(_M_IX86) +*/ #include "jite-linear-scan.h" -#endif +/* +#endif +*/ #ifdef __cplusplus extern "C" { Index: libjit/jit/jit-block.c =================================================================== --- libjit/jit/jit-block.c (revision 74) +++ libjit/jit/jit-block.c (working copy) @@ -103,7 +103,9 @@ func->builder->first_block = block; } func->builder->last_block = block; +#if defined(JITE_ENABLED) block->analysed = 0; +#endif return block; } @@ -289,8 +291,10 @@ insns = builder->insns; } insns[builder->num_insns] = insn; +#if defined(JITE_ENABLED) insn->insn_num = builder->num_insns; insn->next = 0; +#endif block->last_insn = (builder->num_insns)++; /* Return the instruction, which is now ready to fill in */ return insn; Index: libjit/jit/jit-rules.h =================================================================== --- libjit/jit/jit-rules.h (revision 74) +++ libjit/jit/jit-rules.h (working copy) @@ -229,7 +229,7 @@ (jit_function_t func, jit_type_t signature, jit_value_t *args, unsigned int num_args, jit_value_t return_value, int is_nested); -int _jit_opcode_is_supported(jit_function_t func, int opcode); +//int _jit_opcode_is_supported(jit_function_t func, int opcode); void *_jit_gen_prolog(jit_gencode_t gen, jit_function_t func, void *buf); void _jit_gen_epilog(jit_gencode_t gen, jit_function_t func); void *_jit_gen_redirector(jit_gencode_t gen, jit_function_t func); Index: libjit/jit/jit-insn.c =================================================================== --- libjit/jit/jit-insn.c (revision 74) +++ libjit/jit/jit-insn.c (working copy) @@ -5882,8 +5882,9 @@ } insn->value1 = value; +#if defined(JITE_ENABLED) insn->signature = jit_type_copy(signature); - +#endif /* If the function does not return, then end the current block. The next block does not have "entered_via_top" set so that it will be eliminated during later code generation */ @@ -6027,7 +6028,9 @@ insn->opcode = JIT_OP_CALL_VTABLE_PTR; } insn->value1 = value; +#if defined(JITE_ENABLED) insn->signature = jit_type_copy(signature); +#endif /* If the function does not return, then end the current block. The next block does not have "entered_via_top" set so that @@ -6168,10 +6171,9 @@ #ifdef JIT_BACKEND_INTERP insn->flags |= JIT_INSN_VALUE2_IS_SIGNATURE; insn->value2 = (jit_value_t)jit_type_copy(signature); + insn->signature = jit_type_copy(signature); #endif - insn->signature = jit_type_copy(signature); - /* If the function does not return, then end the current block. The next block does not have "entered_via_top" set so that it will be eliminated during later code generation */ Index: libjit/jit/jite-linear-scan.c =================================================================== --- libjit/jit/jite-linear-scan.c (revision 74) +++ libjit/jit/jite-linear-scan.c (working copy) @@ -2996,5 +2996,15 @@ return 1; } +#else // no jite... +int jite_compile(jit_function_t func, void **entry_point) +{ + return 0; +} +int jite_regIndex2reg(jit_function_t func, int regIndex, jit_type_t type) +{ + return -1; +} + #endif Index: libjit/jit/jite-linear-scan.h =================================================================== --- libjit/jit/jite-linear-scan.h (revision 74) +++ libjit/jit/jite-linear-scan.h (working copy) @@ -1,4 +1,4 @@ -#if defined(__i386) || defined(__i386__) || defined(_M_IX86) +//#if defined(__i386) || defined(__i386__) || defined(_M_IX86) #ifndef _JIT_LINEAR_SCAN_H #define _JIT_LINEAR_SCAN_H #include @@ -355,7 +355,7 @@ #define TAIL_CALL 3 #define INDIRECT_TAIL_CALL 4 -#endif +//#endif #else int jite_regIndex2reg(jit_function_t func, int regIndex, jit_type_t type) { return 1; }