Commit Graph

831 Commits (e81e07693571535076e7adbe4fa74153cfb6d1ae)

Author SHA1 Message Date
Phil Dawes 2cf2dab48e fpe signals working on unix again 2009-09-16 08:22:18 +01:00
Phil Dawes 8049b441c2 imul clobbers arg2 on x86.64, so stashing vm ptr on the stack 2009-09-16 08:22:18 +01:00
Phil Dawes a8d1e5187d Added -DREENTRANT option to Makefile
Also renamed FACTOR_MULTITHREADED to FACTOR_REENTRANT
2009-09-16 08:22:18 +01:00
Phil Dawes 617a7cbd65 Added more init code to vm constructor.
Also removed dummy variables file as have fixed that problem now
2009-09-16 08:22:18 +01:00
Phil Dawes c7b7517f36 small x86 asm cleanup 2009-09-16 08:22:17 +01:00
Phil Dawes 8a65f35c31 vm passed in primitives as arg0 for x86.64 2009-09-16 08:22:17 +01:00
Phil Dawes 480a15c2c3 Added vm passing to inline_cache_miss x86.32 asm 2009-09-16 08:22:17 +01:00
Phil Dawes 3343723ee3 Don't return functions returning void. -O3 seems to optimize them out! 2009-09-16 08:22:17 +01:00
Phil Dawes deb7af70bb asm math functions pass vm ptr to overflow function in 3rd arg (X86.32) 2009-09-16 08:22:17 +01:00
Phil Dawes 3ecff2c0eb fixed bug where vm_char being treated as 1byte type 2009-09-16 08:22:17 +01:00
Phil Dawes 34ce334317 Added data constructor to initialize bools in factorvmdata struct 2009-09-16 08:22:17 +01:00
Phil Dawes 67ac514a3b Added vm ptr to math overflow functions 2009-09-16 08:22:17 +01:00
Phil Dawes b02944c6d5 moved signal handlers into vm object 2009-09-16 08:22:16 +01:00
Phil Dawes eee1de23c8 removed debugging 2009-09-16 08:22:16 +01:00
Phil Dawes e8d1612e8e Split data out into separate vm-data struct 2009-09-16 08:22:16 +01:00
Phil Dawes b07550620f Dev checkpoint 2009-09-16 08:20:51 +01:00
Phil Dawes 9bf6f97e35 Switched on singleton flag 2009-09-16 08:20:51 +01:00
Phil Dawes 9e460f6dec removed vm ptr from mach_signal and some other places 2009-09-16 08:20:51 +01:00
Phil Dawes 544bc3cd33 removed vm ptr from os-macosx.mm 2009-09-16 08:20:51 +01:00
Phil Dawes e49fa4109d added FACTOR_MULTITHREADED_TLS option 2009-09-16 08:20:51 +01:00
Phil Dawes f4af39b60e thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes b1c68d92b7 added threadsafe defines. Dunno if they do much 2009-09-16 08:20:51 +01:00
Phil Dawes 3a3154797c fixed stupid signal handler bug 2009-09-16 08:20:50 +01:00
Phil Dawes 2e50da6beb added vm-ptr primitive 2009-09-16 08:20:50 +01:00
Phil Dawes 3345922330 quick test vocab for mt stuff 2009-09-16 08:20:50 +01:00
Phil Dawes ca16daa4b2 cleaned up code a bit, added multithreaded mode flags 2009-09-16 08:20:50 +01:00
Phil Dawes fa6d8d239b removed vm singleton usage from unix stuff 2009-09-16 08:20:49 +01:00
Phil Dawes 3c139593c5 moved the thread stuff around a bit 2009-09-16 08:20:49 +01:00
Phil Dawes 1456fb3c97 removed vm ptrs from unix code (still in signal handlers tho) 2009-09-16 08:20:10 +01:00
Phil Dawes 784b8d16ae moved utility functions and fatal_error out of vm struct since doesn't need state 2009-09-16 08:20:10 +01:00
Phil Dawes b02c602a89 added vm passing to some alien/boxing functions and added some vm asserts 2009-09-16 08:20:10 +01:00
Phil Dawes 5cd2fbb564 vm ptr passed to lazy_jit_compile on x86.64 2009-09-16 08:20:10 +01:00
Phil Dawes 334f4c3455 overflow functions now retrieving their vm ptr from above ds stack 2009-09-16 08:20:09 +01:00
Phil Dawes be1b079eb5 Primitives now pass vm ptr on 64bit x86 2009-09-16 08:20:09 +01:00
Phil Dawes 6ddd3c654e fixed up linux64 bootstrap (single threaded) 2009-09-16 08:20:09 +01:00
Phil Dawes aa005c948f win32 main starts factorvm in new thread 2009-09-16 08:20:09 +01:00
Phil Dawes 5c2a28173a Start windows factor in a spawned thread (for testing) 2009-09-16 08:20:09 +01:00
Phil Dawes 9cac5e8aa9 added lookup_vm and removed last usage of vm from windows code 2009-09-16 08:20:09 +01:00
Phil Dawes 12ca7bdc57 added factorvm ptrs to the rest of alien functions.
(Left commented debug lines to remind me that these haven't been tested yet, and some are osx specific)
2009-09-16 08:17:27 +01:00
Phil Dawes e98f168a11 print_native_string doesn't need singleton ptr 2009-09-16 08:17:27 +01:00
Phil Dawes e05f91f3a8 cleaning up stray vm singleton usage 2009-09-16 08:17:27 +01:00
Phil Dawes e2d246f371 removed most global functions from factor.cpp 2009-09-16 08:17:27 +01:00
Phil Dawes 20ef4200fb removed some error vm-> functions 2009-09-16 08:17:27 +01:00
Phil Dawes 700e03a6a6 removed some vm-> forwarding functions 2009-09-16 08:17:26 +01:00
Phil Dawes 2f3cd4d23d removed some vm-> pointers 2009-09-16 08:17:26 +01:00
Phil Dawes 005549ba43 vm pointer passed to nest_stacks and unnest_stacks (win32) 2009-09-16 08:17:26 +01:00
Phil Dawes cdb6304fef Dev checkpoint 2009-09-16 08:17:26 +01:00
Phil Dawes 58190c06dc passing ptr in boolean boxing and save_callstack_bottom 2009-09-16 08:17:26 +01:00
Phil Dawes 0a15e20e12 Added basic win32 start-thread support 2009-09-16 08:17:26 +01:00
Phil Dawes fa2dccd6d3 vm passed in box_alien and alien_offset (win32) 2009-09-16 08:16:33 +01:00
Phil Dawes 7759b89de9 removed all vm-> singleton accesses from inlineimpls 2009-09-16 08:16:33 +01:00
Phil Dawes a39bf2f8e2 converted box_* float functions to use vm (x86 win32) 2009-09-16 08:16:33 +01:00
Phil Dawes 81106f9e20 converted box_* integer functions to use vm (x86 windows) 2009-09-16 08:16:33 +01:00
Phil Dawes 199fba7a99 converted box_* integer functions to use vm (x86 windows) 2009-09-16 08:16:33 +01:00
Phil Dawes ff54a57eb3 added code to pass vm ptr to some unboxers 2009-09-16 08:16:32 +01:00
Phil Dawes c5119218c5 moved gc_locals accessors into vm 2009-09-16 08:16:32 +01:00
Phil Dawes 65a264aa1f turned errno() methods back into functions since they should already be thread safe 2009-09-16 08:16:32 +01:00
Phil Dawes ff8f2b10ec fixed up getenv compiler intrinsic to use vm struct userenv 2009-09-16 08:16:32 +01:00
Phil Dawes 3b3ed501c7 added padding to align userenv to an 8byte boundary 2009-09-16 08:16:32 +01:00
Phil Dawes ef16c4be66 moved userenv into vm in C code (DOESNT BOOTSTRAP YET!!!) 2009-09-16 08:16:32 +01:00
Phil Dawes a4a4439fc5 got debug compiles working again 2009-09-16 08:16:32 +01:00
Phil Dawes 43787e2664 moved stack_traces_p into the vm 2009-09-16 08:16:31 +01:00
Phil Dawes 5bb04857bf moved cards_offset and decks_offset into vm struct (for x86) 2009-09-16 08:16:31 +01:00
Phil Dawes c6d855d494 moved allot_markers_offset variable into vm struct 2009-09-16 08:16:31 +01:00
Phil Dawes c010afc345 nursery global variable moved into vm 2009-09-16 08:16:31 +01:00
Phil Dawes 9a37b6abb6 moved stack_chain into vm struct 2009-09-16 08:16:31 +01:00
Phil Dawes 25bbca2f66 removed save_stacks global function 2009-09-16 08:16:30 +01:00
Phil Dawes 465f06ebc2 throw_impl now forwards the vm ptr 2009-09-16 08:16:30 +01:00
Phil Dawes 4afc16e95b passing vm ptr to lazy_jit_compile mostly working 2009-09-16 08:16:30 +01:00
Phil Dawes 6a193bb0d5 Added %vm-invoke to pass vm ptr to vm functions (x86.32 only, otherwise uses singleton vm) 2009-09-16 08:16:30 +01:00
Phil Dawes 57011aed51 vm ptr passed to primitives on X86.32 (other cpus still use singleton vm ptr) 2009-09-16 08:16:30 +01:00
Phil Dawes a5f24c8fb9 added VM relocation type 2009-09-16 08:16:30 +01:00
Phil Dawes d48dffcfa0 moved os-windows-nt functions into the vm 2009-09-16 08:16:30 +01:00
Phil Dawes 01ecb11635 Dev checkpoint 2009-09-16 08:16:29 +01:00
Phil Dawes 7cebe088a1 moved some os-windows functions into the vm 2009-09-16 08:16:29 +01:00
Phil Dawes aa58b54c2e moved align_page into vm 2009-09-16 08:16:29 +01:00
Phil Dawes 7592a424e8 Dev checkpoint 2009-09-16 08:16:29 +01:00
Phil Dawes 97addbaf7a got os-macosx.mm to compile 2009-09-16 08:16:29 +01:00
Phil Dawes 75a3db3bfb Fixed typo from upstream 2009-09-16 08:16:29 +01:00
Phil Dawes d3b5321b6e removed some global functions from errors.cpp 2009-09-16 08:16:29 +01:00
Phil Dawes 390712b00a removed some global functions from utilities.cpp 2009-09-16 08:16:29 +01:00
Phil Dawes 1c656e1bac removed some global functions from inline_cache.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 6234b7957f removed some global functions from dispatch.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 0de0d5f256 removed some global functions from quotations.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 7f70b6320c removed some global functions from alien.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 551a800d2f removed some global functions from callstack.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 1887a16ca3 removed some global functions from image.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 0397f92569 removed some global functions from io.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes fc5c51e2cd removed some global functions from math.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 2dba15535f removed global functions from words.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 10bf5ca17c removed global functions from byte_arrays.cpp and tuples.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 9e2d40a228 removed global functions from strings.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes d21b1b2e1e removed global functions from arrays.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 5a0c4d18aa removed global functions from debug.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 959da30f05 removed global functions from code_block.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 32eace1a11 removed global functions from bignum.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 100c26c38f removed global functions from profiler 2009-09-16 08:16:27 +01:00
Phil Dawes afe1cf0c73 removed some global functions from code_heap 2009-09-16 08:16:27 +01:00
Phil Dawes 00087e6814 removed global functions from code_gc 2009-09-16 08:16:26 +01:00
Phil Dawes 39dc71e612 removed global functions from data_gc 2009-09-16 08:16:26 +01:00
Phil Dawes b2f52ed109 removed non-primitive global functions from data_heap 2009-09-16 08:16:26 +01:00
Phil Dawes 7a20e1648c Dev checkpoint 2009-09-16 08:16:26 +01:00
Phil Dawes 82e1ea7110 vm ptr passed to untag_check 2009-09-16 08:16:26 +01:00
Phil Dawes e2993558a8 moved tagged template code back into tagged.hpp header 2009-09-16 08:16:26 +01:00
Phil Dawes e08a6e21cb split the moved inline stuff into separate header file 2009-09-16 08:16:26 +01:00
Phil Dawes e4f92cdbf2 moved tagged.hpp templates to vm.hpp 2009-09-16 08:16:26 +01:00
Phil Dawes 75c81af691 moved more math.hpp inline functions to vm 2009-09-16 08:16:25 +01:00
Phil Dawes a66cf7e609 removed stub function from run 2009-09-16 08:16:25 +01:00
Phil Dawes 2e81b174a7 removed some stub functions from contexts 2009-09-16 08:16:25 +01:00
Phil Dawes d093ff766f updated function ptr calls (iterators etc..) to take a vm parameter 2009-09-16 08:16:25 +01:00
Phil Dawes d5da6a3d58 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes baaf71eddc Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes 93c665c653 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes 8fa607e9a9 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes efa974f025 moved global state from math into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 839491a828 moved global state from inline_cache into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 498b1917dc moved global state from dispatch into vm 2009-09-16 08:16:24 +01:00
Phil Dawes c506abc6cd moved global state from debug into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 396eeeba34 moved global state from code_heap into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 221c0ac5c8 moved global state from data_heap into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 3025cef1c6 moved global state from data_gc into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 80716a1b6e 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
Phil Dawes ecfd9a6075 reordered master to untangle dependency chain a bit 2009-09-16 08:16:24 +01:00
Phil Dawes fb9f9ac3d3 moved callstack.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 9e23e41267 moved math.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes a249b484c4 moved byte_arrays.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 209755e2de moved arrays.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 2e129dfc45 moved generic_arrays inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 4dabd186c9 moved data_gc and local_roots inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 31905b68a7 moved write_barrier inline function impls to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes a6c3c1e7d2 moved callstack.hpp functions to vm 2009-09-16 08:16:23 +01:00
Phil Dawes ae5c0fbfb2 moved math.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 33ecaa5010 moved arrays.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 625380c25c moved generic_array.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes b1189dc4f1 moved write_barrier functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes be3a9f7f66 moved data_gc templates and inline functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 1b64155998 moved reallot_array into vm 2009-09-16 08:16:22 +01:00
Phil Dawes e678f6a681 added vm member to gc_bignum 2009-09-16 08:16:22 +01:00
Phil Dawes a2f14b5a6d added vm member to gc_root and growable arrays 2009-09-16 08:16:22 +01:00
Phil Dawes 54b3c1ea88 added vm member to jit classes 2009-09-16 08:16:21 +01:00
Phil Dawes 386dafe747 moved local roots state to vm, shuffled includes around 2009-09-16 08:16:21 +01:00
Phil Dawes 8fea98ad7a factorvm initialised globally 2009-09-16 08:16:21 +01:00
Phil Dawes a826496a71 moved utilities.cpp functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes f88eaa0df3 moved factor.cpp functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 5980165829 moved inline_cache functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes c018372cd3 moved dispatch functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 2eca2ddeaf moved quotations functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 28620619e9 moved alien functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 1bba717b36 moved image functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes ee07c0b4e5 moved code_heap functions to vm 2009-09-16 08:16:20 +01:00