]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
francis/libjit.git
21 years agoAnother small change.
Rhys Weatherley [Sun, 30 May 2004 03:00:26 +0000 (03:00 +0000)]
Another small change.

21 years agoSmall update to LLVM URL.
Rhys Weatherley [Sun, 30 May 2004 02:58:52 +0000 (02:58 +0000)]
Small update to LLVM URL.

21 years agojit_insn_convert: use intrinsic functions for conversions when the
Rhys Weatherley [Sun, 30 May 2004 02:24:16 +0000 (02:24 +0000)]
jit_insn_convert: use intrinsic functions for conversions when the
back end doesn't support the opcode.

21 years agoClarify the text that describes LLVM, at the request of Chris Lattner,
Rhys Weatherley [Sun, 30 May 2004 01:39:19 +0000 (01:39 +0000)]
Clarify the text that describes LLVM, at the request of Chris Lattner,
LLVM's author.

21 years agoStub out JIT_OP_RETURN_REG, which doesn't need any special handling for x86.
Rhys Weatherley [Sat, 29 May 2004 10:14:11 +0000 (10:14 +0000)]
Stub out JIT_OP_RETURN_REG, which doesn't need any special handling for x86.

21 years agoContinue the x86 back end; particularly byte/short stores.
Rhys Weatherley [Sat, 29 May 2004 09:44:51 +0000 (09:44 +0000)]
Continue the x86 back end; particularly byte/short stores.

21 years agoRelative loads and stores for x86.
Rhys Weatherley [Thu, 27 May 2004 04:36:30 +0000 (04:36 +0000)]
Relative loads and stores for x86.

21 years agodpas_type_identical: treat "float64" and "nfloat" as identical on
Rhys Weatherley [Thu, 27 May 2004 01:05:30 +0000 (01:05 +0000)]
dpas_type_identical: treat "float64" and "nfloat" as identical on
platforms whose "long double" type is the same as "double".

21 years agoSplit "detect_struct_conventions" up a bit more to (hopefully) prevent
Rhys Weatherley [Thu, 27 May 2004 00:49:53 +0000 (00:49 +0000)]
Split "detect_struct_conventions" up a bit more to (hopefully) prevent
problems under MacOSX; fix a bug in the generation of
"jit_apply_builder_align_regs" that affected ARM and PPC systems.

21 years agoAdd the beginnings of the instruction selector for ARM.
Rhys Weatherley [Wed, 26 May 2004 07:21:04 +0000 (07:21 +0000)]
Add the beginnings of the instruction selector for ARM.

21 years agoMore selection cases for the x86 back end.
Rhys Weatherley [Wed, 26 May 2004 03:47:38 +0000 (03:47 +0000)]
More selection cases for the x86 back end.

21 years agoAdd "jit_block_current_is_dead" to simplify testing if the last block
Rhys Weatherley [Wed, 26 May 2004 01:19:38 +0000 (01:19 +0000)]
Add "jit_block_current_is_dead" to simplify testing if the last block
is reachable or not, taking empty trailing blocks into account.

21 years agoAdd "jit_insn_new_block" to simplify creating a new block that
Rhys Weatherley [Wed, 26 May 2004 01:05:03 +0000 (01:05 +0000)]
Add "jit_insn_new_block" to simplify creating a new block that
doesn't have an explicit label.

21 years agoMore bug fixes for the x86 back end.
Rhys Weatherley [Wed, 26 May 2004 00:31:51 +0000 (00:31 +0000)]
More bug fixes for the x86 back end.

21 years agoFix some compile issues in the x86 native back end.
Rhys Weatherley [Tue, 25 May 2004 23:59:22 +0000 (23:59 +0000)]
Fix some compile issues in the x86 native back end.

21 years agoSelectors for call instructions.
Rhys Weatherley [Tue, 25 May 2004 10:24:10 +0000 (10:24 +0000)]
Selectors for call instructions.

