Alien-LibJIT

 view release on metacpan or  search on metacpan

libjit/ChangeLog  view on Meta::CPAN

	* config/jit-opcodes.ops: Move declaration of obsolete opcodes to
	the separate include file jit-opcode-compat.h and include this new
	file instead.

	* include/jit/jit-opcode-compat.h: add new include file for
	obsolete opcodes.

	* include/jit/Makefile.am: add jit-opcode-compat.h to the include
	sources.

2012-01-21  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-rules.h (struct jit_gencode): add offset_encoder field
	to encode bytecode offsets with jit_varints.

	* jit/jit-internal.h (struct _jit_function): move fields cookie,
	start, end here from jit_cache_method; add bytecode_offset field
	to encode bytecode offsets with jit_varints.

	* jit/jit-compile.c (mark_offset, _jit_function_get_bytecode): add
	functions that use jit_varints for bytecode offset compression.

	* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_get_method):
	remove cookie argument.

	* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_mark_bytecode)
	(_jit_cache_set_cookie, _jit_cache_get_start_method)
	(_jit_cache_get_end_method, _jit_cache_get_native)
	(_jit_cache_get_bytecode, _jit_cache_get_size): remove functions,
	get rid of bytecode offset compression and method region machinary.

	* jit/jit-dump.c, jit/jit-function.c, jit/jit-rules-interp.c
	* jit/jit-except.c, jit/jit-unwind.c: adjust where appropriate for
	cache API change.

2011-12-18  Aleksey Demakov  <ademakov@gmail.com>

	* jit/Makefile.am:
	* jit/jit-varint.h, jit/jit-varint.c: add new files for varaible
	length int encoding with algorithm similar but not identical to one
	currently used in jit-cache.c.  The new algorithm in certain cases
	better compresses unsigned ints.

2011-09-30  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_new_region):
	function removed.

2011-09-03  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_get_method_list):
	function removed.

2011-07-27  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-config.h: added new file as central location for all
	platform config macros deduced from ./configure and cpp.
	* jit/Makefile.am: add jit-config.h.

	* include/jit/jit-context.h, jit/jit-context.c
	(jit_context_supports_threads): removed.
	* include/jit/jit-init.h, jit/jit-init.c (jit_supports_threads):
	added function to replace jit_context_supports_threads.

	* include/jit/jit-init.h, jit/jit-init.c
	(jit_supports_virtual_memory): added new function to check if
	the jit supports virtual memory routines.

	* include/jit/jit-vmem.h, jit/jit-vmem.c (jit_vmem_init)
	(jit_vmem_page_size, jit_vmem_round_up, jit_vmem_round_down)
	(jit_vmem_reserve, jit_vmem_reserve_committed, jit_vmem_release)
	(jit_vmem_commit, jit_vmem_decommit, jit_vmem_protect): added new
	files with virtual memory routines.
	* include/jit/Makefile.am, include/jit/jit.h: add jit-vmem.h
	* jit/Makefile.am: add jit-vmem.c

	* jit/jit-init.c (jit_init): call jit_vmem_init().

2011-07-10  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-alloc.c (choose_output_register, _jit_regs_assign):
	fix handling of explicitely assigned registers.

	* jit/jit-rules-x86.c (shift_reg): remove function.
	* jit/jit-rules-x86.ins (JIT_OP_ISHL, JIT_OP_ISHR, JIT_OP_ISHR_UN):
	rewrite rules with explicit assignment to "ecx" register, don't use
	shift_reg() function.

2011-07-02  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-compile.c (compile_block): amend debug info

2010-11-28  Klaus Treichel  <ktreichel@web.de>

	* config/jit-opcodes.ops: Set the destination value type for the
	address_of_label opcode.

	* jit/jit-dump.c (jit_dump_insn): Print the destination value for
	the address_of_label opcode.

2010-11-07  Klaus Treichel  <ktreichel@web.de>

	* jit/jit-cache.h: Fix comment for _jit_cache_get_end_method.

2010-10-24  Klaus Treichel  <ktreichel@web.de>

	* jit/jit-reg-alloc.c (_jit_regs_alloc_global): Set in_global_register
	on global register assignment.

