Commit Graph

20 Commits (af573bd0222ea0a145b34a0b75d4fc9fa5317e06)

Author SHA1 Message Date
Slava Pestov af573bd022 Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct 2010-03-18 22:06:00 +13:00
Slava Pestov 9399a68786 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 a942e2c34d vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler 2009-12-19 10:59:56 +13:00
Slava Pestov 20711a9bfd vm: remove DEFPUSHPOP macro 2009-12-04 20:56:48 -05:00
Slava Pestov 07b56b9806 vm/contexts: cleanup 2009-11-08 19:44:18 -06:00
Slava Pestov 6c561b5c4c vm: rename userenv to special_objects 2009-10-23 00:33:53 -05:00
Slava Pestov 030d035e94 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 3887292543 Big VM cleanup
- Move forward declarations of 'struct factor_vm' to one place
- Rename template parameters from T and TYPE to descriptive names. New convention: CamelCase for template parameters
- Change some higher-order functions taking function pointers into templates, and define classes overriding operator(). There's a bit of new boilerplate here but its more consistent than the old mish-mash approaches
- Put GC state into a gc_state struct
- Use exceptions instead of longjmp for non-local control transfer in GC
- In code GC, instead of interleaving code block tracing with copying, add code blocks which need to be revisited to an std::set stored in the gc_state
2009-10-03 08:47:05 -05:00
Phil Dawes 63266524d7 Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp 2009-09-27 19:42:18 +01:00
Phil Dawes 1c5329cc2e renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes b629429086 Dev checkpoint 2009-09-16 08:17:26 +01:00
Phil Dawes f9f1031dd8 moved stack_chain into vm struct 2009-09-16 08:16:31 +01:00
Phil Dawes 2c58deb8e5 removed save_stacks global function 2009-09-16 08:16:30 +01:00
Phil Dawes c045a2f9d5 removed some stub functions from contexts 2009-09-16 08:16:25 +01:00
Phil Dawes 50875c77f3 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes 4ff57d8acf moved global state from contexts and run into vm
Also renamed template type from T to TYPE to prevent clash with vm::T (true)
2009-09-16 08:16:24 +01:00
Slava Pestov ec943c2299 Change (void) to () 2009-05-05 11:33:35 -05:00
Slava Pestov 7c0a59f7a9 The great type renaming 2009-05-04 04:50:24 -05:00
Slava Pestov 7f48eb2b2c Use C++ namespaces 2009-05-04 01:46:13 -05:00
Slava Pestov 1857f90eb6 VM: use better abstractions for tagged pointers, eliminate get()/set() stuff, clean up array, string, and byte-array element access 2009-05-04 01:00:30 -05:00