Joe Groff
							
						 
						
							 
							
							
							
								
							
								d79b462f75 
								
							
								 
							
						 
						
							
							
								
								compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]  
							
							 
							
							... 
							
							
							
							Combined with a fast bit-count this will let us rice byte-counting. 
							
						 
						
							2011-11-13 16:10:20 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								0c022f2454 
								
							
								 
							
						 
						
							
							
								
								compiler: add ##safepoint IR insn  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:46 -07:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								64252dbdbc 
								
							
								 
							
						 
						
							
							
								
								32 and 64 bit Linux PPC support  
							
							 
							
							
							
						 
						
							2011-05-23 23:36:14 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6b5fffc026 
								
							
								 
							
						 
						
							
							
								
								compiler: preliminary implementation of tracking derived pointers in GC maps  
							
							 
							
							
							
						 
						
							2010-09-27 20:12:44 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1985705413 
								
							
								 
							
						 
						
							
							
								
								compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths  
							
							 
							
							
							
						 
						
							2010-08-13 23:59:19 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b5fc39c198 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there  
							
							 
							
							
							
						 
						
							2010-08-13 23:19:56 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								168dd1f825 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 7: compile callback bodies with the optimizing compiler  
							
							 
							
							
							
						 
						
							2010-07-28 00:49:26 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b23aac1beb 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: open-code parameter boxing and unboxing for certain C types  
							
							 
							
							
							
						 
						
							2010-07-19 10:25:13 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e5dd21b0b9 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: nuke ##allot-byte-array instruction  
							
							 
							
							
							
						 
						
							2010-07-16 19:57:45 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0fd636b4b9 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: ##unbox-long-long can have multiple outputs now, clean up long long parameter passing code using this  
							
							 
							
							
							
						 
						
							2010-07-15 19:49:29 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e27adb2830 
								
							
								 
							
						 
						
							
							
								
								compiler: re-architect low-level optimizer to allow more than one output value per instruction  
							
							 
							
							
							
						 
						
							2010-07-13 07:40:14 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a55c8ee671 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 6: deconcatenatize  
							
							 
							
							
							
						 
						
							2010-07-02 15:44:12 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e86f434f26 
								
							
								 
							
						 
						
							
							
								
								Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction  
							
							 
							
							
							
						 
						
							2010-06-14 19:39:46 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							 
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								7fe04fa8ee 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.intrinsics.simd: intrinsic support for double-2>float-4 conversion  
							
							 
							
							
							
						 
						
							2010-06-01 00:34:50 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ba7cb61133 
								
							
								 
							
						 
						
							
							
								
								Stack allocation improvements  
							
							 
							
							... 
							
							
							
							- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas 
							
						 
						
							2010-05-22 02:37:00 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								91cd3b854d 
								
							
								 
							
						 
						
							
							
								
								Use ##local-allot to simplify longlong unboxing  
							
							 
							
							
							
						 
						
							2010-05-19 01:07:22 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								77516c6932 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: generalize ##prepare-struct-caller instruction to alloca()-like ##local-allot  
							
							 
							
							
							
						 
						
							2010-05-19 00:33:15 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6eaf2d7534 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: add x87 codegen for Model T enthusiasts  
							
							 
							
							
							
						 
						
							2010-05-17 11:35:47 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7ff309d50e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: get rid of this extra-stack-space nonsense  
							
							 
							
							
							
						 
						
							2010-05-17 02:14:44 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3f8e13bf66 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: refactor stack frame code and fix frame pointer usage in callbacks  
							
							 
							
							
							
						 
						
							2010-05-16 21:04:40 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a7b5957f6d 
								
							
								 
							
						 
						
							
							
								
								compiler: hack to make XCreateIC() work on x86-64  
							
							 
							
							
							
						 
						
							2010-05-16 04:49:53 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								645164188d 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.instructions: ##select-vector instruction mapping to SSE4 PEXTR*  
							
							 
							
							
							
						 
						
							2010-05-16 00:50:19 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5b48cd2a63 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing  
							
							 
							
							
							
						 
						
							2010-05-16 03:43:23 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								8c878ada17 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.instructions: ##gather-int-vector-2/4 instructions that map to SSE4 PINSR/PEXTR  
							
							 
							
							
							
						 
						
							2010-05-15 23:48:22 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								7fec53b509 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.instructions: ##bit-count insn  
							
							 
							
							
							
						 
						
							2010-05-15 13:57:35 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5a67711bfd 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: use x86 TEST instruction to optimize 'bitand 0 ='  
							
							 
							
							
							
						 
						
							2010-05-14 18:37:06 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								3766abd65e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.instructions: ##shuffle-vector-halves-imm insn to map to SSE's two-input SHUFPS/SHUFPD  
							
							 
							
							
							
						 
						
							2010-05-14 00:20:21 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								42b0d456cd 
								
							
								 
							
						 
						
							
							
								
								Refactor x86-32 stack cleanup logic  
							
							 
							
							
							
						 
						
							2010-05-12 02:09:11 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f89b85db7b 
								
							
								 
							
						 
						
							
							
								
								Temporary fixes for x86-32 until FFI boxing is rewritten  
							
							 
							
							
							
						 
						
							2010-05-12 01:41:49 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ee0640f176 
								
							
								 
							
						 
						
							
							
								
								Move flatten-c-type to death row so that it can be executed in part 5  
							
							 
							
							
							
						 
						
							2010-05-11 22:26:31 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eb802208d1 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 4: parameter and return value unboxing redesign  
							
							 
							
							
							
						 
						
							2010-05-11 19:11:44 -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
							
						 
						
							 
							
							
							
								
							
								7316d41226 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 2: use ##peek and ##replace instructions to access stack  
							
							 
							
							
							
						 
						
							2010-05-09 23:26:43 -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
							
						 
						
							 
							
							
							
								
							
								6c35652666 
								
							
								 
							
						 
						
							
							
								
								cpu: cleanups  
							
							 
							
							
							
						 
						
							2010-05-03 23:08:24 -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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a9ccfa8f05 
								
							
								 
							
						 
						
							
							
								
								strings: move string-nth primitive out of the VM and into the library  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:12 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0f5d9974a0 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.representations: fix various bugs  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:11 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								378c2b2a46 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: add ##load-memory and ##store-memory instructions implementing complex addressing modes, and associated value numbering optimizations  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:07 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2475699736 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: more flexible addressing for ##slot and ##set-slot  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:06 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								913b95192e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:06 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								279eb461b1 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: remove ##set-string-nth-fast instruction since it can be expressed just as efficiently using other instructions  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:04 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2ce926594d 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: new optimizations; reassociation for shifts and redistribution for shifts/multiplies over additions/subtractions  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								82fb1879af 
								
							
								 
							
						 
						
							
							
								
								Debugging untagged fixnums  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -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