Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eb802208d1 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 4: parameter and return value unboxing redesign  
							
							 
							
							
							
						 
						
							2010-05-11 19:11:44 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								45689dbfe6 
								
							
								 
							
						 
						
							
							
								
								compiler: simplify ##unbox-small/large-struct by emitting an ##unbox-any-c-ptr first  
							
							 
							
							
							
						 
						
							2010-05-10 01:38:34 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4478c3a51a 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 3: eliminate ##push-context-stack and ##pop-context-stack  
							
							 
							
							
							
						 
						
							2010-05-10 00:46:29 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7450dcf9ff 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fix load error  
							
							 
							
							
							
						 
						
							2010-05-09 23:36:57 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7316d41226 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 2: use ##peek and ##replace instructions to access stack  
							
							 
							
							
							
						 
						
							2010-05-09 23:26:43 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								839e26de3a 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fix load error  
							
							 
							
							
							
						 
						
							2010-05-09 21:55:21 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c211c3e84e 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions  
							
							 
							
							
							
						 
						
							2010-05-09 21:36:52 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f988dad79c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: add ##load-float instruction for single precision floating point constants  
							
							 
							
							
							
						 
						
							2010-05-07 18:26:00 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								aaa706dd29 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fix load error  
							
							 
							
							
							
						 
						
							2010-05-05 02:54:48 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e763c74096 
								
							
								 
							
						 
						
							
							
								
								More FFI cleanups  
							
							 
							
							
							
						 
						
							2010-05-05 01:13:45 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								58e4381eb1 
								
							
								 
							
						 
						
							
							
								
								compiler: new "binary literal area" at the end of a word's machine code stores constant floats and SIMD vectors; this allows ##load-reference/##load-memory fusion to be performed on x86-64, with a RIP-relative address reaching the data; also simplifies VM since custom relocation types used by the previous 32-bit-only optimization are no longer needed  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:35 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f5c5d8b44c 
								
							
								 
							
						 
						
							
							
								
								compiler: remove flat machine representation and generate code directly from the CFG  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:32 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								428ba9fd0f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:28 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9788323d25 
								
							
								 
							
						 
						
							
							
								
								compiler: add ##load-vector instruction to avoid wasting a temporary register on x86-32  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:28 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								43f269e4eb 
								
							
								 
							
						 
						
							
							
								
								Register allocation now uses SSA properties to coalesce values with different representations  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:20 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2517b2fc2b 
								
							
								 
							
						 
						
							
							
								
								compiler: combine ##load-constant followed by ##alien-double into a ##load-double on x86-32, saving an integer register  
							
							 
							
							
							
						 
						
							2010-04-18 21:42:45 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2aaf24412a 
								
							
								 
							
						 
						
							
							
								
								compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search  
							
							 
							
							
							
						 
						
							2010-04-18 21:42:45 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								da6bcbedfc 
								
							
								 
							
						 
						
							
							
								
								Replace 'untested' tag with 'not loaded' and 'not tested' tags  
							
							 
							
							
							
						 
						
							2010-04-13 18:43:01 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								67e24b1d2a 
								
							
								 
							
						 
						
							
							
								
								compiler.codegen: need to do name decoration with fastcall as well  
							
							 
							
							
							
						 
						
							2010-04-12 18:10:25 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2712496880 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fastcall struct returns are different on Linux than everywhere else for some unknown reason  
							
							 
							
							
							
						 
						
							2010-04-12 18:44:02 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0202c35d2a 
								
							
								 
							
						 
						
							
							
								
								alien: now that fastcall works better it doesn't need to be private  
							
							 
							
							
							
						 
						
							2010-04-10 16:57:07 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ed40eb4239 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: cleanups and fixes to make fastcall and thiscall callbacks work  
							
							 
							
							
							
						 
						
							2010-04-10 16:54:17 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								46a1fb2646 
								
							
								 
							
						 
						
							
							
								
								Merge remote branch 'origin/abi-symbols' into fastcall-madness  
							
							 
							
							
							
						 
						
							2010-04-10 00:10:33 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f828f9fdaa 
								
							
								 
							
						 
						
							
							
								
								Fiddle with register assignments in non-optimizing x86-32 backend  
							
							 
							
							
							
						 
						
							2010-04-10 00:10:05 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								3e0d86f355 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols  
							
							 
							
							... 
							
							
							
							Conflicts:
	basis/compiler/tests/alien.factor 
							
						 
						
							2010-04-06 12:30:15 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								430a05dcea 
								
							
								 
							
						 
						
							
							
								
								Store stack bounds in TIB on win64 to make C++ exceptions work  
							
							 
							
							
							
						 
						
							2010-04-05 19:07:10 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								74640b7f71 
								
							
								 
							
						 
						
							
							
								
								Get green threads working on Windows  
							
							 
							
							... 
							
							
							
							- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image 
							
						 
						
							2010-04-03 20:24:33 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								2c3fde412a 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: add load-return-regs methods for stack-params so callbacks can box the struct return pointer  
							
							 
							
							
							
						 
						
							2010-04-01 22:01:10 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0faa3bcf4a 
								
							
								 
							
						 
						
							
							
								
								vm: pre-allocate context alien  
							
							 
							
							
							
						 
						
							2010-04-02 00:02:21 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								88fbcba067 
								
							
								 
							
						 
						
							
							
								
								flatten non-integral types to (stack-value) on x86.32  
							
							 
							
							
							
						 
						
							2010-04-01 20:56:43 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								553b9fcd93 
								
							
								 
							
						 
						
							
							
								
								make "fastcall" symbol private since it doesn't really work in all cases  
							
							 
							
							
							
						 
						
							2010-04-01 18:34:15 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								666081f155 
								
							
								 
							
						 
						
							
							
								
								update %load-param-reg, %save-param-reg, and %cleanup to take register args into account  
							
							 
							
							
							
						 
						
							2010-04-01 17:36:09 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eceabbc57e 
								
							
								 
							
						 
						
							
							
								
								compiler: new set-special-object intrinsic; more efficient special-object intrinsic  
							
							 
							
							
							
						 
						
							2010-04-01 20:09:14 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								ef884ef7f2 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into abi-symbols  
							
							 
							
							
							
						 
						
							2010-04-01 15:28:36 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								615c64443b 
								
							
								 
							
						 
						
							
							
								
								update M\ int-regs param-regs for x86-32 to give input regs for thiscall/fastcall  
							
							 
							
							
							
						 
						
							2010-04-01 03:35:37 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								4fd61f0b5c 
								
							
								 
							
						 
						
							
							
								
								cpu.architecture: alter param-regs to take abi as an (ignored for now) argument  
							
							 
							
							
							
						 
						
							2010-04-01 02:53:40 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								6805dc6401 
								
							
								 
							
						 
						
							
							
								
								remove redundant «stdcall?» word from cpu.x86.32  
							
							 
							
							
							
						 
						
							2010-03-31 19:57:29 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								f3dd625de6 
								
							
								 
							
						 
						
							
							
								
								"stdcall" -> stdcall  
							
							 
							
							
							
						 
						
							2010-03-31 19:29:04 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								a6ee4232bb 
								
							
								 
							
						 
						
							
							
								
								"mingw" -> mingw  
							
							 
							
							
							
						 
						
							2010-03-31 19:28:11 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								65c3259761 
								
							
								 
							
						 
						
							
							
								
								"cdecl" -> cdecl  
							
							 
							
							
							
						 
						
							2010-03-31 19:20:35 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ef53e6ecd5 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64: eliminate useless instruction from primitive call sequence for a marginal to non-existent gain  
							
							 
							
							
							
						 
						
							2010-03-31 19:32:36 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8f0487f1c3 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: remove useless crap from c-to-factor sub-primitive  
							
							 
							
							
							
						 
						
							2010-03-31 15:19:00 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								fb2ecab614 
								
							
								 
							
						 
						
							
							
								
								threads: delete old contexts immediately instead of handing them off to a 'context recycler' thread  
							
							 
							
							
							
						 
						
							2010-03-30 21:47:48 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b6dfdcb909 
								
							
								 
							
						 
						
							
							
								
								set-context and start-context primitives can now pass parameters around  
							
							 
							
							
							
						 
						
							2010-03-27 08:13:57 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1717b8d0f7 
								
							
								 
							
						 
						
							
							
								
								Implement start-context and set-context primitives  
							
							 
							
							
							
						 
						
							2010-03-27 02:56:11 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								560c119cd2 
								
							
								 
							
						 
						
							
							
								
								vm: actually use context callstacks when running code  
							
							 
							
							
							
						 
						
							2010-03-26 22:44:43 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								95bfc8a240 
								
							
								 
							
						 
						
							
							
								
								vocabs.metadata: replace unportable tag with a platforms.txt file for more fine-grained control. Rename unportable tag to untested for remaining cases  
							
							 
							
							
							
						 
						
							2010-02-20 13:30:49 +13:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								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