2010-10-04  Klaus Treichel  <ktreichel@web.de>

	* jit/jit-internal.h: Add missing typedef in the declaration of the
	_jit_intrinsic_signature enumaeration. (Really Noah Lavine)

2010-09-21  Klaus Treichel  <ktreichel@web.de>

	* config/jit-opcodes.ops: Add definitions for the opcode's
	intrinsics.

	* jit/Makefile.am: Add jit-opcode-apply.c to the sources.

	* jit/jit-internal.h (enum _jit_intrinsic_signature): Declare the
	various intrinsic signatures.

libjit/ChangeLog  view on Meta::CPAN

2007-01-17  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-alloc.h, jit/jit-reg-alloc.c: complete special x87
	arithmetic support, for other x87 instructions reverse the order of
	arguments on the stack.

	* jit/jit-rules-x86.ins: take advantage of regalloc's x87 arithmetic
	support. Also do not clobber the entire x87 stack for atan, sin, and
	cos rules.

2007-01-12  Heiko Weiss <heiko.weiss@de.trumpf-laser.com>

	* jit/jit-function.c: Fix a typo in jit_function_from_vtable_pointer
	which breaks the build if libjit is built in interpreter mode.

2007-01-04  Thomas Cort  <linuxgeek@gmail.com>

	* jit/jit-rules-alpha.c: register class should not include FIXED
	registers.

	* .cvsignore, tools/.cvsignore, tutorial/.cvsignore: updated
	the .cvsignore files to ignore some generated files.

2007-01-03  Thomas Cort  <linuxgeek@gmail.com>

	* jit/jit-rules-alpha.c: initialize alpha register classes.
	Fix signed-ness warnings.

