Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								1c94c60541 
								
							
								 
							
						 
						
							
							
								
								cpu.*: new generic word enable-cpu-features  
							
							 
							
							... 
							
							
							
							The word is used during bootstrap to enable available cpu specific
intrinsics. 
							
						 
						
							2016-08-12 11:41:45 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								1b6e6915ac 
								
							
								 
							
						 
						
							
							
								
								cpu.*: float-on-stack? word never used  
							
							 
							
							
							
						 
						
							2016-08-08 10:29:17 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								86274c895e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.*: improved varargs support  
							
							 
							
							... 
							
							
							
							Now on the x86.64 platform, we set the AL register to contain the nr of
floating point values passed to the function as required by the abi. 
							
						 
						
							2016-08-02 23:14:37 +02:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								e477f6996f 
								
							
								 
							
						 
						
							
							
								
								Fix comments to be ! not #!.  
							
							 
							
							
							
						 
						
							2015-09-08 16:15:10 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								330c7ba156 
								
							
								 
							
						 
						
							
							
								
								factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.  
							
							 
							
							... 
							
							
							
							Redo many FROM: and QUALIFIED: and using lists. 
							
						 
						
							2015-08-12 08:49:02 -05:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								48e6455186 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.*: %mov-vm-ptr isn't so useful, shorter and simpler to write  
							
							 
							
							... 
							
							
							
							vm-reg MOV 
							
						 
						
							2015-05-22 12:22:29 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								6ca83e7588 
								
							
								 
							
						 
						
							
							
								
								Reorganising bootstrap files  
							
							 
							
							... 
							
							
							
							All the bootstrap.factor scripts in cpu/ are run by the bootstrap to
make boot images, but aren't used otherwise. So I think it's cleaner to
put them in one directory inside the bootstrap hierarchy. 
							
						 
						
							2015-05-22 12:22:24 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								44f31ee13e 
								
							
								 
							
						 
						
							
							
								
								use swapd instead of [ swap ] dip.  
							
							 
							
							
							
						 
						
							2014-11-21 11:56:17 -08:00  
						
					 
				
					
						
							
							
								 
								Benjamin Pollack
							
						 
						
							 
							
							
							
								
							
								2c3dd8c3c8 
								
							
								 
							
						 
						
							
							
								
								Remove executable bit from tons of files that aren't  
							
							 
							
							
							
						 
						
							2014-11-05 20:40:42 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								e97c8971a5 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: Some calls to CPUID take a parameter in ECX. Add cpuid-extended to allow these.  
							
							 
							
							
							
						 
						
							2012-09-19 11:30:54 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								9c0a8b3250 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: Fix load order.  
							
							 
							
							
							
						 
						
							2012-09-19 08:40:18 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								9b56fbb1c1 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32.bootstrap: oops, meant bootstrap-cell  
							
							 
							
							
							
						 
						
							2011-12-19 20:55:07 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								bc3f34cbd7 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32.bootstrap: update unwind-native-frames  
							
							 
							
							... 
							
							
							
							The arguments passed from C are in a different position now. 
							
						 
						
							2011-12-19 18:42:14 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								7c9332e966 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.*: clean up signal handler prolog code  
							
							 
							
							... 
							
							
							
							Also bump the signal handler frame sizes up again since it looks like we shrank them too much. 
							
						 
						
							2011-12-14 09:56:50 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								079025559d 
								
							
								 
							
						 
						
							
							
								
								simplify function prologs  
							
							 
							
							
							
						 
						
							2011-12-14 09:56:49 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								ee656387ea 
								
							
								 
							
						 
						
							
							
								
								cpu.*.bootstrap: return address for (set-context)  
							
							 
							
							... 
							
							
							
							Instead of pushing zero as the fake return address for a set-context call, push an address that points back into the primitive so that callstack walking can match the frame back to the subprimitive. 
							
						 
						
							2011-12-14 09:56:46 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								1911905c6b 
								
							
								 
							
						 
						
							
							
								
								vm: frame size for signal handler code blocks  
							
							 
							
							
							
						 
						
							2011-12-14 09:56:46 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								e21f316583 
								
							
								 
							
						 
						
							
							
								
								vm: store stack frame size in code blocks  
							
							 
							
							... 
							
							
							
							Change modify-code-heap primitive so it takes a sixth element in each array for the frame size. 
							
						 
						
							2011-12-14 09:56:45 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								d927a070ed 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: enable POPCNT with a flag  
							
							 
							
							... 
							
							
							
							If bootstrapped with '-enable-popcnt' and the host CPU supports it, enable the POPCNT-based fixnum-bit-count intrinsic. Fixes  #436 . 
							
						 
						
							2011-12-12 16:43:49 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								943596575a 
								
							
								 
							
						 
						
							
							
								
								use radix literals  
							
							 
							
							
							
						 
						
							2011-11-23 19:03:40 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								e0dc236725 
								
							
								 
							
						 
						
							
							
								
								cpu.*.bootstrap: clear faulting flag directly  
							
							 
							
							... 
							
							
							
							No reason to go through a safepoint in unwind-native-frames really. 
							
						 
						
							2011-11-12 13:02:57 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								e24400679f 
								
							
								 
							
						 
						
							
							
								
								vm: more defense against multi-faulting  
							
							 
							
							... 
							
							
							
							* Clear faulting_p from a safepoint rather than inside general_error, because jumping into unwind-native-frames could blow up.
