 40bdac7dbc
			
		
	
	
	40bdac7dbc
	
	
	
		
			
			This is an implementation of a suggestion made by Chris Torek:
--------------------
Something else I noticed in passing: the EX and EX_LD/EX_ST macros
scattered throughout the various .S files make a fair bit of .fixup
code, all of which does the same thing.  At the cost of one symbol
in copy_in_user.S, you could just have one common two-instruction
retl-and-mov-1 fixup that they all share.
--------------------
The following is with a defconfig build:
   text	   data	    bss	    dec	    hex	filename
3972767	 344024	 584449	4901240	 4ac978	vmlinux.orig
3968887	 344024	 584449	4897360	 4aba50	vmlinux
Signed-off-by: David S. Miller <davem@davemloft.net>
		
	
			
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			406 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			406 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* U3copy_from_user.S: UltraSparc-III optimized copy from userspace.
 | |
|  *
 | |
|  * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com)
 | |
|  */
 | |
| 
 | |
| #define EX_LD(x)		\
 | |
| 98:	x;			\
 | |
| 	.section __ex_table,"a";\
 | |
| 	.align 4;		\
 | |
| 	.word 98b, __retl_one;	\
 | |
| 	.text;			\
 | |
| 	.align 4;
 | |
| 
 | |
| #define FUNC_NAME		U3copy_from_user
 | |
| #define LOAD(type,addr,dest)	type##a [addr] %asi, dest
 | |
| #define EX_RETVAL(x)		0
 | |
| 
 | |
| #include "U3memcpy.S"
 |