cpu-x86: clear the x87 stack when rewinding; fixes math.floats.env failures on Linux
							parent
							
								
									699695ba14
								
							
						
					
					
						commit
						a456f79f9c
					
				| 
						 | 
				
			
			@ -56,6 +56,11 @@ DEF(F_FASTCALL void,c_to_factor,(CELL quot)):
 | 
			
		|||
	ret
 | 
			
		||||
 | 
			
		||||
DEF(F_FASTCALL void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to)):
 | 
			
		||||
	/* clear x87 stack, but preserve rounding mode and exception flags */
 | 
			
		||||
	sub $2,STACK_REG
 | 
			
		||||
	fnstcw (STACK_REG)
 | 
			
		||||
	fninit
 | 
			
		||||
	fldcw (STACK_REG)
 | 
			
		||||
	/* rewind_to */
 | 
			
		||||
	mov ARG1,STACK_REG                    
 | 
			
		||||
	jmp *QUOT_XT_OFFSET(ARG0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue