c675694619 
								
							
								 
							
						 
						
							
							
								
								vm: Annotate more places where we can gc.  
							
							... 
							
							
							
							Code formatting fix. 
							
						 
						
							2014-11-29 19:25:46 -06:00  
				
					
						
							
							
								 
						
							
							
								19685f4528 
								
							
								 
							
						 
						
							
							
								
								vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps.  
							
							... 
							
							
							
							Add annotations for gc allocating. 
							
						 
						
							2014-02-14 20:29:26 -08:00  
				
					
						
							
							
								 
						
							
							
								26ff071205 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary explicit keywords  
							
							
							
						 
						
							2013-05-12 21:48:38 -04:00  
				
					
						
							
							
								 
						
							
							
								1eaddb0068 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor jit.cpp/hpp to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:45 -04:00  
				
					
						
							
							
								 
						
							
							
								1911905c6b 
								
							
								 
							
						 
						
							
							
								
								vm: frame size for signal handler code blocks  
							
							
							
						 
						
							2011-12-14 09:56:46 -08:00  
				
					
						
							
							
								 
						
							
							
								82a62181ce 
								
							
								 
							
						 
						
							
							
								
								vm: count samples during unoptimized compiler  
							
							
							
						 
						
							2011-11-02 13:23:21 -07:00  
				
					
						
							
							
								 
						
							
							
								05f7419f2f 
								
							
								 
							
						 
						
							
							
								
								Rework non-optimizing compiler backend to use compiler.codegen.relocation  
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
				
					
						
							
							
								 
						
							
							
								1434a305c8 
								
							
								 
							
						 
						
							
							
								
								vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this  
							
							
							
						 
						
							2010-04-12 14:22:41 -07:00  
				
					
						
							
							
								 
						
							
							
								d22eb40360 
								
							
								 
							
						 
						
							
							
								
								Fix spaces that crept into vm/ cpp files  
							
							
							
						 
						
							2010-02-06 01:06:26 -06:00  
				
					
						
							
							
								 
						
							
							
								22fbe01c17 
								
							
								 
							
						 
						
							
							
								
								Compiled code size optimizations for x86-64 resulting in development image size reduction of about 350kb  
							
							... 
							
							
							
							- RIP-relative LEA is now used to load program counter in prolog and tail calls; saves 3 bytes of code and 4 bytes of relocation information over an immediate MOV
