summaryrefslogtreecommitdiffstats
path: root/arch/sparc/lib/NGcopy_to_user.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-02-08 22:00:55 -0800
committerDavid S. Miller <davem@davemloft.net>2009-02-08 22:00:55 -0800
commit40bdac7dbc161639a498697f34fbd1ee800e51f4 (patch)
tree5eef654722ba36d2921cafd8440d5e346f0fbdb5 /arch/sparc/lib/NGcopy_to_user.S
parent1c2f61d40b691789626489fa947a3e003c9a84be (diff)
downloadlinux-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.bz2
sparc64: Kill .fixup section bloat.
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>
Diffstat (limited to 'arch/sparc/lib/NGcopy_to_user.S')
-rw-r--r--arch/sparc/lib/NGcopy_to_user.S7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/sparc/lib/NGcopy_to_user.S b/arch/sparc/lib/NGcopy_to_user.S
index 6ea01c5532a0..bf62fc1a26c7 100644
--- a/arch/sparc/lib/NGcopy_to_user.S
+++ b/arch/sparc/lib/NGcopy_to_user.S
@@ -5,14 +5,9 @@
#define EX_ST(x) \
98: x; \
- .section .fixup; \
- .align 4; \
-99: wr %g0, ASI_AIUS, %asi;\
- ret; \
- restore %g0, 1, %o0; \
.section __ex_table,"a";\
.align 4; \
- .word 98b, 99b; \
+ .word 98b, __ret_one_asi;\
.text; \
.align 4;