* Handle multiple faults from fatal_error by breakpointing. Is there anything else we can safely do at that point?
* Verify memory protection faults in the top half of the signal handlers because signal dispatch could fault. Treat memory faults during gc or fep as fatal errors.
* Add a function factor_vm::abort() that restores the default SIGABRT handler and ::abort()s. Use it from fatal_error() so we get useful context from gdb and so the user gets feedback from the system crash reporter that Factor blew up and didn't just disappear.
* In factorbug(), don't proceed with .s .r .c if it would be unsafe to do so.
* Don't pile on signals if we've already called fatal_error(). 
							
						 
						
							2011-11-12 13:02:57 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								c736b04ada 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.*.bootstrap: save flags in signal-handlers  
							
							 
							
							
							
						 
						
							2011-11-04 11:56:01 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								e201f3562f 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32.bootstrap: typo  
							
							 
							
							
							
						 
						
							2011-11-03 13:07:13 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								6bb46a3f1e 
								
							
								 
							
						 
						
							
							
								
								vm: always generate safepoints in jit  
							
							 
							
							... 
							
							
							
							Even if there's no stack frame we still need to safepoint before leaving the function. Fixes  #332 . 
							
						 
						
							2011-11-03 11:57:43 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								8cf18d1a82 
								
							
								 
							
						 
						
							
							
								
								remove BSD,solaris,etc. misc platform support code  
							
							 
							
							
							
						 
						
							2011-11-02 17:13:51 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								ff2d480d98 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: update for resumable signal handlers  
							
							 
							
							
							
						 
						
							2011-10-27 21:18:19 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								68518e741e 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.(32,64).bootstrap: get rid of PUSH malarky  
							
							 
							
							... 
							
							
							
							In the function prologue, move the stack pointer once after the stack frame is set up instead of PUSHing the stack frame piece by piece. 
							
						 
						
							2011-10-27 21:14:50 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								0c022f2454 
								
							
								 
							
						 
						
							
							
								
								compiler: add ##safepoint IR insn  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:46 -07:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								4be5eadb34 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.bootstrap: add safepoint to jit-epilog  
							
							 
							
							
							
						 
						
							2011-10-27 21:14:45 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								d5dc5cfa2c 
								
							
								 
							
						 
						
							
							
								
								Fix 32bit platform bootstrap  
							
							 
							
							
							
						 
						
							2011-10-24 16:24:01 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f8e475485a 
								
							
								 
							
						 
						
							
							
								
								Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs.  Fixes   #123  
							
							 
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								05f7419f2f 
								
							
								 
							
						 
						
							
							
								
								Rework non-optimizing compiler backend to use compiler.codegen.relocation  
							
							 
							
							
							
						 
						
							2011-10-03 00:26:21 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b89e9a549b 
								
							
								 
							
						 
						
							
							
								
								Split up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation}  
							
							 
							
							
							
						 
						
							2011-10-03 00:25:47 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								bf2a96e9e0 
								
							
								 
							
						 
						
							
							
								
								Remove Windows CE from core/ basis/ and build-support/  
							
							 
							
							... 
							
							
							
							Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes  #84 . 
							
						 
						
							2011-09-18 23:19:06 -05:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								64252dbdbc 
								
							
								 
							
						 
						
							
							
								
								32 and 64 bit Linux PPC support  
							
							 
							
							
							
						 
						
							2011-05-23 23:36:14 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d2cf2d8f92 
								
							
								 
							
						 
						
							
							
								
								Rename get-fpu-state entry point to fpu-state, and fix stack-checker unit tests  
							
							 
							
							
							
						 
						
							2010-09-04 12:58:59 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1818bcb780 
								
							
								 
							
						 
						
							
							
								
								Fix three problems discovered by running math.floats.env tests in a loop:  
							
							 
							
							... 
							
							
							
							- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly 
							
						 
						
							2010-09-02 22:57:14 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2abda04743 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: commit  05ba77262a only fixed the start-context-and-delete callframe leak on x86-64. Fix it on x86-32 and add a regression test  
							
							 
							
							
							
						 
						
							2010-08-22 19:30:54 -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
							
						 
						
							 
							
							
							
								
							
								b346cbd6b0 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fix 32-bit bootstrap  
							
							 
							
							
							
						 
						
							2010-08-02 20:51:29 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								451237a028 
								
							
								 
							
						 
						
							
							
								
								Fix start-context-and-delete sub-primitive (reported by Sascha Matzke)  
							
							 
							
							
							
						 
						
							2010-08-02 20:28:23 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f2646fc92c 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: save context before calling new_context() since it can trigger GC (bug reported by Sascha Matzke)  
							
							 
							
							
							
						 
						
							2010-07-30 01:07:53 -04: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
							
						 
						
							 
							
							
							
								
							
								0fbe78be00 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.64: fix calling varargs functions  
							
							 
							
							
							
						 
						
							2010-07-19 16:03:39 -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
							
						 
						
							 
							
							
							
								
							
								5e13318988 
								
							
								 
							
						 
						
							
							
								
								cpu.x86.32: fix %binary-float-function  
							
							 
							
							
							
						 
						
							2010-07-15 03:09:06 -04:00