 a16308efdb
			
		
	
	
		a16308efdb
		
	
	
	
	
		
			
			struct return. For example, GCC and LLVM comply with this (tested on IA32). ACK doesn't seem to follow this convention and expects the caller to clean up the stack. Compiling hand-written ACK-compliant assembly code (returning a struct) with GCC or LLVM used to break things (4-bytes misaligned stack). The patch fixes this problem.
		
			
				
	
	
		
			21 lines
		
	
	
		
			422 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			422 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*	add64() - 64 bit addition			Author: Kees J. Bot */
 | |
| /*								7 Dec 1995 */
 | |
| #include <minix/compiler.h>
 | |
| 
 | |
| .text
 | |
| .globl	_add64
 | |
| 
 | |
| _add64:
 | |
| /* u64_t add64(u64_t i, u64_t j); */
 | |
| 	movl	4(%esp), %eax
 | |
| 	movl	8(%esp), %edx
 | |
| 	addl	16(%esp), %edx
 | |
| 	movl	%edx, (%eax)
 | |
| 	movl	12(%esp), %edx
 | |
| 	adcl	20(%esp), %edx
 | |
| 	movl	%edx, 4(%eax)
 | |
| 	ret BYTES_TO_POP_ON_STRUCT_RETURN
 | |
| 
 | |
| /* */
 | |
| /* $PchId: add64.ack.s,v 1.2 1996/04/11 18:59:57 philip Exp $ */
 |