21 years agoSelectors for branch instructions.
Rhys Weatherley [Tue, 25 May 2004 05:13:22 +0000 (05:13 +0000)]
Selectors for branch instructions.

21 years agoCheck in the initial instruction selector for x86 (incomplete).
Rhys Weatherley [Tue, 25 May 2004 04:09:23 +0000 (04:09 +0000)]
Check in the initial instruction selector for x86 (incomplete).

21 years agoAdd the "gen-sel" program to the tree, to assist with building
Rhys Weatherley [Tue, 25 May 2004 01:22:27 +0000 (01:22 +0000)]
Add the "gen-sel" program to the tree, to assist with building
native instruction selectors.

21 years agoAdd missing functions to the C++ API.
Rhys Weatherley [Mon, 24 May 2004 06:19:53 +0000 (06:19 +0000)]
Add missing functions to the C++ API.

21 years ago_jit_gen_start_block: set the address of the exception handler for
Rhys Weatherley [Mon, 24 May 2004 05:53:55 +0000 (05:53 +0000)]
_jit_gen_start_block: set the address of the exception handler for
interpreted code.

21 years agoRewrite the exception region routines to make them easier
Rhys Weatherley [Mon, 24 May 2004 04:19:42 +0000 (04:19 +0000)]
Rewrite the exception region routines to make them easier
to use from CLI and JVM style systems.

21 years agoModify the function call logic to use "setjmp" with native back ends.
Rhys Weatherley [Sat, 22 May 2004 02:08:07 +0000 (02:08 +0000)]
Modify the function call logic to use "setjmp" with native back ends.

21 years agoRename "jit_insn_move_blocks" to "jit_insn_move_blocks_to_end" and
Rhys Weatherley [Fri, 21 May 2004 23:32:32 +0000 (23:32 +0000)]
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.

21 years ago_jit_block_peephole_branch: don't allow conditional branches to cross
Rhys Weatherley [Fri, 21 May 2004 22:51:42 +0000 (22:51 +0000)]
_jit_block_peephole_branch: don't allow conditional branches to cross
an exception context boundary, because doing so will violate "finally"
semantics.

21 years agoUse computed goto's in the interpreter if supported by the underlying compiler.
Rhys Weatherley [Fri, 21 May 2004 05:55:49 +0000 (05:55 +0000)]
Use computed goto's in the interpreter if supported by the underlying compiler.

21 years agoAdd the "jit_insn_alloca" instruction.
Rhys Weatherley [Fri, 21 May 2004 04:58:27 +0000 (04:58 +0000)]
Add the "jit_insn_alloca" instruction.

21 years agoRemove the last remaining C++ code from libjit.so so that
Rhys Weatherley [Fri, 21 May 2004 04:24:24 +0000 (04:24 +0000)]
Remove the last remaining C++ code from libjit.so so that
it is now a pure C library.

21 years agoRedesign the exception handling mechanism to use "setjmp" rather
Rhys Weatherley [Fri, 21 May 2004 02:20:00 +0000 (02:20 +0000)]
Redesign the exception handling mechanism to use "setjmp" rather
than C++ exceptions.

21 years agoTreat dead blocks as empty when peepholing branches to the next block.
Rhys Weatherley [Fri, 21 May 2004 00:22:19 +0000 (00:22 +0000)]
Treat dead blocks as empty when peepholing branches to the next block.

21 years agoTreat dead blocks as empty when peepholing branches to the next block.
Rhys Weatherley [Thu, 20 May 2004 09:53:37 +0000 (09:53 +0000)]
Treat dead blocks as empty when peepholing branches to the next block.

21 years agoPerform peephole optimization of branches to branches before live
Rhys Weatherley [Thu, 20 May 2004 02:15:52 +0000 (02:15 +0000)]
Perform peephole optimization of branches to branches before live
variable analysis, so that the back ends don't need to worry
about jump threading.