2007-01-02  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-rules-x86.ins: add JIT_OP_IMIN_UN rule (based on the
	  patch #5540 by Kirill Kononenko).

	* jit/jit-reg-alloc.c (set_regdesc_value, set_regdesc_register)
	(choose_output_register): handle EARLY_CLOBBER flag for dest value.

2006-12-30  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-class.c, jit/jit-reg-class.h, jit/Makefile.am: add
	register classes.

	* jit/jit-rules-x86.c (_jit_init_backend): initialize x86 register
	classes.

	* jit/jit-reg-alloc.h, jit/jit-reg-alloc.c: specify register class
	for each value and scratch register. Clean up interface.

	* tools/gen-rules-scanner.l, tools/gen-rules-parser.y: add register
	class declaration; "reg", "lreg", "freg" are not keywords anymore.
	"scratch" requires register class specification. "clobber" accepts
	register class which means all registers in the class are clobbered.
	Remove "only", "spill_before", "unary", and "binary" keywords.
	Replace "unary_note" and "binary_note" with "note". Also replace
	"unary_branch" and "binary_branch" with "branch".

	* jit/jit-rules-alpha.ins, jit/jit-rules-x86.ins: update according
	to the new rule syntax.

2006-12-20  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-thread.h, jit/jit-thread.c: add _jit_global_lock mutex.
	* jit/jit-init.c (jit_init): make sure that initialization is done
	  only once.

2006-12-17  Klaus Treichel  <ktreichel@web.de>

	* include/jit/jit-function.h, jit/jit-function.c: Add the function
	jit_function_from_vtable_pointer to convert a vtable pointer back to
	the jit_function_t.

2006-11-29  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-alloc.c (save_value): fix bug freeing stack register
	that is not on the stack top.

2006-11-27  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* jit/jit-rules-x86.c (throw_builtin):
	* jit/jit-rules-x86.ins (JIT_OP_THROW, JIT_OP_LOAD_PC): directly use
	the inst variable to get current PC value for the position-dependent
	code case (patch #5503).

2006-11-27  Aleksey Demakov  <ademakov@gmail.com>

	* include/jit/jit-context.h: add JIT_OPTION_POSITION_INDEPENDENT
	option.
	* jit/jit-internal.h (struct _jit_builder): add position_independent
	field.
	* jit/jit-function.c (_jit_function_ensure_builder): initialize
	position_independent field.

	* jit/jit-rules-x86.c (throw_builtin):
	* jit/jit-rules-x86.ins (JIT_OP_ADDRESS_OF_LABEL, JIT_OP_JUMP_TABLE)
	(JIT_OP_THROW, JIT_OP_LOAD_PC): add position_independent check and
	stub missing cases.

2006-11-26  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* jit/jit-rules-x86.ins: if JIT_USE_SIGNALS is defined do not emit
	explicit division by zero check (patch #5278).

2006-11-26  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-alloc.c (choose_output_register): fix global register
	use cost computation.

	* jit/jit-rules-x86.ins: mark as commutative JIT_OP_IADD,
	JIT_OP_IMUL, JIT_OP_LADD, JIT_OP_IAND, JIT_OP_IOR, JIT_OP_IXOR,
	JIT_OP_LAND, JIT_OP_LOR, JIT_OP_XOR rules.

2006-11-25  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-reg-alloc.c (exch_stack_top, free_value): fix freeing
	stack registers.

2006-11-25  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

	* jit/jit-rules-x86.ins: add JIT_OP_ISIGN and JIT_OP_LSIGN rules
	(patch #5533), optimize JIT_OP_LNEG rule (patch #5555). [with
	some modifications by Aleksey Demakov.]

libjit/ChangeLog  view on Meta::CPAN

2005-12-12  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-dump.c (dump_object_code): in order to make dump work on
	cygwin call "as" and "objdump" in two separate system() calls because
	it looks like the ';' separator between commands does not work there.
	Also on Win32 use TMP and TEMP environment variables as the tmp
	directory names and fallback to "c:/tmp".

	* jit/jit-gen-x86.h (jit_assert): change the macro definition to
	resolve	problems introduced at 2005-12-10.

2005-12-10  Aleksey Demakov  <ademakov@gmail.com>

	* jit/jit-gen-x86.h: Merged changes from the latest Mono project's
	version	of this file.

	* jit/jit-rules-x86.sel: Done the following rules:
	JIT_OP_LOAD_ELEMENT_FLOAT32, JIT_OP_LOAD_ELEMENT_FLOAT64,
	JIT_OP_LOAD_ELEMENT_NFLOAT, JIT_OP_STORE_ELEMENT_LONG,
	JIT_OP_STORE_ELEMENT_FLOAT32, JIT_OP_STORE_ELEMENT_FLOAT64,
	JIT_OP_STORE_ELEMENT_NFLOAT.

2005-11-19  Klaus Treichel  <ktreichel@web.de>

	* jit/apply-x86-64.h: Change definition of JIT_MEMCPY from "jit_memcpy" to
	"jit_memcpy@PLT" to fix the build of a shared library for x86_64.

2004-11-18  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/jit/jit-opcode.h, jit/jit-dump.c, jit/jit-insn.c,
	jit/jit-interp.c, jit/jit-opcode.c, jit/jit-rules-interp.c,
	jit/jit-rules-x86.sel: implement tail calls properly.

2004-11-05  Evin Robertson  <evin@users.sourceforge.net>

	* jit/jit-insn.c (jit_insn_store): use the destination type
	to determine the store opcode, not the source value type.

2004-11-02  Evin Robertson  <evin@users.sourceforge.net>

	* jit/jit-function.c (jit_function_compile): clear block addresses
	and fixup lists if we need to restart on a new cache page (minor
	alterations by Rhys).

	* jit/jit-function.c (jit_function_apply_vararg): return 0 when a
	sub-function throws an exception, not 1.

2004-10-31  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-rules-x86.sel: handle the special case of constant
	destination pointers in "store_relative" instructions, because
	otherwise the register allocator gets confused.

2004-10-29  Peter Lund <firefly@diku.dk>

	* doc/libjit.3: fix manpage formatting issues. (patch attached
	to bug #10779, Gopal).

2004-10-28  Rhys Weatherley  <rweather@southern-storm.com.au>

	* configure.in, jit/jit-debugger.c, jit/jit-thread.c,
	jit/jit-thread.h: implement some of the locking code
	for the debugging API.

2004-10-12  Evin Robertson  <evin@users.sourceforge.net>

	* jit/jit-rules-x86.c (output_branch): correct the offset
	when outputting a long-form backward branch.

	* tests/Makefile.am, tests/loop.pas: test case for the
	long-form backward branch bug.

2004-10-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* doc/Makefile.am, doc/libjit.texi, include/jit/Makefile.am,
	include/jit/jit-common.h, include/jit/jit-context.h,
	include/jit/jit-debugger.h, include/jit/jit-except.h,
	include/jit/jit-function.h, include/jit/jit.h, jit/Makefile.am,
	jit/jit-context.c, jit/jit-debug.c, jit/jit-debugger.c,
	jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c:
	redesign the debugger API so that it contains functions
	like "add breakpoint", "run", "step", etc that more closely resemble
	what a front end debugger will want to have, shifting the
	implementation burden off the front end.

2004-10-04  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/jit/jit-function.h, include/jit/jit-insn.h,
	include/jit/jit-opcode.h, include/jit/jit-plus.h, jit/jit-function.c,
	jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c,
	jit/jit-opcode.c, jit/jit-rules-interp.c, jit/jit-rules-arm.sel,
	jit/jit-rules-x86.sel, jitplus/jit-plus-function.cpp:
	add instructions and function API's for supporting debug line
	numbers and breakpoints.

	* doc/Makefile.am, doc/libjit.texi, include/jit/jit-context.h,
	include/jit/jit-insn.h, include/jit/jit-opcode.h,
	include/jit/jit-plus.h, jit/Makefile.am, jit/jit-context.c,
	jit/jit-debug.c, jit/jit-function.c, jit/jit-insn.c,
	jit/jit-internal.h, jit/jit-interp.c, jit/jit-opcode.c,
	jit/jit-rules-arm.sel, jit/jit-rules-interp.c, jit/jit-rules-x86.sel,
	jitplus/jit-plus-function.cpp: clean up the breakpoint API and
	implement debug hooks for the interpreter.

	* jit/jit-insn.c, jit/jit-rules-arm.sel, jit/jit-rules-x86.sel:
	use a common helper function for performing debug hook tests on
	native platforms, to avoid the need to implement breakpoint testing
	individually in every native back end.

2004-09-10  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-rules-x86.sel: pointer-relative loads and stores
	for structures in the x86 back end.

2004-09-09  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-rules-x86.c, jit/jit-rules-x86.sel: add some support
	for structure copying to the x86 back end.

2004-09-06  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-rules-interp.c: the pointer value for indirect and vtable

libjit/ChangeLog  view on Meta::CPAN

	jit/jit-rules-x86.c, jit/jit-rules.h, jit/jit-setjmp.h:
	rewrite the exception region routines to make them easier
	to use from CLI and JVM style systems.

	* jit/jit-rules-interp.c (_jit_gen_start_block): set the address
	of the exception handler for interpreted code.

	* include/jit/jit-plus.h, jitplus/jit-plus-function.cpp:
	add missing functions to the C++ API.

2004-05-22  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-block.c (_jit_block_peephole_branch): don't allow
	conditional branches to cross an exception context boundary,
	because doing so will violate "finally" semantics.

	* dpas/dpas-parser.y, include/jit/jit-insn.h, jit/jit-function.c,
	jit/jit-insn.c, jit/jit-internal.h: rename "jit_insn_move_blocks"
	to "jit_insn_move_blocks_to_end" and add a new function
	"jit_insn_move_blocks_to_start" for creating initialization code.

	* include/jit/jit-opcode.h, jit/jit-except.c, jit/jit-function.c,
	jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c, jit/jit-opcode.c,
	jit/jit-setjmp.h: modify the function call logic to use "setjmp"
	with native back ends.

2004-05-21  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jit/jit-gen-arm.c, jit/jit-gen-arm.h: modify the ARM codegen
	macros so that they can be used for branch elimination.

	* include/jit/jit-except.h, jit/jit-except.cpp, jit/jit-function.c,
	jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.cpp,
	jit/jit-interp.h, jit/jit-setjmp.h: redesign the exception handling
	mechanism to use "setjmp" rather than C++ exceptions.

	* configure.in, doc/Makefile.am, doc/libjit.texi, dpas/Makefile.am,
	jit/Makefile.am, jit/jit-except.c, jit/jit-except.cpp,
	jit/jit-interp.c, jit/jit-interp.cpp, jitdynamic/Makefile.am:
	remove the last remaining C++ code from libjit.so so that
	it is now a pure C library.

	* include/jit/jit-insn.h, include/jit/jit-opcode.h,
	include/jit/jit-plus.h, jit/jit-insn.c, jit/jit-interp.c,
	jit/jit-opcode.c, jitplus/jit-plus-function.cpp:
	add the "jit_insn_alloca" instruction.

	* configure.in, jit/.cvsignore, jit/Makefile.am, jit/jit-interp.c,
	jit/mklabel.sh: use computed goto's in the interpreter if supported
	by the underlying compiler.

2004-05-20  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/jit/jit-value.h, jit/jit-insn.c, jit/jit-value.c:
	convert constant conditional branches such as "if true goto L" into
	unconditional branches.

	* jit/jit-block.c, jit/jit-internal.h, jit/jit-live.c,
	jit/jit-rules-interp.c: perform peephole optimization of
	branches to branches before live variable analysis, so that
	the back ends don't need to worry about jump threading.

	* jit/jit-block.c, jit/jit-live.c: treat dead blocks as empty
	when peepholing branches to the next block.

2004-05-15  Rhys Weatherley  <rweather@southern-storm.com.au>

	* tools/gen-apply.c: fix a macro generation bug for Win32 systems.

	* jit/jit-reg-alloc.c: fix a compile bug.

2004-05-14  Rhys Weatherley  <rweather@southern-storm.com.au>

	* include/jit/Makefile.am, include/jit/jit-objmodel-private.h,
	include/jit/jit-objmodel.h, include/jit/jit.h, jit/Makefile.am,
	jit/jit-objmodel.c: put some infrastructure in place to support
	pluggable object models.

2004-05-13  Rhys Weatherley  <rweather@southern-storm.com.au>

	* dpas/dpas-parser.y, dpas/dpas-types.c, dpas/dpas-types.h:
	put some infrastructure (incomplete) in place to support array
	index expressions.

	* configure.in, NEWS: update version for the "0.0.2" release.

	* configure.in: updating working version to "0.0.3".

2004-05-12  Rhys Weatherley  <rweather@southern-storm.com.au>

	* jitdynamic/Makefile.am, jitplus/Makefile.am: use both .libs and
	non.libs versions of the so paths, because some versions of libtool
	add .libs implicitly and others don't.

	* dpas/dpas-builtin.c, dpas/dpas-parser.y, dpas/dpas-types.c,
	dpas/dpas-types.h: add the "SameType" and "SameShape" builtins,
	to assist with unit testing type coercions.

	* dpas/dpas-parser.y (IfTail): fix a bug that caused the "then"
	case of an "if" to fall through to the "else".

	* dpas/dpas-parser.y: resolve ea-based lvalues in operators.

	* include/jit/jit-defs.h.in: incorrect values for jit_max_int
	and jit_max_long.

	* dpas/dpas-scanner.l (dpas_parse_hex): ignore the 'H' on the
	end of a hexadecimal constant.

	* Makefile.am, configure.in, tests/.cvsignore, tests/Makefile.am,
	tests/coerce.pas: check in some initial infrastructure for the
	dpas-based test suite.

	* jit/jit-type.c (jit_type_promote_int): promote ubyte and ushort
	to uint, not int.

	* jit/jit-insn.c, tests/coerce.pas: more coercion test cases and fixes.

	* dpas/dpas-builtin.c, jit/jit-dump.c, jit/jit-value.c: add builtins
	for mathematical operations.



( run in 0.534 second using v1.01-cache-2.11-cpan-97f6503c9c8 )