Commit Graph

868 Commits (1f97169c62e5c6c013c4950d4fb40728cd080ec7)

Author SHA1 Message Date
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
Phil Dawes 50875c77f3 Dev checkpoint 2009-09-16 08:16:25 +01:00
Phil Dawes 6c566717ba moved global state from math into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 4188b0fde3 moved global state from inline_cache into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 77db2b7821 moved global state from dispatch into vm 2009-09-16 08:16:24 +01:00
Phil Dawes d9e354654a moved global state from debug into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 7852a5efad moved global state from code_heap into vm 2009-09-16 08:16:24 +01:00
Phil Dawes 67a7e3ebf7 moved global state from data_heap into vm 2009-09-16 08:16:24 +01:00
Phil Dawes e974809337 moved global state from data_gc into vm 2009-09-16 08:16:24 +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
Phil Dawes 9e8538d1ca reordered master to untangle dependency chain a bit 2009-09-16 08:16:24 +01:00
Phil Dawes 31377b7ae4 moved callstack.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 2bf80c0bf6 moved math.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes f2cb6e6f6f moved byte_arrays.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 5a9ff7fba9 moved arrays.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 4ba0f01c0a moved generic_arrays inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 6d1ee34188 moved data_gc and local_roots inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 5c89a644c5 moved write_barrier inline function impls to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 09f063d6fc moved callstack.hpp functions to vm 2009-09-16 08:16:23 +01:00
Phil Dawes f3e67817cc moved math.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 7d097b387c moved arrays.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 83a73b9083 moved generic_array.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes cdc7250d90 moved write_barrier functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 95363d7744 moved data_gc templates and inline functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes 05f4fcbf1c moved reallot_array into vm 2009-09-16 08:16:22 +01:00
Phil Dawes f8d56f69c1 added vm member to gc_bignum 2009-09-16 08:16:22 +01:00
Phil Dawes ebbf2151fe added vm member to gc_root and growable arrays 2009-09-16 08:16:22 +01:00
Phil Dawes 9282824ccb added vm member to jit classes 2009-09-16 08:16:21 +01:00
Phil Dawes 16c3591d11 moved local roots state to vm, shuffled includes around 2009-09-16 08:16:21 +01:00
Phil Dawes cddf989ac3 factorvm initialised globally 2009-09-16 08:16:21 +01:00
Phil Dawes eefa976e6f moved utilities.cpp functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes b38191ae0e moved factor.cpp functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 502f97dc69 moved inline_cache functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 35a62b0453 moved dispatch functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes fd374222bf moved quotations functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 9ffb1e34a6 moved alien functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 5c261e4590 moved image functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes d02dcfd8f2 moved code_heap functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 5f66fd18e9 moved code_block functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 21b7856402 moved code_gc functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes e8cab52116 moved io functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes eea9b4bdb4 moved math functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes af1aa44a1a Dev checkpoint 2009-09-16 08:16:20 +01:00
Phil Dawes 2ffcd683e1 moved words functions to vm 2009-09-16 08:16:20 +01:00
Phil Dawes 81d2fbb906 added tuples fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 5a26f2c095 added byte_arrays fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 3db22680ac added boolean fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 536820b1a6 moved strings fns to vm 2009-09-16 08:16:19 +01:00
Phil Dawes 64474fa6f9 moved arrays fns into vm 2009-09-16 08:16:19 +01:00
Phil Dawes 4b02f39ce7 moved debug functions into vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes 8671b2897a moved data_gc fns over to vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes 9e1b45f768 moved data_heap fns to vm struct 2009-09-16 08:16:19 +01:00
Phil Dawes b73b540290 moved bignum functions to vm 2009-09-16 08:16:18 +01:00
Phil Dawes 2dd9e92778 Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes ef53b8cf6a Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes ad7765b71a Dev checkpoint 2009-09-16 08:16:18 +01:00
Phil Dawes 1db06cdf53 moved errors.cpp functions to vm 2009-09-16 08:16:18 +01:00
Phil Dawes 4cc2a5f844 moved profiling fns into vm 2009-09-16 08:16:18 +01:00
Phil Dawes 7e34866254 move functions from run.cpp into vm 2009-09-16 08:16:18 +01:00
Phil Dawes 7200c6a0ae moved contexts functions into vm 2009-09-16 08:16:18 +01:00
Phil Dawes 99d01a3a88 added vm singleton 2009-09-16 08:16:18 +01:00
Phil Dawes c627ed7a22 added stub PRIMITIVE_GETVM macro 2009-09-16 08:16:17 +01:00
Phil Dawes c58b0ba73c Empty vm struct 2009-09-16 08:16:17 +01:00
Slava Pestov 85077cd27b vm: update Config.netbsd for NetBSD 5.0 2009-09-15 00:22:19 -05:00
Joe Groff eadf1bc9d5 missed a few PPC status bits that needed clearing 2009-09-14 15:17:36 -05:00
Joe Groff 0c690a62a1 linux 32 typo 2009-09-14 13:21:46 -05:00
Joe Groff bbea60809d Merge branch 'master' of git://factorcode.org/git/factor 2009-09-14 12:30:24 -05:00
Joe Groff 7983c0ba47 more secret sauce to tease mxcsr out of linux-x86.32 ucontext 2009-09-14 12:30:10 -05:00
Joe Groff 082783d799 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 ed1a67c26e more freebsd compilation fixes 2009-09-14 09:56:38 -05:00
Joe Groff a84086e39a fix compilation on linux 32 2009-09-14 09:48:32 -05:00
Slava Pestov 3db631716f vm: More indentation fixes 2009-09-14 03:14:48 -05:00
Slava Pestov 78e143b13c vm: fix indentation in Joe's changes 2009-09-14 03:09:03 -05:00
Joe Groff abb3c71340 fix compilation on freebsd 2009-09-14 00:00:01 -05:00
Joe Groff 0284a4b6f8 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 7d875f493a Merge branch 'master' of git://factorcode.org/git/factor 2009-09-13 14:42:28 -05:00
Joe Groff 5fa31b5dea 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 b6e3336e02 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-13 00:09:09 -05:00
Slava Pestov 427bfb4ab8 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 1a19221159 set altivec denormal flag when with-denormal-mode is used 2009-09-12 20:39:41 -05:00
Slava Pestov 4c0bd2e77d vm: fix fp_trap_error() so that it can work properly in signal handlers 2009-09-12 18:15:16 -05:00
Slava Pestov af85e17366 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 2e88ff775a Fix debug build 2009-09-11 20:33:38 -05:00
Joe Groff 0a116c9198 handle floating-point exceptions on windows 2009-09-10 16:10:25 -05:00
Joe Groff 51df8d70c4 fix set_x87_env assembly code for x86.32 2009-09-08 23:15:49 -05:00
Joe Groff 131fa2405d fix ppc assembler syntax 2009-09-08 21:01:33 -05:00
Joe Groff e1841cc8d4 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 15:37:32 -05:00
Joe Groff 4f43af5b7d 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 bd447dca7b VM: use an std::vector instead of a fixed-size buffer for GC roots 2009-09-08 14:21:09 -05:00
Slava Pestov 0002e58c58 vm/cpu-x86.S: don't detect SSSE3, SSE4.1 or SSE4.2 yet 2009-09-08 14:06:19 -05:00
Joe Groff 0b6f017840 Send FP trap signals to Factor as a different vm-error type 2009-09-06 08:44:25 -05:00
Joe Groff 327c9eb7b8 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 f811208271 Detect SSE version and enable the correct set of SIMD intrinsics 2009-09-03 03:28:38 -05:00
Joe Groff 6d65bc593f 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 a1ffc727b1 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 18240b0219 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 4490fc6b81 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 0fc29887f5 debug.cpp: fep now prints return addresses in call stack dump 2009-07-29 19:28:58 -05:00
Slava Pestov 39a70db831 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 a82ee418d2 alien.libraries: add remove-library word, fix dlclose and dll-valid? VM primitives 2009-07-09 06:51:31 -05:00
Slava Pestov 7aca076408 GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
Slava Pestov 3de85158de Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
Slava Pestov 096803e58f Redo compiler.codegen.fixup and get %dispatch to work 2009-06-01 02:32:36 -05:00
Slava Pestov 64114947d2 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 ac0bd37a6b Fix rdtsc on Windows 2009-05-31 15:16:40 -05:00
Slava Pestov e2b8b04d15 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 2faaa66599 Fix compile error on GCC 4.x 2009-05-20 20:01:21 -04:00
Slava Pestov 9bea42405a callstack>array primitive was not GC safe 2009-05-20 18:52:21 -05:00
Slava Pestov c4162971e0 callstack>array was keeping an uninitialized array around across potential GCs; add more assertions 2009-05-17 18:18:07 -05:00
Slava Pestov 2bcff4ac5c os-linux.cpp: inotify wrappers should be VM_C_API 2009-05-13 03:49:51 -05:00
Slava Pestov 7d02d8b9d7 More VM cleanups 2009-05-13 01:08:16 -05:00
Slava Pestov d2c138150b Fix FEP if there are too many words in the image, clean up some VM code 2009-05-13 00:58:54 -05:00
Slava Pestov 92966f1423 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-12 16:23:26 -05:00
Slava Pestov 462a9a4a19 Link VM with OpenSSL on NetBSD otherwise it can't find some symbols 2009-05-12 16:23:09 -05:00
Slava Pestov 05146c6907 Remove compiled slot from quotations since its not needed 2009-05-12 03:09:15 -05:00
Slava Pestov 0b7eee6e61 Slightly more space-efficient dispatch table representation 2009-05-09 20:24:32 -05:00
Slava Pestov 3db1814abe Fix compile error in cpu-ppc.hpp 2009-05-08 17:41:22 -05:00
Slava Pestov cdd470a945 Fix Windows compile error 2009-05-08 15:23:44 -05:00
Slava Pestov b470c4f92e Need to include unistd.h 2009-05-08 15:15:10 -05:00
Slava Pestov 92ae2f7e71 VM cleanup: replace some #defines with constants and inline functions 2009-05-08 15:05:55 -05:00
Slava Pestov cb9d50887c Update PowerPC %jump and %dispatch-label, and add PIC-related functions to cpu-ppc.hpp 2009-05-07 19:47:38 -05:00
Slava Pestov 9b419aa0b1 Count megamorphic cache hits 2009-05-07 14:26:08 -05:00
Slava Pestov eb515af599 Code cleanups 2009-05-07 12:33:31 -05:00
Slava Pestov 74094142fe Fix tail call PICs on x86-64 2009-05-06 22:44:30 -05:00
Slava Pestov 4f0a1b024e Clean up bootstrap.image, and implement new calling convention for tail calls; tail call sites now have PICs 2009-05-06 22:04:01 -05:00
Slava Pestov c1e25f3b43 JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends 2009-05-06 20:04:49 -05:00
Slava Pestov d3b85c14c9 Working on inline caching for tail call sites 2009-05-06 19:22:22 -05:00
Slava Pestov 5e90662337 Working on PowerPC backend 2009-05-06 15:39:03 -05:00
Slava Pestov bb246d5afc Remove some unused constants and update an obsolete comment 2009-05-06 14:57:17 -05:00
Slava Pestov 0ca1d013f8 Add new RC_ABSOLUTE_PPC_2 relocation type 2009-05-05 20:56:23 -05:00
Slava Pestov c5d3bbd5b6 Fix bool type; its actually 1 byte not 4 in structs. Bug reported by jedahu 2009-05-05 18:37:40 -05:00
Slava Pestov 79c87e86e7 Fix VM compile error 2009-05-05 16:19:13 -05:00
Slava Pestov 33d93e48ef Fix VM code to export the right symbols on Windows 2009-05-05 15:55:41 -05:00
Slava Pestov 3acadbd23f Remove debug messages from VM 2009-05-05 14:27:22 -05:00
Slava Pestov 7dfa61c098 VM now compiles with GCC 3.4 on Windows 2009-05-05 14:17:02 -05:00
unknown fce5f6eb41 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-05 13:03:43 -05:00
unknown 2e55b1af73 Fixing compile errors on Windows 2009-05-05 13:03:24 -05:00
Slava Pestov ec943c2299 Change (void) to () 2009-05-05 11:33:35 -05:00
Slava Pestov bec40fd54b Store forwarding table off to the side instead of in the code block; saves one cell per code block 2009-05-05 11:07:20 -05:00
Slava Pestov 4764f1c676 Fix botched replace all in VM source, clean up image saving code, and fix save-image-and-exit to actually call (save-image-and-exit) instead of (save-image) 2009-05-05 10:29:22 -05:00
Slava Pestov 1e2561f863 Make walker work better with call( and breakpoints which are nested inside combinators 2009-05-05 09:12:32 -05:00
Slava Pestov 6729e70895 Some VM fixes 2009-05-04 15:11:31 -05:00
sheeple 60e8c40fcf use eg++ on openbsd 2009-05-04 11:48:46 -05:00
Slava Pestov c68e05d3d8 Fix some test failures 2009-05-04 09:44:26 -05:00
Slava Pestov 2b15f7477d Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 08:31:56 -05:00
Slava Pestov 9121f713c6 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 09:08:46 -04:00
Slava Pestov 576fe95eb8 Fix problem caused by different behavior of GCC 4.0 -vs- 4.3 2009-05-04 09:08:33 -04:00
Samuel Tardieu c830bd7ee2 Make the primitives array const 2009-05-04 14:45:15 +02:00
Samuel Tardieu af2c433d6b Do not lower primitives to "void*" to get better compiler checking 2009-05-04 14:32:09 +02:00
Slava Pestov 4682c0b3b1 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 07:19:40 -05:00
Slava Pestov c22a22bae1 Config.freebsd fix 2009-05-04 07:19:32 -05:00
Slava Pestov 0d62ce7802 Attempt to fix gcc 4.5.0 compile error 2009-05-04 07:11:00 -05:00
Slava Pestov 7e75312b60 Fixing some build issues on Linux with GCC 4.3 2009-05-04 08:00:06 -04:00
Slava Pestov 609121ff18 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 06:43:36 -05:00
Slava Pestov 087483eea2 NetBSD build fix 2009-05-04 06:43:20 -05:00
Slava Pestov 72691cae07 Cleanups 2009-05-04 05:07:14 -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
Slava Pestov 7820d88271 Various VM cleanups, new approach for bignum GC root registration 2009-05-03 05:48:03 -05:00
Slava Pestov dfaa338af7 Clean up untag_* and tag_* inline functions in favor of more idiomatic C++ 2009-05-02 20:47:29 -05:00
Slava Pestov 938d1a4270 Move vmpp to vm 2009-05-02 20:37:18 -05:00
Slava Pestov b2cb41f9ae Fix VM compilation on Windows 2009-05-01 02:01:43 -05:00
slava fd4b4a4962 Fix some compiler warnings 2009-04-30 23:50:53 -04:00
Slava Pestov d93514d47d Merge branch 'master' of git://factorcode.org/git/factor 2009-04-30 21:13:36 -05:00
Slava Pestov b20ed595c4 Remove obsolete comment 2009-04-30 19:47:08 -05:00
Slava Pestov 742d574162 Non-optimizing compiler doesn't need to optimize 'dispatch' primitive anymore since its rarely used 2009-04-30 19:42:08 -05:00
Slava Pestov 7be231f6f8 Clean up code duplication in quotations.c 2009-04-30 19:07:13 -05:00
Slava Pestov f9ec0a07c5 Fix PICs for x86-64 2009-04-30 18:00:49 -05:00
Doug Coleman 674bb9a4d5 remove error_message from windows vm 2009-04-30 09:36:01 -05:00
Slava Pestov d6444e742c Fix comment 2009-04-30 07:06:23 -05:00
Slava Pestov 5bc63fc237 At the end of a compilation unit, all PICs become dead so add them to the free list immediately instead of having them waste space until the next GC.
Similarly, when a PIC transition occurs, add the old PIC to the free list immediately. 
Remove an unused function update_code_heap_roots()
2009-04-30 05:59:44 -05:00
Slava Pestov 5fb5c19d61 Machine code is now stored in a byte array instead of an array for add_code_block() 2009-04-30 04:34:35 -05:00
Slava Pestov 515c619202 Non-optimizing compiler now open-codes megamorphic dispatch fast path 2009-04-30 03:37:07 -05:00
Slava Pestov fc4894fbdf Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags 2009-04-30 00:27:35 -05:00
Slava Pestov 62db617927 Get rid of two instructions from tag pics and one instruction from all others 2009-04-29 22:24:28 -05:00
Slava Pestov bd186b6320 Eliminate 3 instructions from PIC fast path 2009-04-29 21:32:05 -05:00
Slava Pestov ae22b345ec PIC -> megamorphic transition now has correct semantics within compilation units 2009-04-29 19:50:50 -05:00
Slava Pestov 02bd4f3f00 PICs now pass the method table around instead of extracting it from the generic word body. This gels better with how compilation units are supposed to work 2009-04-29 19:39:43 -05:00
Slava Pestov a26947ba2e Remove obsolete -mtune=pentium4 compile flag 2009-04-28 23:05:42 -05:00
Slava Pestov 9243316489 Debugging inline caching 2009-04-28 23:05:18 -05:00
Slava Pestov dfcbd206b6 Fix -pic command line switch, and enable PICs in user-space 2009-04-28 18:06:10 -05:00
Slava Pestov c15a4c1c5a Add new relocation type for call sites which may be replaced by ICs 2009-04-28 17:53:14 -05:00
Slava Pestov 5f6c074edd Split up types.c/h into smaller files, remove optimized slot from F_WORD struct 2009-04-28 17:26:11 -05:00
Slava Pestov e8008af5d0 inline-cache-miss primitive now jumps to the new stub 2009-04-28 16:58:38 -05:00
Slava Pestov 3985b18026 Add -pic= command line argument 2009-04-28 16:58:19 -05:00
Slava Pestov e940f6fd8b Add method dispatch statistics 2009-04-28 16:58:05 -05:00
Slava Pestov bd1b6be732 Remove some unused macros 2009-04-28 04:03:11 -05:00
Slava Pestov 4d10105802 Working on inline caching 2009-04-28 03:48:37 -05:00
Slava Pestov d5b51df7e7 Clean up profiler.c using new JIT API 2009-04-28 00:53:32 -05:00
Slava Pestov e45790a802 Split off parts of quotations.c into jit.c, which is a general codegen facility used by the non-optimizing compiler, and soon to be the profiler and PICs 2009-04-28 00:48:00 -05:00
Slava Pestov 15ef4f651b Sprinkle VM source with assertions, add a missing local root to quotations.c, fix GROWABLE_ARRAY macros for GC safety 2009-04-28 00:11:09 -05:00
Slava Pestov bba3bdd2bd Merge branch 'inline_caching' into jit_cleanup 2009-04-27 17:09:12 -05:00
Slava Pestov bba30dc284 Fix conflict from master 2009-04-27 17:09:09 -05:00
Slava Pestov bf0e8606a8 Merge branch 'master' into inline_caching 2009-04-26 21:26:39 -05:00
Slava Pestov 087c962f75 VM: simplify GC a bit, add GC_DEBUG compile-time flag 2009-04-26 16:05:09 -05:00
Slava Pestov e0f6825757 Rename some fields to avoid conflicting with windows.h macros 'small' and 'large' 2009-04-26 10:02:52 -05:00
Slava Pestov f94a44f3fd Merge branch 'master' into inline_caching 2009-04-26 09:22:27 -05:00
Slava Pestov 5f756a8019 Code GC: segregated free list for faster allocation, combine unmark/build free list/update literals passes into one pass for faster deallocation 2009-04-26 09:15:58 -05:00
Slava Pestov a14e5a4a3b Better local cache 2009-04-26 08:06:37 -05:00
Slava Pestov 63fff0a832 Clean up VM's growable array implementation, and non-optimizing compiler 2009-04-26 07:00:48 -05:00