Commit Graph

29 Commits (3a00d2573a98a5956eb59d4533d67b7b22a81981)

Author SHA1 Message Date
Slava Pestov 5606825e8b vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym() 2010-01-19 20:00:33 +13:00
Slava Pestov 637a77c018 Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types 2010-01-18 20:54:00 +13:00
Slava Pestov 85a45d63d9 unwind-stack-frames didn't load VM pointer into the VM register on PowerPC and x86-64, and so if C code had clobbered this register it would crash 2010-01-12 16:31:10 +13:00
Slava Pestov 8d34a0f3c1 Store VM object in a register on x86-64 2010-01-11 01:20:32 +13:00
Slava Pestov 5b58117be1 cpu.x86: c-to-factor needs to deal with the fact that vm-reg might have been clobbered 2010-01-09 19:09:48 +13:00
Slava Pestov 1f88a925b4 Fix set-callstack primitive on Windows 2010-01-07 19:31:15 +13:00
Slava Pestov 47c6197799 Update x86-32 for assembly entry point changes 2010-01-06 17:55:20 +13:00
Slava Pestov 36d2ac8921 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Slava Pestov ba5b90e063 Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Slava Pestov a77f48fe6b Updating x86-64 port for global register variable removal 2009-12-27 01:17:42 +13:00
Slava Pestov 0068bce934 vm: big overhaul of non-optimizing compiler
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Slava Pestov e4ad642134 vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress) 2009-11-02 04:25:54 -06:00
Doug Coleman 7ce4b746e5 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Slava Pestov 107c96f642 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 38d120f92e vm: rt-vm relocation now supports accessing a field directly 2009-10-14 19:24:23 -05:00
Phil Dawes a3c84ea278 x86 bootstrap cleanup: renamed arg to arg1 2009-09-24 08:16:57 +01:00
Phil Dawes d25fe552ab removed superflous whitspace lines 2009-09-24 08:02:14 +01:00
Phil Dawes 8a65f35c31 vm passed in primitives as arg0 for x86.64 2009-09-16 08:22:17 +01:00
Phil Dawes be1b079eb5 Primitives now pass vm ptr on 64bit x86 2009-09-16 08:20:09 +01:00
Slava Pestov a9977d7c79 cpu.x86: update non-optimizing compiler backends for assembler vocab split 2009-07-30 02:22:37 -05:00
Slava Pestov 12a34d81f7 JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends 2009-05-06 20:04:49 -05:00
Slava Pestov 76281235e7 bootstrap.image: clean up jit-define and define-sub-primitive so that 2009-04-25 22:35:19 -05:00
Slava Pestov 6b99b04531 Add vocab: for vocab-relative paths 2009-02-15 19:53:21 -06:00
Slava Pestov 4b927f732f Clean up JIT backend a little 2008-12-09 17:14:17 -06:00
Slava Pestov cfa82cb474 New calling convention for VM primitives:
instead of the Factor side passing the stack pointer as the first parameter, and having the VM save it to stack_chain->top, we instead have the Factor side save it. Eliminates a lot of crud in the VM
2008-11-13 03:20:34 -06:00
unknown 7365959f01 Starting work on Win64 port 2008-11-07 20:33:32 -06:00
Slava Pestov 44a2499c17 fixnum-shift-fast and fixnum-mod subprimitives 2008-11-03 01:18:35 -06:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00