21 years agoConvert constant conditional branches such as "if true goto L" into
Rhys Weatherley [Thu, 20 May 2004 01:24:54 +0000 (01:24 +0000)]
Convert constant conditional branches such as "if true goto L" into
unconditional branches.

21 years agoFix a compile bug.
Rhys Weatherley [Sat, 15 May 2004 10:33:02 +0000 (10:33 +0000)]
Fix a compile bug.

21 years agoFix a macro generation bug for Win32 systems.
Rhys Weatherley [Sat, 15 May 2004 10:21:34 +0000 (10:21 +0000)]
Fix a macro generation bug for Win32 systems.

21 years agoPut some infrastructure in place to support pluggable object models.
Rhys Weatherley [Fri, 14 May 2004 07:10:59 +0000 (07:10 +0000)]
Put some infrastructure in place to support pluggable object models.

21 years agoUpdating working version to "0.0.3".
Rhys Weatherley [Thu, 13 May 2004 04:59:52 +0000 (04:59 +0000)]
Updating working version to "0.0.3".

21 years agoUpdate version for the "0.0.2" release. r.0.0.2
Rhys Weatherley [Thu, 13 May 2004 03:24:17 +0000 (03:24 +0000)]
Update version for the "0.0.2" release.

21 years agoPut some infrastructure (incomplete) in place to support
Rhys Weatherley [Thu, 13 May 2004 02:45:48 +0000 (02:45 +0000)]
Put some infrastructure (incomplete) in place to support
array index expressions.

21 years agoAdd a README file to describe how to write test cases.
Rhys Weatherley [Wed, 12 May 2004 11:38:31 +0000 (11:38 +0000)]
Add a README file to describe how to write test cases.

21 years agoAdd the "--dont-fold" option to Dynamic Pascal, so that we can run
Rhys Weatherley [Wed, 12 May 2004 07:33:45 +0000 (07:33 +0000)]
Add the "--dont-fold" option to Dynamic Pascal, so that we can run
the test cases without folding.

21 years agoTest cases and bug fixes for mathematical operations.
Rhys Weatherley [Wed, 12 May 2004 06:58:45 +0000 (06:58 +0000)]
Test cases and bug fixes for mathematical operations.

21 years agoAdd builtins for mathematical operations.
Rhys Weatherley [Wed, 12 May 2004 04:52:03 +0000 (04:52 +0000)]
Add builtins for mathematical operations.

21 years agoMore coercion test cases and fixes.
Rhys Weatherley [Wed, 12 May 2004 03:34:34 +0000 (03:34 +0000)]
More coercion test cases and fixes.

21 years agojit_type_promote_int: promote ubyte and ushort to uint, not int.
Rhys Weatherley [Wed, 12 May 2004 03:00:17 +0000 (03:00 +0000)]
jit_type_promote_int: promote ubyte and ushort to uint, not int.

21 years agoCheck in some initial infrastructure for the dpas-based test suite.
Rhys Weatherley [Wed, 12 May 2004 01:11:17 +0000 (01:11 +0000)]
Check in some initial infrastructure for the dpas-based test suite.

21 years agodpas_parse_hex: ignore the 'H' on the end of a hexadecimal constant.
Rhys Weatherley [Wed, 12 May 2004 00:54:30 +0000 (00:54 +0000)]
dpas_parse_hex: ignore the 'H' on the end of a hexadecimal constant.

21 years agoIncorrect values for jit_max_int and jit_max_long.
Rhys Weatherley [Wed, 12 May 2004 00:53:09 +0000 (00:53 +0000)]
Incorrect values for jit_max_int and jit_max_long.

21 years agoResolve ea-based lvalues in operators.
Rhys Weatherley [Wed, 12 May 2004 00:30:02 +0000 (00:30 +0000)]
Resolve ea-based lvalues in operators.

