Commit Graph

20 Commits (3e15dfc4cb94b58c4a2edfe987f3f91c61a68f1e)

Author SHA1 Message Date
Björn Lindqvist 6984bae7ca VM: rename of JIT_PUSH_IMMEDIATE to JIT_PUSH_LITERAL
The code template pushes both immediates and references so the name was
wrong.
2016-06-07 14:54:23 +02:00
Björn Lindqvist 8f2738cd82 bootstrap.x86: using 32 bit regs as operands when it's safe to do so
It shaves off a few bytes as e.g and eax, 0xf is one byte shorter than and rax, 0xf
2016-05-30 02:39:06 +02:00
Björn Lindqvist 0fc8fb22ca cpu.x86,bootstrap.assembler.*: making sure 0 is the relocation dummy value everywhere
In some places it was 0xffffffff, but it should always be 0 MOV for
consistency.
2016-05-19 22:43:52 +02:00
Björn Lindqvist f549283508 bootstrap.assembler.ppc: make ppc also use define-sub-primitives 2016-03-27 17:46:55 +02:00
Björn Lindqvist df3852f54a bootstrap.assembler: new word define-sub-primitives
This way all sub primitives can be declared at once which imo is cleaner.
2016-03-27 17:42:25 +02:00
Björn Lindqvist de4917e6a1 VM: give the exception handling special object a real name 2015-09-02 21:54:33 +02:00
Björn Lindqvist 22887c5816 VM: get rid of the odd RT_EXCEPTION_HANDLER relocation
The address to the win32 relocation handler can be stored in a special
object and be accessed by jit-install-seh. Doing it that way is better
because you can remove a lot of special code related to that relocation
type.
2015-09-02 21:54:30 +02:00
Björn Lindqvist cee0b19324 VM: the ffi-signal-handler and ffi-leaf-signal-handler primitives are unused 2015-09-02 21:54:15 +02:00
Björn Lindqvist 663e5e2a09 VM: fix jit-signal-handler-prolog/epilog to account for the home space
Windows 64bit abi requires callers to reserve 32 bytes of home space in
the stack frame which the callee is free to clobber. Previous versions
of VS didn't compile code to take advantage of the home space so it
worked fined. VS2015 however, is using the home space which causes
registers and flags that were supposed to be saved to be
overwritten. The fix is to put a little extra empty space at the bottom
of the stack frame.
2015-08-26 20:23:25 +02:00
Björn Lindqvist 10464e7e4e VM: LEAF_FRAME_SIZE is 16 bytes on all platforms so we can simplify it 2015-08-26 20:23:15 +02:00
Björn Lindqvist 9413f711b9 VM: the JIT_PROFILING special object is never used, so rename it to
JIT_UNUSED (removing it breaks boot images)
2015-08-14 20:19:53 -07:00
Björn Lindqvist 2b3989f3c9 bootstrap.assembler.*: convert the other assembly files to the new
jit-define system
2015-08-14 20:19:52 -07:00
Björn Lindqvist 9cf36e3dc2 bootstrap.image: attempt to remove the SPECIAL-OBJECT: table
Instead of using newly defined words as keys to the special-objects
hash being built, you can reuse the constants in kernel.private
2015-08-14 20:19:52 -07:00
John Benediktsson ca0f80f230 bootstrap: cleanup usings. 2015-07-26 21:20:55 -07:00
Björn Lindqvist c2a70d18b4 bootstrap.x86: fix assembler code bug in fixnum*
Now the operands are kept in EBP and ECX and the vm-reg (EBX) is not
used unnecessarily
2015-05-25 08:42:16 -07:00
Björn Lindqvist fa190a8329 bootstrap.ppc: untested fix for #1319 for ppc 2015-05-22 12:22:28 -07:00
Björn Lindqvist 183ec83a6d VM: possible fix for #1319.
Fix for reset_context() so that the top two stack items are never
removed from the stack so if the parent->init_context(ctx) call triggers
a GC, those items are never collected.
2015-05-22 12:22:27 -07:00
Björn Lindqvist 016614747d VM: the delete_context() and reset_context() api functions can be
simplified a bit

The functions always operates on parent->ctx, so passing a context*
parameter is redundant. This enables shorter assembly code for
the (start-context-and-delete) and (set-context-and-delete) primitives.
2015-05-22 12:22:26 -07:00
Björn Lindqvist 528e9f61f3 bootstrap.x86: new words jit-call-Xarg for calling vm functions with
arguments, simplifies some assembly code
2015-05-22 12:22:25 -07:00
Björn Lindqvist 6ca83e7588 Reorganising bootstrap files
All the bootstrap.factor scripts in cpu/ are run by the bootstrap to
make boot images, but aren't used otherwise. So I think it's cleaner to
put them in one directory inside the bootstrap hierarchy.
2015-05-22 12:22:24 -07:00