Commit Graph

868 Commits (1f97169c62e5c6c013c4950d4fb40728cd080ec7)

Author SHA1 Message Date
Phil Dawes 6f0d25a8b3 ppc asm to pass vm pointer: initial bootstrap 2009-09-28 07:48:37 +01:00
Phil Dawes a514f79d3c inlineimpl.hpp is toast 2009-09-29 19:53:10 +01:00
Phil Dawes 0ca2b9b3b2 Converted some callback fns to use member-fn pointers 2009-09-28 19:45:10 +01:00
Phil Dawes 49df5b1078 moved local_roots and write_barrier stuff out of inlineimpls.hpp 2009-09-28 19:02:51 +01:00
Slava Pestov 3024810dfa Word hashcodes are now computed from the word's name/vocabulary, removing a source of non-determinism 2009-09-27 21:09:11 -05:00
Phil Dawes 132628985c removed vm-data.hpp 2009-09-27 20:09:09 +01:00
Phil Dawes 63266524d7 Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp 2009-09-27 19:42:18 +01:00
U-SLAVA-DFB8FF805\Slava 5a50ec204b vm: fix compilation on Windows 2009-09-26 02:56:55 -05:00
Slava Pestov 3c38656fd2 vm: fix windows compilation (untested) 2009-09-26 02:41:01 -05:00
Slava Pestov 09e8bac216 Fix GC root safety in word-xt primitive 2009-09-25 21:42:21 -05:00
Slava Pestov 1a6a106d28 vm: remove safe_malloc now that everything uses constructors instead 2009-09-25 21:22:05 -05:00
Slava Pestov 3d196110b7 Make segment, context, data_heap, zone more object-oriented, and fix crash when calling undefined symbols 2009-09-25 21:17:20 -05:00
Slava Pestov 5195fdaeaa vm: make heap data-type object-oriented 2009-09-25 20:32:00 -05:00
Slava Pestov 1174d60026 Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-25 19:04:19 -05:00
Slava Pestov 0f411c530b Merge branch 'master' of git://factorcode.org/git/factor 2009-09-25 18:23:36 -05:00
Slava Pestov 0a60f18e28 vm: ignore 'declare' calls in non-optimizing compiler 2009-09-25 18:08:21 -05:00
Slava Pestov efbd24e95f vm: clean up os-unix.cpp 2009-09-25 18:08:00 -05:00
Phil Dawes c495640cc5 forwarding functions replaced with PRIMITIVE_FORWARD() macro 2009-09-25 20:43:01 +01:00
Phil Dawes e6048ed076 removed VM_ASM_API_OVERFLOW (VM_ASM_API now regparm(3)) 2009-09-25 20:33:38 +01:00
Phil Dawes aa71248937 made inline_gc a VM_C_API function 2009-09-25 18:29:07 +01:00
Phil Dawes 8b005f5b1d make inline_gc regparm(3) and cleaned up %call-gc stack alignment 2009-09-24 21:45:56 +01:00
Phil Dawes eb2a376a06 fix c_to_factor stack alignment 2009-09-24 20:18:42 +01:00
Phil Dawes 0583e849af fix lazy_jit_compile to not abuse stack on x86.32 2009-09-24 19:59:37 +01:00
Slava Pestov 939b175afa vm/cpu-x86.32.S: formatting fix 2009-09-24 06:25:01 -05:00
Slava Pestov 2ea0b9da1d Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-24 04:31:55 -05:00
Slava Pestov b5773dc1da vm: Fix potential crash in <word> primitive if profiling is enabled 2009-09-24 04:31:11 -05:00
Phil Dawes 4adcdccd16 renamed myvm member variable to parent_vm 2009-09-24 08:16:57 +01:00
Phil Dawes 1c5329cc2e renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes 0022f5c45f bignum indentation and macro cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes 1c2292d36a bignum indentation cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes 2cfb1b6f02 removed a bunch of superflous blank lines 2009-09-24 08:02:14 +01:00
Phil Dawes 134a359353 misc cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes 911471c411 removed superflous whitspace lines 2009-09-24 08:02:14 +01:00
Phil Dawes 3da9b64c73 renamed vmprim_ to primitive_ 2009-09-24 08:02:13 +01:00
Slava Pestov e04fba6bc7 Fix conflict 2009-09-20 23:18:07 -05:00
Slava Pestov 66871995c9 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Phil Dawes 8662e9e9e4 put mach call_fault_handler in the vm 2009-09-16 08:22:18 +01:00
Phil Dawes 82f0c90719 fpe signals working on unix again 2009-09-16 08:22:18 +01:00
Phil Dawes fa929d9cd8 imul clobbers arg2 on x86.64, so stashing vm ptr on the stack 2009-09-16 08:22:18 +01:00
Phil Dawes 3db680547a Added -DREENTRANT option to Makefile
Also renamed FACTOR_MULTITHREADED to FACTOR_REENTRANT
2009-09-16 08:22:18 +01:00
Phil Dawes f7584cd826 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 30b8b98446 small x86 asm cleanup 2009-09-16 08:22:17 +01:00
Phil Dawes a73886942a vm passed in primitives as arg0 for x86.64 2009-09-16 08:22:17 +01:00
Phil Dawes dd1cf25093 Added vm passing to inline_cache_miss x86.32 asm 2009-09-16 08:22:17 +01:00
Phil Dawes 644adc42b6 Don't return functions returning void. -O3 seems to optimize them out! 2009-09-16 08:22:17 +01:00
Phil Dawes 57ffdae57f asm math functions pass vm ptr to overflow function in 3rd arg (X86.32) 2009-09-16 08:22:17 +01:00
Phil Dawes 04693fe0c6 fixed bug where vm_char being treated as 1byte type 2009-09-16 08:22:17 +01:00
Phil Dawes 897288123b Added data constructor to initialize bools in factorvmdata struct 2009-09-16 08:22:17 +01:00
Phil Dawes 12412303a5 Added vm ptr to math overflow functions 2009-09-16 08:22:17 +01:00
Phil Dawes 442f6ef3f1 moved signal handlers into vm object 2009-09-16 08:22:16 +01:00
Phil Dawes 57aff71466 removed debugging 2009-09-16 08:22:16 +01:00
Phil Dawes c1212b1326 Split data out into separate vm-data struct 2009-09-16 08:22:16 +01:00
Phil Dawes a89a0826ee Dev checkpoint 2009-09-16 08:20:51 +01:00
Phil Dawes 277186ea62 Switched on singleton flag 2009-09-16 08:20:51 +01:00
Phil Dawes f955e36a56 removed vm ptr from mach_signal and some other places 2009-09-16 08:20:51 +01:00
Phil Dawes ea02bfe078 removed vm ptr from os-macosx.mm 2009-09-16 08:20:51 +01:00
Phil Dawes 1f4abd57b8 added FACTOR_MULTITHREADED_TLS option 2009-09-16 08:20:51 +01:00
Phil Dawes a8f233c055 thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes d76af35ecf added threadsafe defines. Dunno if they do much 2009-09-16 08:20:51 +01:00
Phil Dawes bd9ae0bc93 fixed stupid signal handler bug 2009-09-16 08:20:50 +01:00
Phil Dawes c623658aa2 added vm-ptr primitive 2009-09-16 08:20:50 +01:00
Phil Dawes 898f5be1e0 quick test vocab for mt stuff 2009-09-16 08:20:50 +01:00
Phil Dawes 05d17492ed cleaned up code a bit, added multithreaded mode flags 2009-09-16 08:20:50 +01:00
Phil Dawes 9b013faed4 removed vm singleton usage from unix stuff 2009-09-16 08:20:49 +01:00
Phil Dawes 1e93c766a1 moved the thread stuff around a bit 2009-09-16 08:20:49 +01:00
Phil Dawes f371bbbc2d removed vm ptrs from unix code (still in signal handlers tho) 2009-09-16 08:20:10 +01:00
Phil Dawes f60b1e1dd0 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 26586c24f0 added vm passing to some alien/boxing functions and added some vm asserts 2009-09-16 08:20:10 +01:00
Phil Dawes d7e2f770c0 vm ptr passed to lazy_jit_compile on x86.64 2009-09-16 08:20:10 +01:00
Phil Dawes 90119f3dd7 overflow functions now retrieving their vm ptr from above ds stack 2009-09-16 08:20:09 +01:00
Phil Dawes 44d2d8672e Primitives now pass vm ptr on 64bit x86 2009-09-16 08:20:09 +01:00
Phil Dawes 939426dcf5 fixed up linux64 bootstrap (single threaded) 2009-09-16 08:20:09 +01:00
Phil Dawes ad517cb39b win32 main starts factorvm in new thread 2009-09-16 08:20:09 +01:00
Phil Dawes 8008545b8e Start windows factor in a spawned thread (for testing) 2009-09-16 08:20:09 +01:00
Phil Dawes 41345583a5 added lookup_vm and removed last usage of vm from windows code 2009-09-16 08:20:09 +01:00
Phil Dawes c6d83111e8 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 c12eccb581 print_native_string doesn't need singleton ptr 2009-09-16 08:17:27 +01:00
Phil Dawes b84c10e33c cleaning up stray vm singleton usage 2009-09-16 08:17:27 +01:00
Phil Dawes 28665b5287 removed most global functions from factor.cpp 2009-09-16 08:17:27 +01:00
Phil Dawes 38eb7a23f1 removed some error vm-> functions 2009-09-16 08:17:27 +01:00
Phil Dawes bbdcabae9c removed some vm-> forwarding functions 2009-09-16 08:17:26 +01:00
Phil Dawes fcfd971108 removed some vm-> pointers 2009-09-16 08:17:26 +01:00
Phil Dawes 6e5ddc0c33 vm pointer passed to nest_stacks and unnest_stacks (win32) 2009-09-16 08:17:26 +01:00
Phil Dawes b629429086 Dev checkpoint 2009-09-16 08:17:26 +01:00
Phil Dawes a6e1e39e23 passing ptr in boolean boxing and save_callstack_bottom 2009-09-16 08:17:26 +01:00
Phil Dawes 915c765ecb Added basic win32 start-thread support 2009-09-16 08:17:26 +01:00
Phil Dawes ce44511071 vm passed in box_alien and alien_offset (win32) 2009-09-16 08:16:33 +01:00
Phil Dawes 4d6294693d removed all vm-> singleton accesses from inlineimpls 2009-09-16 08:16:33 +01:00
Phil Dawes 49e3efddfb converted box_* float functions to use vm (x86 win32) 2009-09-16 08:16:33 +01:00
Phil Dawes 1f642ab303 converted box_* integer functions to use vm (x86 windows) 2009-09-16 08:16:33 +01:00
Phil Dawes e50ab40c78 converted box_* integer functions to use vm (x86 windows) 2009-09-16 08:16:33 +01:00
Phil Dawes 780415b159 added code to pass vm ptr to some unboxers 2009-09-16 08:16:32 +01:00
Phil Dawes cefc0f7e08 moved gc_locals accessors into vm 2009-09-16 08:16:32 +01:00
Phil Dawes c0eefe9ed3 turned errno() methods back into functions since they should already be thread safe 2009-09-16 08:16:32 +01:00
Phil Dawes 2a1a4ccf27 fixed up getenv compiler intrinsic to use vm struct userenv 2009-09-16 08:16:32 +01:00
Phil Dawes 4d98fe0157 added padding to align userenv to an 8byte boundary 2009-09-16 08:16:32 +01:00
Phil Dawes 48d385e5d9 moved userenv into vm in C code (DOESNT BOOTSTRAP YET!!!) 2009-09-16 08:16:32 +01:00
Phil Dawes d4f602c9e7 got debug compiles working again 2009-09-16 08:16:32 +01:00
Phil Dawes 7de311c0da moved stack_traces_p into the vm 2009-09-16 08:16:31 +01:00
Phil Dawes cb3df86491 moved cards_offset and decks_offset into vm struct (for x86) 2009-09-16 08:16:31 +01:00
Phil Dawes 74e99cb6fb moved allot_markers_offset variable into vm struct 2009-09-16 08:16:31 +01:00
Phil Dawes fd72e140d2 nursery global variable moved into vm 2009-09-16 08:16:31 +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 53aa98902e throw_impl now forwards the vm ptr 2009-09-16 08:16:30 +01:00
Phil Dawes 60d0300876 passing vm ptr to lazy_jit_compile mostly working 2009-09-16 08:16:30 +01:00
Phil Dawes 1fda8af73b 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 df37e010d4 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 b70e60eaea added VM relocation type 2009-09-16 08:16:30 +01:00
Phil Dawes c290eb67ab moved os-windows-nt functions into the vm 2009-09-16 08:16:30 +01:00
Phil Dawes 9ec000c570 Dev checkpoint 2009-09-16 08:16:29 +01:00
Phil Dawes 1431ae806f moved some os-windows functions into the vm 2009-09-16 08:16:29 +01:00
Phil Dawes 3fef06d21d moved align_page into vm 2009-09-16 08:16:29 +01:00
Phil Dawes fa34bc858c Dev checkpoint 2009-09-16 08:16:29 +01:00
Phil Dawes 145c90c7f4 got os-macosx.mm to compile 2009-09-16 08:16:29 +01:00
Phil Dawes 5f7e6801b0 Fixed typo from upstream 2009-09-16 08:16:29 +01:00
Phil Dawes 11bde92057 removed some global functions from errors.cpp 2009-09-16 08:16:29 +01:00
Phil Dawes 27a50886d7 removed some global functions from utilities.cpp 2009-09-16 08:16:29 +01:00
Phil Dawes 23a5207e90 removed some global functions from inline_cache.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 6727a19ba8 removed some global functions from dispatch.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 3ea6e4c0bc removed some global functions from quotations.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 16db3255e7 removed some global functions from alien.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 0e49c2848c removed some global functions from callstack.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 4bdb4853ca removed some global functions from image.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes ff3b226908 removed some global functions from io.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes c4b2468cb2 removed some global functions from math.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes 7dc4bcb9b2 removed global functions from words.cpp 2009-09-16 08:16:28 +01:00
Phil Dawes b1783f2db4 removed global functions from byte_arrays.cpp and tuples.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes af1431e364 removed global functions from strings.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes f6fcb6d1ec removed global functions from arrays.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes f436d4ccff removed global functions from debug.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes abee922604 removed global functions from code_block.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes caef18de95 removed global functions from bignum.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 01ae514146 removed global functions from profiler 2009-09-16 08:16:27 +01:00
Phil Dawes 4f273e2020 removed some global functions from code_heap 2009-09-16 08:16:27 +01:00
Phil Dawes 31a03eab11 removed global functions from code_gc 2009-09-16 08:16:26 +01:00
Phil Dawes 04094f3b64 removed global functions from data_gc 2009-09-16 08:16:26 +01:00
Phil Dawes e65a574a47 removed non-primitive global functions from data_heap 2009-09-16 08:16:26 +01:00
Phil Dawes fc9558d954 Dev checkpoint 2009-09-16 08:16:26 +01:00
Phil Dawes 537402274e vm ptr passed to untag_check 2009-09-16 08:16:26 +01:00
Phil Dawes 967bfa63f4 moved tagged template code back into tagged.hpp header 2009-09-16 08:16:26 +01:00
Phil Dawes 9e4b483993 split the moved inline stuff into separate header file 2009-09-16 08:16:26 +01:00
Phil Dawes 5600f969b4 moved tagged.hpp templates to vm.hpp 2009-09-16 08:16:26 +01:00
Phil Dawes 1c02e9eda0 moved more math.hpp inline functions to vm 2009-09-16 08:16:25 +01:00
Phil Dawes 737e69de08 removed stub function from run 2009-09-16 08:16:25 +01:00
Phil Dawes c045a2f9d5 removed some stub functions from contexts 2009-09-16 08:16:25 +01:00
Phil Dawes e80c9f90d6 updated function ptr calls (iterators etc..) to take a vm parameter 2009-09-16 08:16:25 +01:00
Phil Dawes 03ecc58bbf Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes d2fd7bd3e1 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes 23deff22fe Dev checkpoint 2009-09-16 08:16:25 +01:00