21 years agoIfTail: fix a bug that caused the "then" case of an "if" to fall
Rhys Weatherley [Wed, 12 May 2004 00:22:30 +0000 (00:22 +0000)]
IfTail: fix a bug that caused the "then" case of an "if" to fall
through to the "else".

21 years agoAdd the "SameType" and "SameShape" builtins, to assist with unit
Rhys Weatherley [Wed, 12 May 2004 00:05:41 +0000 (00:05 +0000)]
Add the "SameType" and "SameShape" builtins, to assist with unit
testing type coercions.

21 years agoUse both .libs and non.libs versions of the so paths, because some
Rhys Weatherley [Tue, 11 May 2004 22:25:22 +0000 (22:25 +0000)]
Use both .libs and non.libs versions of the so paths, because some
versions of libtool add .libs implicitly and others don't.

21 years agoModify the autoconf/automake build system to use libtool.
Rhys Weatherley [Tue, 11 May 2004 10:23:04 +0000 (10:23 +0000)]
Modify the autoconf/automake build system to use libtool.

21 years agoReport errors for unimplemented expressions and statements,
Rhys Weatherley [Tue, 11 May 2004 06:52:19 +0000 (06:52 +0000)]
Report errors for unimplemented expressions and statements,
so that users are not "surprised" when things silently fail.

21 years ago_jit_regs_load_to_top_two: handle the case where the second value
Rhys Weatherley [Tue, 11 May 2004 06:16:32 +0000 (06:16 +0000)]
_jit_regs_load_to_top_two: handle the case where the second value
is on the stack but not the first.

21 years agoFix a bug that caused global variables in Dynamic Pascal
Rhys Weatherley [Tue, 11 May 2004 06:13:17 +0000 (06:13 +0000)]
Fix a bug that caused global variables in Dynamic Pascal
to be incorrectly allocated as locals.

21 years agoImplement the exception-handling opcodes for the interpreter.
Rhys Weatherley [Tue, 11 May 2004 04:58:12 +0000 (04:58 +0000)]
Implement the exception-handling opcodes for the interpreter.

21 years agoRound out the function call handling opcodes for the interpreter.
Rhys Weatherley [Tue, 11 May 2004 02:04:17 +0000 (02:04 +0000)]
Round out the function call handling opcodes for the interpreter.

21 years agoImplement the "New" and "Dispose" builtins.
Rhys Weatherley [Mon, 10 May 2004 04:47:23 +0000 (04:47 +0000)]
Implement the "New" and "Dispose" builtins.

21 years agoLoading and storing record fields in Dynamic Pascal.
Rhys Weatherley [Mon, 10 May 2004 03:43:11 +0000 (03:43 +0000)]
Loading and storing record fields in Dynamic Pascal.

21 years agoInterpreter code conversion for relative pointer and copy opcodes;
Rhys Weatherley [Mon, 10 May 2004 03:41:49 +0000 (03:41 +0000)]
Interpreter code conversion for relative pointer and copy opcodes;
fix some bugs in stack-based register allocation.

21 years agoUse "objdump" to dump compiled native code.
Rhys Weatherley [Sat, 8 May 2004 10:11:47 +0000 (10:11 +0000)]
Use "objdump" to dump compiled native code.

21 years agoMove the "JIT_TYPE_xxx" constants into the public headers and
Rhys Weatherley [Sat, 8 May 2004 02:31:32 +0000 (02:31 +0000)]
Move the "JIT_TYPE_xxx" constants into the public headers and
add "jit_type_get_kind" so that front end code can classify types quickly.

21 years agoMove the dynlib and C++ name mangling routines into a separate
Rhys Weatherley [Sat, 8 May 2004 01:36:41 +0000 (01:36 +0000)]
Move the dynlib and C++ name mangling routines into a separate
"jitdynamic" library, which will handle all of the cross-language
naming and dynamic invocation logic.

