Commit Graph

961 Commits (f47b72d98b01163f7bd28c79ba81a96d63ebc269)

Author SHA1 Message Date
U-SLAVA-DFB8FF805\Slava 57b98e2c55 vm: fix compilation on Windows 2009-09-26 02:56:55 -05:00
Slava Pestov 6578bd0533 vm: fix windows compilation (untested) 2009-09-26 02:41:01 -05:00
Slava Pestov fa598be667 Fix GC root safety in word-xt primitive 2009-09-25 21:42:21 -05:00
Slava Pestov f846afd661 vm: remove safe_malloc now that everything uses constructors instead 2009-09-25 21:22:05 -05:00
Slava Pestov f81c8549f4 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 c046ff4b23 vm: make heap data-type object-oriented 2009-09-25 20:32:00 -05:00
Slava Pestov d017a53227 Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-25 19:04:19 -05:00
Slava Pestov 11d716e8f7 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-25 18:23:36 -05:00
Slava Pestov b14c683b32 vm: ignore 'declare' calls in non-optimizing compiler 2009-09-25 18:08:21 -05:00
Slava Pestov 602776c885 vm: clean up os-unix.cpp 2009-09-25 18:08:00 -05:00
Phil Dawes 6b7717bf37 forwarding functions replaced with PRIMITIVE_FORWARD() macro 2009-09-25 20:43:01 +01:00
Phil Dawes e26bbbe9a0 removed VM_ASM_API_OVERFLOW (VM_ASM_API now regparm(3)) 2009-09-25 20:33:38 +01:00
Phil Dawes 4552e02624 made inline_gc a VM_C_API function 2009-09-25 18:29:07 +01:00
Phil Dawes f5c70d4ad7 make inline_gc regparm(3) and cleaned up %call-gc stack alignment 2009-09-24 21:45:56 +01:00
Phil Dawes 8173ef4710 fix c_to_factor stack alignment 2009-09-24 20:18:42 +01:00
Phil Dawes 6bb647d308 fix lazy_jit_compile to not abuse stack on x86.32 2009-09-24 19:59:37 +01:00
Slava Pestov 67a8bb7370 vm/cpu-x86.32.S: formatting fix 2009-09-24 06:25:01 -05:00
Slava Pestov cb497f009b Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-24 04:31:55 -05:00
Slava Pestov 576e725662 vm: Fix potential crash in <word> primitive if profiling is enabled 2009-09-24 04:31:11 -05:00
Phil Dawes 57840562f5 renamed myvm member variable to parent_vm 2009-09-24 08:16:57 +01:00
Phil Dawes 83b0769eef renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes 3b8292db8e bignum indentation and macro cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes 35b2657f53 bignum indentation cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes e566656e46 removed a bunch of superflous blank lines 2009-09-24 08:02:14 +01:00
Phil Dawes 46bab62689 misc cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes d25fe552ab removed superflous whitspace lines 2009-09-24 08:02:14 +01:00
Phil Dawes e3ac531fdb renamed vmprim_ to primitive_ 2009-09-24 08:02:13 +01:00
Slava Pestov 9d90bdd439 Fix conflict 2009-09-20 23:18:07 -05:00
Slava Pestov ea44ea3522 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Phil Dawes d2afb4b344 put mach call_fault_handler in the vm 2009-09-16 08:22:18 +01:00
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
Phil Dawes 0097e76a82 moved code_block functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes fdabc9a5d8 moved code_gc functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 062c56f94b moved io functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 10e5dc9b3c moved math functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 552b9ecd81 Dev checkpoint 2009-09-16 08:16:20 +01:00
Phil Dawes 4f4c53c822 moved words functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes dbbc9bb2b1 added tuples fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes fa46b90197 added byte_arrays fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 25d0bb756f added boolean fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 0f2a89cfbd moved strings fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 72098c5f6a moved arrays fns into vm 2009-09-16 08:16:19 +01:00
Phil Dawes 13e0ae6d97 moved debug functions into vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes 64c2d81306 moved data_gc fns over to vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes 9f6f7adaba moved data_heap fns to vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes 1a87f3bb5f moved bignum functions to vm 2009-09-16 08:16:18 +01:00
Phil Dawes a6fc19f4b0 Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes 149af514e6 Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes 8426e2f877 Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes 10901e7c37 moved errors.cpp functions to vm 2009-09-16 08:16:18 +01:00
Phil Dawes aa01f6b748 moved profiling fns into vm 2009-09-16 08:16:18 +01:00
Phil Dawes 110f925245 move functions from run.cpp into vm 2009-09-16 08:16:18 +01:00
Phil Dawes 88084a66ac moved contexts functions into vm 2009-09-16 08:16:18 +01:00
Phil Dawes adf2529451 added vm singleton 2009-09-16 08:16:18 +01:00
Phil Dawes d8ea82d8e8 added stub PRIMITIVE_GETVM macro 2009-09-16 08:16:17 +01:00
Phil Dawes caefc7aff9 Empty vm struct 2009-09-16 08:16:17 +01:00
Slava Pestov 3551294fd4 vm: update Config.netbsd for NetBSD 5.0 2009-09-15 00:22:19 -05:00
Joe Groff 77f0fbf497 missed a few PPC status bits that needed clearing 2009-09-14 15:17:36 -05:00
Joe Groff 89ce13d4d4 linux 32 typo 2009-09-14 13:21:46 -05:00
Joe Groff 32be55fa68 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-14 12:30:24 -05:00
Joe Groff b77d9d2960 more secret sauce to tease mxcsr out of linux-x86.32 ucontext 2009-09-14 12:30:10 -05:00
Joe Groff c1bc5f22e4 use secret sauce to clear MXCSR in win32 context, and handle secret STATUS_FLOAT_MULTIPLE_* SEH codes raised by SSE traps 2009-09-14 12:02:02 -05:00
Joe Groff 578c977a7e more freebsd compilation fixes 2009-09-14 09:56:38 -05:00
Joe Groff 6ae07e8a08 fix compilation on linux 32 2009-09-14 09:48:32 -05:00
Slava Pestov 448b89f585 vm: More indentation fixes 2009-09-14 03:14:48 -05:00
Slava Pestov 83c992173e vm: fix indentation in Joe's changes 2009-09-14 03:09:03 -05:00
Joe Groff 198874aea8 fix compilation on freebsd 2009-09-14 00:00:01 -05:00
Joe Groff fb43ae2daf save the FP status out of the signal context and use it as part of the fp trap factor exception. clear the FP status before continuing after an exception 2009-09-13 23:39:12 -05:00
Joe Groff 38ec77f9bd Merge branch 'master' of git://factorcode.org/git/factor 2009-09-13 14:42:28 -05:00
Joe Groff b469dc29fa save vector registers, save control register, and enable denormals before calling factor in powerpc c_to_factor() 2009-09-13 13:18:24 -05:00
Slava Pestov d14f227905 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-13 00:09:09 -05:00
Slava Pestov 32b95c2cdf math: add unordered comparison operators u< u<= u> u>= which behave exactly like < <= > >= except no floating point exceptions are set if one or both inputs are NaNs; also add efficient intrinsic for unordered? predicate, and fix propagation type functions for abs, absq, and bitnot 2009-09-12 22:20:13 -05:00
Joe Groff 53e23de104 set altivec denormal flag when with-denormal-mode is used 2009-09-12 20:39:41 -05:00
Slava Pestov 9ccf5811b3 vm: fix fp_trap_error() so that it can work properly in signal handlers 2009-09-12 18:15:16 -05:00
Slava Pestov a456f79f9c cpu-x86: clear the x87 stack when rewinding; fixes math.floats.env failures on Linux 2009-09-12 16:59:30 -04:00
Slava Pestov 13464d9403 Fix debug build 2009-09-11 20:33:38 -05:00
Joe Groff 6fa4a6a23b handle floating-point exceptions on windows 2009-09-10 16:10:25 -05:00
Joe Groff c2cd1714fa fix set_x87_env assembly code for x86.32 2009-09-08 23:15:49 -05:00
Joe Groff 93f5209213 fix ppc assembler syntax 2009-09-08 21:01:33 -05:00
Joe Groff 2ad9459b85 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 15:37:32 -05:00
Joe Groff 0ec342a1c5 factor out x86 and ppc backends for math.floats.env; update both x87 and SSE state on x86 2009-09-08 15:36:53 -05:00
Slava Pestov 81c4670619 VM: use an std::vector instead of a fixed-size buffer for GC roots 2009-09-08 14:21:09 -05:00
Slava Pestov 109cde9bd6 vm/cpu-x86.S: don't detect SSSE3, SSE4.1 or SSE4.2 yet 2009-09-08 14:06:19 -05:00
Joe Groff 7ba71a524e Send FP trap signals to Factor as a different vm-error type 2009-09-06 08:44:25 -05:00
Joe Groff 36ec53a968 math.floats.env vocab with words to control the floating-point environment
add some functions to the VM to grab and set the fpu control register
2009-09-05 19:48:13 -05:00
Slava Pestov 906a0d212a Detect SSE version and enable the correct set of SIMD intrinsics 2009-09-03 03:28:38 -05:00
Joe Groff 07ab5f006d on OS X, rather than define _XOPEN_SOURCE, use the non-deprecated sys/ucontext.h header instead 2009-08-26 16:44:25 -05:00
Joe Groff 2a56ba0d2d add -D_XOPEN_SOURCE flag to suppress ucontext deprecation errors on snow leopard. add -m32 flag when compiling 32-bit because snow leopard gcc defaults to x86_64 2009-08-26 16:29:55 -05:00
Philipp Brüschweiler 230061783a misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644 2009-08-10 21:33:07 +02:00
Slava Pestov 46688f960d image.cpp: don't try to make code heap bigger than p->code_size since on PPC this will cause crashes if the image has a code heap of exactly 32Mb 2009-07-31 23:23:29 -05:00
Slava Pestov 91e5c05f40 debug.cpp: fep now prints return addresses in call stack dump 2009-07-29 19:28:58 -05:00
Slava Pestov 3fb4fc1bde Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases 2009-07-16 23:50:48 -05:00
Slava Pestov baff251d1e alien.libraries: add remove-library word, fix dlclose and dll-valid? VM primitives 2009-07-09 06:51:31 -05:00
Slava Pestov 2d231f066a GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
Slava Pestov 9e987e8642 Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
Slava Pestov b389dcf441 Redo compiler.codegen.fixup and get %dispatch to work 2009-06-01 02:32:36 -05:00
Slava Pestov fc152ef210 Various improvements aimed at getting local optimization regressions fixed:
- Rename _gc to ##gc
- Absolute labels are now supported
- Generate _dispatch-label
2009-05-31 23:28:08 -05:00
Slava Pestov faaccceac6 Fix rdtsc on Windows 2009-05-31 15:16:40 -05:00
Slava Pestov 617e57fc75 cpu.x86.features: add RDTSC support. This is a new vocabulary with words: sse2? instruction-counter count-instructions 2009-05-31 15:02:14 -05:00
Slava Pestov 6b2192bde0 Fix compile error on GCC 4.x 2009-05-20 20:01:21 -04:00
Slava Pestov 610b276c86 callstack>array primitive was not GC safe 2009-05-20 18:52:21 -05:00