- VM field accesses no longer involve a redundant addition 
							
						 
						
							2010-02-03 23:11:35 +13:00  
				
					
						
							
							
								 
						
							
							
								0068bce934 
								
							
								 
							
						 
						
							
							
								
								vm: big overhaul of non-optimizing compiler  
							
							... 
							
							
							
							- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups 
							
						 
						
							2009-12-15 07:20:09 -05:00  
				
					
						
							
							
								 
						
							
							
								eb840dcf41 
								
							
								 
							
						 
						
							
							
								
								RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further  
							
							
							
						 
						
							2009-12-02 04:55:48 -06:00  
				
					
						
							
							
								 
						
							
							
								68c09f0e93 
								
							
								 
							
						 
						
							
							
								
								Split literal table into literal and parameter tables, literal table is discarded after code block initialization  
							
							
							
						 
						
							2009-12-02 04:28:15 -06:00  
				
					
						
							
							
								 
						
							
							
								6c2c87758a 
								
							
								 
							
						 
						
							
							
								
								vm: rename gc_root to data_root, add code_root to fix a problem where code blocks would move underneath the PIC compiler if PIC compiler allocated enough  
							
							
							
						 
						
							2009-11-02 18:10:34 -06:00  
				
					
						
							
							
								 
						
							
							
								810e309e0c 
								
							
								 
							
						 
						
							
							
								
								vm: rename userenv to special_objects  
							
							
							
						 
						
							2009-10-23 00:33:53 -05:00  
				
					
						
							
							
								 
						
							
							
								40351d40be 
								
							
								 
							
						 
						
							
							
								
								vm: use iostreams instead of printf for debug messages, clean up a few things  
							
							
							
						 
						
							2009-10-21 20:12:57 -05:00  
				
					
						
							
							
								 
						
							
							
								838a44e901 
								
							
								 
							
						 
						
							
							
								
								vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits  
							
							
							
						 
						
							2009-10-20 09:37:24 -05:00  
				
					
						
							
							
								 
						
							
							
								2e65366c6b 
								
							
								 
							
						 
						
							
							
								
								vm: rename myvm and parent_vm instance variables to parent, clean up casts in primitive definitions  
							
							
							
						 
						
							2009-10-18 20:31:59 -05:00  
				
					
						
							
							
								 
						
							
							
								2b63029da8 
								
							
								 
							
						 
						
							
							
								
								vm: fix GC safety issue in non-optimizing compiler  
							
							
							
						 
						
							2009-10-18 18:57:41 -05:00  
				
					
						
							
							
								 
						
							
							
								38d120f92e 
								
							
								 
							
						 
						
							
							
								
								vm: rt-vm relocation now supports accessing a field directly  
							
							
							
						 
						
							2009-10-14 19:24:23 -05:00  
				
					
						
							
							
								 
						
							
							
								c4ef640f4d 
								
							
								 
							
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
							
								57840562f5 
								
							
								 
							
						 
						
							
							
								
								renamed myvm member variable to parent_vm  
							
							
							
						 
						
							2009-09-24 08:16:57 +01:00  
				
					
						
							
							
								 
						
							
							
								83b0769eef 
								
							
								 
							
						 
						
							
							
								
								renamed factorvm to factor_vm  
							
							
							
						 
						
							2009-09-24 08:16:52 +01:00  
				
					
						
							
							
								 
						
							
							
								ef16c4be66 
								
							
								 
							
						 
						
							
							
								
								moved userenv into vm in C code (DOESNT BOOTSTRAP YET!!!)  
							
							
							
						 
						
							2009-09-16 08:16:32 +01:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								a2f14b5a6d 
								
							
								 
							
						 
						
							
							
								
								added vm member to gc_root and growable arrays  
							
							
							
						 
						
							2009-09-16 08:16:22 +01:00  
				
					
						
							
							
								 
						
							
							
								54b3c1ea88 
								
							
								 
							
						 
						
							
							
								
								added vm member to jit classes  
							
							
							
						 
						
							2009-09-16 08:16:21 +01:00  
				
					
						
							
							
								 
						
							
							
								386dafe747 
								
							
								 
							
						 
						
							
							
								
								moved local roots state to vm, shuffled includes around  
							
							
							
						 
						
							2009-09-16 08:16:21 +01:00  
				
					
						
							
							
								 
						
							
							
								4915e1ced7 
								
							
								 
							
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
							
								12a34d81f7 
								
							
								 
							
						 
						
							
							
								
								JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends  
							
							
							
						 
						
							2009-05-06 20:04:49 -05:00  
				
					
						
							
							
								 
						
							
							
								8872c40b1e 
								
							
								 
							
						 
						
							
							
								
								The great type renaming  
							
							
							
						 
						
							2009-05-04 04:50:24 -05:00  
				
					
						
							
							
								 
						
							
							
								edecac508e 
								
							
								 
							
						 
						
							
							
								
								Use C++ namespaces  
							
							
							
						 
						
							2009-05-04 01:46:13 -05:00  
				
					
						
							
							
								 
						
							
							
								e3592ca8f6 
								
							
								 
							
						 
						
							
							
								
								Clean up untag_* and tag_* inline functions in favor of more idiomatic C++  
							
							
							
						 
						
							2009-05-02 20:47:29 -05:00  
				
					
						
							
							
								 
						
							
							
								b923d548cf 
								
							
								 
							
						 
						
							
							
								
								Move vmpp to vm  
							
							
							
						 
						
							2009-05-02 20:37:18 -05:00