9fac53989a 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: zero-extension can work on the TEST instruction too  
							
							
							
						 
						
							2016-05-24 14:37:20 +02:00  
				
					
						
							
							
								 
						
							
							
								973606b5e2 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: enable zero extension for AND with small immediates  
							
							
							
						 
						
							2016-05-20 12:42:27 +02:00  
				
					
						
							
							
								 
						
							
							
								4230d2502a 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: MOV zero extension for small immediates ( #1593 )  
							
							... 
							
							
							
							Instructions eg: mov rax, 123 can be equivalent mov eax, 123 which are
shorter. 
							
						 
						
							2016-05-19 23:02:48 +02:00  
				
					
						
							
							
								 
						
							
							
								5a2e1c953e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assember: add INC and DEC instructions to the assembler  
							
							
							
						 
						
							2016-05-08 18:43:51 +02:00  
				
					
						
							
							
								 
						
							
							
								3177e7851c 
								
							
								 
							
						 
						
							
							
								
								cpu.*: more docs  
							
							
							
						 
						
							2016-04-22 13:00:46 +02:00  
				
					
						
							
							
								 
						
							
							
								e477f6996f 
								
							
								 
							
						 
						
							
							
								
								Fix comments to be ! not #!.  
							
							
							
						 
						
							2015-09-08 16:15:10 -07:00  
				
					
						
							
							
								 
						
							
							
								ceb75057da 
								
							
								 
							
						 
						
							
							
								
								change ERROR: words from throw-foo back to foo.  
							
							
							
						 
						
							2015-08-13 16:13:05 -07:00  
				
					
						
							
							
								 
						
							
							
								b6be8685c3 
								
							
								 
							
						 
						
							
							
								
								basis: ERROR: changes.  
							
							
							
						 
						
							2015-08-13 03:20:39 -07:00  
				
					
						
							
							
								 
						
							
							
								ed83c87554 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: Add ghetto RDRAND support. Proper support wouldn't use alien-assembly and would take a count parameter.  
							
							
							
						 
						
							2012-09-20 11:54:44 -07:00  
				
					
						
							
							
								 
						
							
							
								1897f5fb4a 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assember: Add RDMSR for completeness, but it can't be called from user code. Factor kernel modules?  
							
							
							
						 
						
							2012-09-19 10:11:36 -07:00  
				
					
						
							
							
								 
						
							
							
								d1f3b326e5 
								
							
								 
							
						 
						
							
							
								
								math: using if-zero in more places.  
							
							
							
						 
						
							2012-06-18 14:32:39 -07:00  
				
					
						
							
							
								 
						
							
							
								943596575a 
								
							
								 
							
						 
						
							
							
								
								use radix literals  
							
							
							
						 
						
							2011-11-23 19:03:40 -08:00  
				
					
						
							
							
								 
						
							
							
								4ef2a9b4f0 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: PUSHF, POPF instructions  
							
							
							
						 
						
							2011-11-04 11:23:11 -07:00  
				
					
						
							
							
								 
						
							
							
								1386212d23 
								
							
								 
							
						 
						
							
							
								
								vm: dispatch signal handlers through subprimitive  
							
							... 
							
							
							
							We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function. 
							
						 
						
							2011-10-27 21:18:18 -07:00  
				
					
						
							
							
								 
						
							
							
								ae1a903c4e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: add MOVABS instruction  
							
							... 
							
							
							
							MOVABS generates the one-byte opcode version of MOV eAX, [absolute] or MOV [absolute], eAX, which saves a byte per safepoint on x86-32. 
							
						 
						
							2011-10-27 21:14:45 -07:00  
				
					
						
							
							
								 
						
							
							
								732befe272 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: add MOVQ xmm, xmm/m64 and MOVQ xmm/m64, xmm instructions  
							
							
							
						 
						
							2010-07-08 10:19:11 -07:00  
				
					
						
							
							
								 
						
							
							
								b67080b69d 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: drop useless ST0 operand from some x87 instructions  
							
							
							
						 
						
							2010-05-18 19:37:59 -04:00  
				
					
						
							
							
								 
						
							
							
								f5a951801e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: AH CH DH BH register operands now work properly  
							
							
							
						 
						
							2010-05-18 17:10:32 -04:00  
				
					
						
							
							
								 
						
							
							
								6eaf2d7534 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: add x87 codegen for Model T enthusiasts  
							
							
							
						 
						
							2010-05-17 11:35:47 -04:00  
				
					
						
							
							
								 
						
							
							
								93abc7d169 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: a choice selection of x87 instructions  
							
							
							
						 
						
							2010-05-17 02:02:40 -07:00  
				
					
						
							
							
								 
						
							
							
								d5b7ec3348 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: SETcc instructions  
							
							
							
						 
						
							2010-05-15 13:14:27 -07:00  
				
					
						
							
							
								 
						
							
							
								986ed057d8 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: BT family instructions  
							
							
							
						 
						
							2010-05-15 13:08:22 -07:00  
				
					
						
							
							
								 
						
							
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
				
					
						
							
							
								 
						
							
							
								655497b7b4 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: small cleanups  
							
							
							
						 
						
							2010-05-03 17:34:15 -04:00  
				
					
						
							
							
								 
						
							
							
								c0af678c5b 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: add support for absolute addressing on x86-64; [RIP+] now behaves like [] did, and [] now does absolute addressing just like in 32-bit mode  
							
							
							
						 
						
							2010-04-04 19:42:57 -04:00  
				
					
						
							
							
								 
						
							
							
								7d24459bb8 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: add segment override prefixes  
							
							
							
						 
						
							2010-03-31 20:47:13 -04:00  
				
					
						
							
							
								 
						
							
							
								235f3238f5 
								
							
								 
							
						 
						
							
							
								
								Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S  
							
							
							
						 
						
							2010-01-07 17:39:22 +13:00  
				
					
						
							
							
								 
						
							
							
								36d2ac8921 
								
							
								 
							
						 
						
							
							
								
								vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64  
							
							
							
						 
						
							2010-01-06 15:47:36 +13:00  
				
					
						
							
							
								 
						
							
							
								4202211293 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: cleanups  
							
							
							
						 
						
							2009-09-28 16:38:35 -05:00  
				
					
						
							
							
								 
						
							
							
								2e8bb98781 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: make SSE shuffle instructions accept an array of indexes so they're easier to use  
							
							
							
						 
						
							2009-09-28 11:45:45 -05:00  
				
					
						
							
							
								 
						
							
							
								dfc9fd071e 
								
							
								 
							
						 
						
							
							
								
								Add longlong-2, ulonglong-2, longlong-4, ulonglong-4 SIMD types, fix int-4 multiplication on SSE2  
							
							
							
						 
						
							2009-09-23 20:23:25 -05:00  
				
					
						
							
							
								 
						
							
							
								563ecbd871 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: cleanup  
							
							
							
						 
						
							2009-09-23 19:30:36 -05:00  
				
					
						
							
							
								 
						
							
							
								102df64ec7 
								
							
								 
							
						 
						
							
							
								
								i suck at reading tech docs--those were m64 instructions, not mm instructions  
							
							
							
						 
						
							2009-09-02 12:58:35 -05:00  
				
					
						
							
							
								 
						
							
							
								962d560c10 
								
							
								 
							
						 
						
							
							
								
								get rid of useless mm->xmm instructions in cpu.x86.assembler, add MOVHLPS and MOVLHPS  
							
							
							
						 
						
							2009-09-02 11:06:08 -05:00  
				
					
						
							
							
								 
						
							
							
								eb3bd1edea 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: make some words private  
							
							
							
						 
						
							2009-08-05 18:30:42 -05:00  
				
					
						
							
							
								 
						
							
							
								b6ddcafcbd 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor  
							
							
							
						 
						
							2009-07-30 11:05:36 -05:00  
				
					
						
							
							
								 
						
							
							
								455956b16c 
								
							
								 
							
						 
						
							
							
								
								add additional SSE2 packed integer operations  
							
							
							
						 
						
							2009-07-30 11:05:12 -05:00  
				
					
						
							
							
								 
						
							
							
								1e8d13c1f1 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: fix extended 8-bit registers (DIL, SIL, SPL, BPL)  
							
							
							
						 
						
							2009-07-29 22:32:22 -05:00  
				
					
						
							
							
								 
						
							
							
								73862a9a03 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: move operands to operands sub-vocabulary, clean up small-reg-* code in compiler backend  
							
							
							
						 
						
							2009-07-29 21:44:08 -05:00  
				
					
						
							
							
								 
						
							
							
								9f3c8a9959 
								
							
								 
							
						 
						
							
							
								
								SSE4 opcodes for x86 assembler  
							
							
							
						 
						
							2009-07-28 12:19:37 -05:00  
				
					
						
							
							
								 
						
							
							
								5372113fce 
								
							
								 
							
						 
						
							
							
								
								SSE1–SSSE3 opcodes + branch hints for x86 assembler  
							
							
							
						 
						
							2009-07-28 00:22:27 -05:00  
				
					
						
							
							
								 
						
							
							
								45a2105449 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.assembler: IMUL2 instruction was busted for immediate operands  
							
							... 
							
							
							
							When given a register and an immediate, it would generate imul imm,dst,dst however the 64-bit prefix was generated wrong and if dst was an extended register only the first operand would be an extended register. To fix this, change IMUL2 to not work on immediates anymore, and added a new IMUL3 that takes a destination register, source register, and immediate. Also, change compiler.cfg.two-operand to not two-operandize %mul-imm, since this isn't needed anymore.
This fixes the sporadic benchmark.tuple-arrays crash on 64-bit machines. 
							
						 
						
							2009-06-08 21:15:52 -05:00  
				
					
						
							
							
								 
						
							
							
								c93d876075 
								
							
								 
							
						 
						
							
							
								
								Better separation of concerns: cpu.{x86,ppc}.assembler no longer depends on compiler.codegen.fixup and cpu.architecture. Rename rt-xt-direct to rt-xt-pic to better explain its purpose  
							
							
							
						 
						
							2009-05-06 16:14:53 -05:00  
				
					
						
							
							
								 
						
							
							
								5188f4e1f0 
								
							
								 
							
						 
						
							
							
								
								Fix TEST opcode in cpu.x86.assembler  
							
							
							
						 
						
							2009-04-29 22:23:42 -05:00  
				
					
						
							
							
								 
						
							
							
								c15a4c1c5a 
								
							
								 
							
						 
						
							
							
								
								Add new relocation type for call sites which may be replaced by ICs  
							
							
							
						 
						
							2009-04-28 17:53:14 -05:00  
				
					
						
							
							
								 
						
							
							
								4d10105802 
								
							
								 
							
						 
						
							
							
								
								Working on inline caching  
							
							
							
						 
						
							2009-04-28 03:48:37 -05:00  
				
					
						
							
							
								 
						
							
							
								05e4626c49 
								
							
								 
							
						 
						
							
							
								
								Clean up  
							
							
							
						 
						
							2008-12-09 03:22:09 -06:00  
				
					
						
							
							
								 
						
							
							
								8a8f0c925c 
								
							
								 
							
						 
						
							
							
								
								Use BSR instruction to implement fixnum-log2 intrinsic  
							
							
							
						 
						
							2008-12-06 15:31:17 -06:00  
				
					
						
							
							
								 
						
							
							
								e4db2afb7e 
								
							
								 
							
						 
						
							
							
								
								Update cpu.x86.assembler to use dip instead of >r/r>  
							
							
							
						 
						
							2008-12-02 03:10:01 -06:00  
				
					
						
							
							
								 
						
							
							
								3e25d14e54 
								
							
								 
							
						 
						
							
							
								
								Code cleanup: refactoring usages of rot and -rot to use newer idioms instead  
							
							
							
						 
						
							2008-11-30 17:47:29 -06:00