21 years agoRemove the locale-sensitive string comparison routines because
Rhys Weatherley [Sat, 8 May 2004 01:10:22 +0000 (01:10 +0000)]
Remove the locale-sensitive string comparison routines because
they aren't used in libjit, and front ends will normally have
their own functions for this purpose.

21 years agoAdd "_jit_cache_get_end_method", to allow the end of a method's code
Rhys Weatherley [Sat, 8 May 2004 00:42:18 +0000 (00:42 +0000)]
Add "_jit_cache_get_end_method", to allow the end of a method's code
to be located without explicit marking.

21 years agoCode generation for "for" loops.
Rhys Weatherley [Fri, 7 May 2004 04:01:04 +0000 (04:01 +0000)]
Code generation for "for" loops.

21 years agoImplement symbol relocations for the ELF binary reader.
Rhys Weatherley [Fri, 7 May 2004 01:43:12 +0000 (01:43 +0000)]
Implement symbol relocations for the ELF binary reader.

21 years agoAdd the "Flush" and "Terminate" builtins; fix a small bug in string scanning.
Rhys Weatherley [Thu, 6 May 2004 23:10:46 +0000 (23:10 +0000)]
Add the "Flush" and "Terminate" builtins; fix a small bug in string scanning.

21 years agoExecute the "main" method once a Dynamic Pascal program has been compiled;
Rhys Weatherley [Thu, 6 May 2004 22:41:15 +0000 (22:41 +0000)]
Execute the "main" method once a Dynamic Pascal program has been compiled;
fix some calling convention problems with "call_external".

21 years agoGet basic compilation working in Dynamic Pascal.
Rhys Weatherley [Thu, 6 May 2004 11:09:37 +0000 (11:09 +0000)]
Get basic compilation working in Dynamic Pascal.

21 years agoContinue the implementation of the C++ name mangling routines.
Rhys Weatherley [Mon, 3 May 2004 11:12:37 +0000 (11:12 +0000)]
Continue the implementation of the C++ name mangling routines.

21 years agoAdd the beginnings of a C++ name mangler, to help with extracting
Rhys Weatherley [Mon, 3 May 2004 06:32:22 +0000 (06:32 +0000)]
Add the beginnings of a C++ name mangler, to help with extracting
C++ symbols from dynamic shared libraries.

21 years agoTag the system-dependent types so that they can be distinguished from
Rhys Weatherley [Mon, 3 May 2004 01:38:36 +0000 (01:38 +0000)]
Tag the system-dependent types so that they can be distinguished from
the fixed-sized types when it is necessary to do so.

21 years agoAdd more instances of JIT_NOTHROW to the headers; add some special
Rhys Weatherley [Sun, 2 May 2004 23:41:50 +0000 (23:41 +0000)]
Add more instances of JIT_NOTHROW to the headers; add some special
meta tags for types.

21 years agoImprove the maintainability of the apply macros.
Rhys Weatherley [Sun, 2 May 2004 23:40:18 +0000 (23:40 +0000)]
Improve the maintainability of the apply macros.

21 years agoClean up the builder/parser macros and detect padding of
Rhys Weatherley [Sat, 1 May 2004 11:16:15 +0000 (11:16 +0000)]
Clean up the builder/parser macros and detect padding of
the floating-point registers.

21 years agoAdd array access instructions.
Rhys Weatherley [Sat, 1 May 2004 07:25:52 +0000 (07:25 +0000)]
Add array access instructions.

21 years agoImplement x86 code generation for some of the basic operators.
Rhys Weatherley [Sat, 1 May 2004 07:24:27 +0000 (07:24 +0000)]
Implement x86 code generation for some of the basic operators.

21 years agoSet the initial working version to 0.0.1.
Rhys Weatherley [Fri, 30 Apr 2004 23:40:54 +0000 (23:40 +0000)]
Set the initial working version to 0.0.1.

21 years agoInitial revision
Rhys Weatherley [Fri, 30 Apr 2004 23:29:28 +0000 (23:29 +0000)]
Initial revision