]>
git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Rhys Weatherley [Sun, 6 Jun 2004 04:59:57 +0000 (04:59 +0000)]
jit_flush_exec: flush cache lines properly if the start is not
on a line boundary.
Rhys Weatherley [Sun, 6 Jun 2004 04:53:08 +0000 (04:53 +0000)]
Add some more instructions to the ARM back end; split some x86
back end code out into common code for ARM to use as well.
Rhys Weatherley [Wed, 2 Jun 2004 10:18:55 +0000 (10:18 +0000)]
Recognise "t = a op b; a = t" and turn it into "a = a op b" to make
it easier for back ends to recognise special idioms such as
increments and decrements.
Rhys Weatherley [Wed, 2 Jun 2004 07:29:47 +0000 (07:29 +0000)]
_jit_regs_load_value: if a value is in a global register and it is
not going to be destroyed by an instruction, then use the global
register as the operand.
Rhys Weatherley [Wed, 2 Jun 2004 07:17:23 +0000 (07:17 +0000)]
Implement a simple global register allocation policy, based on usage counts.
Rhys Weatherley [Tue, 1 Jun 2004 10:20:41 +0000 (10:20 +0000)]
Enable the x86 back end by default on platforms where it makes sense,
and add the option "--enable-interpreter" to "configure".
Rhys Weatherley [Tue, 1 Jun 2004 09:55:54 +0000 (09:55 +0000)]
More instruction selection rules for ARM.
Rhys Weatherley [Tue, 1 Jun 2004 06:46:37 +0000 (06:46 +0000)]
Fix some gcc 3.x compile warnings.
Rhys Weatherley [Mon, 31 May 2004 11:24:49 +0000 (11:24 +0000)]
Throw exceptions correctly for "check_null".
Rhys Weatherley [Mon, 31 May 2004 10:50:09 +0000 (10:50 +0000)]
Inline and optimize divisions for x86.
Rhys Weatherley [Mon, 31 May 2004 07:25:46 +0000 (07:25 +0000)]
Optimize multiplications for x86.
Rhys Weatherley [Sun, 30 May 2004 10:14:30 +0000 (10:14 +0000)]
Fix a cpu vs non-cpu register problem in the floating-point
"push" operations for x86.
Rhys Weatherley [Sun, 30 May 2004 09:05:05 +0000 (09:05 +0000)]
Add "jit_insn_defer_pop_stack" and "jit_insn_flush_defer_pop",
to defer the popping of function call arguments as long as possible.
Rhys Weatherley [Sun, 30 May 2004 05:37:05 +0000 (05:37 +0000)]
Improve instruction selection for floating-point "push" operations.
Rhys Weatherley [Sun, 30 May 2004 03:00:26 +0000 (03:00 +0000)]
Another small change.
Rhys Weatherley [Sun, 30 May 2004 02:58:52 +0000 (02:58 +0000)]
Small update to LLVM URL.
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.
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.
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.
Rhys Weatherley [Sat, 29 May 2004 09:44:51 +0000 (09:44 +0000)]
Continue the x86 back end; particularly byte/short stores.
Rhys Weatherley [Thu, 27 May 2004 04:36:30 +0000 (04:36 +0000)]
Relative loads and stores for x86.
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".
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.
Rhys Weatherley [Wed, 26 May 2004 07:21:04 +0000 (07:21 +0000)]
Add the beginnings of the instruction selector for ARM.
Rhys Weatherley [Wed, 26 May 2004 03:47:38 +0000 (03:47 +0000)]
More selection cases for the x86 back end.
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.
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.
Rhys Weatherley [Wed, 26 May 2004 00:31:51 +0000 (00:31 +0000)]
More bug fixes for the x86 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.
Rhys Weatherley [Tue, 25 May 2004 10:24:10 +0000 (10:24 +0000)]
Selectors for call instructions.
Rhys Weatherley [Tue, 25 May 2004 05:13:22 +0000 (05:13 +0000)]
Selectors for branch instructions.
Rhys Weatherley [Tue, 25 May 2004 04:09:23 +0000 (04:09 +0000)]
Check in the initial instruction selector for x86 (incomplete).
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.
Rhys Weatherley [Mon, 24 May 2004 06:19:53 +0000 (06:19 +0000)]
Add missing functions to the C++ API.
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.
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.
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.
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.
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.
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.
Rhys Weatherley [Fri, 21 May 2004 04:58:27 +0000 (04:58 +0000)]
Add the "jit_insn_alloca" instruction.
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.
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.
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.
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.
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.
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.
Rhys Weatherley [Sat, 15 May 2004 10:33:02 +0000 (10:33 +0000)]
Fix a compile bug.
Rhys Weatherley [Sat, 15 May 2004 10:21:34 +0000 (10:21 +0000)]
Fix a macro generation bug for Win32 systems.
Rhys Weatherley [Fri, 14 May 2004 07:10:59 +0000 (07:10 +0000)]
Put some infrastructure in place to support pluggable object models.
Rhys Weatherley [Thu, 13 May 2004 04:59:52 +0000 (04:59 +0000)]
Updating working version to "0.0.3".
Rhys Weatherley [Thu, 13 May 2004 03:24:17 +0000 (03:24 +0000)]
Update version for the "0.0.2" release.
Rhys Weatherley [Thu, 13 May 2004 02:45:48 +0000 (02:45 +0000)]
Put some infrastructure (incomplete) in place to support
array index expressions.
Rhys Weatherley [Wed, 12 May 2004 11:38:31 +0000 (11:38 +0000)]
Add a README file to describe how to write test cases.
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.
Rhys Weatherley [Wed, 12 May 2004 06:58:45 +0000 (06:58 +0000)]
Test cases and bug fixes for mathematical operations.
Rhys Weatherley [Wed, 12 May 2004 04:52:03 +0000 (04:52 +0000)]
Add builtins for mathematical operations.
Rhys Weatherley [Wed, 12 May 2004 03:34:34 +0000 (03:34 +0000)]
More coercion test cases and fixes.
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.
Rhys Weatherley [Wed, 12 May 2004 01:11:17 +0000 (01:11 +0000)]
Check in some initial infrastructure for the dpas-based test suite.
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.
Rhys Weatherley [Wed, 12 May 2004 00:53:09 +0000 (00:53 +0000)]
Incorrect values for jit_max_int and jit_max_long.
Rhys Weatherley [Wed, 12 May 2004 00:30:02 +0000 (00:30 +0000)]
Resolve ea-based lvalues in operators.
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".
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.
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.
Rhys Weatherley [Tue, 11 May 2004 10:23:04 +0000 (10:23 +0000)]
Modify the autoconf/automake build system to use libtool.
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.
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.
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.
Rhys Weatherley [Tue, 11 May 2004 04:58:12 +0000 (04:58 +0000)]
Implement the exception-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.
Rhys Weatherley [Mon, 10 May 2004 04:47:23 +0000 (04:47 +0000)]
Implement the "New" and "Dispose" builtins.
Rhys Weatherley [Mon, 10 May 2004 03:43:11 +0000 (03:43 +0000)]
Loading and storing record fields in Dynamic Pascal.
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.
Rhys Weatherley [Sat, 8 May 2004 10:11:47 +0000 (10:11 +0000)]
Use "objdump" to dump compiled native code.
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.
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.
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.
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.
Rhys Weatherley [Fri, 7 May 2004 04:01:04 +0000 (04:01 +0000)]
Code generation for "for" loops.
Rhys Weatherley [Fri, 7 May 2004 01:43:12 +0000 (01:43 +0000)]
Implement symbol relocations for the ELF binary reader.
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.
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".
Rhys Weatherley [Thu, 6 May 2004 11:09:37 +0000 (11:09 +0000)]
Get basic compilation working in Dynamic Pascal.
Rhys Weatherley [Mon, 3 May 2004 11:12:37 +0000 (11:12 +0000)]
Continue the implementation of the C++ name mangling routines.
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.
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.
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.
Rhys Weatherley [Sun, 2 May 2004 23:40:18 +0000 (23:40 +0000)]
Improve the maintainability of the apply macros.
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.
Rhys Weatherley [Sat, 1 May 2004 07:25:52 +0000 (07:25 +0000)]
Add array access instructions.
Rhys Weatherley [Sat, 1 May 2004 07:24:27 +0000 (07:24 +0000)]
Implement x86 code generation for some of the basic operators.
Rhys Weatherley [Fri, 30 Apr 2004 23:40:54 +0000 (23:40 +0000)]
Set the initial working version to 0.0.1.
Rhys Weatherley [Fri, 30 Apr 2004 23:29:28 +0000 (23:29 +0000)]
Initial revision