summaryrefslogtreecommitdiffstats
path: root/arch/sparc/lib/NGcopy_from_user.S
diff options
context:
space:
mode:
authorDavid S. Miller2009-02-09 07:00:55 +0100
committerDavid S. Miller2009-02-09 07:00:55 +0100
commit40bdac7dbc161639a498697f34fbd1ee800e51f4 (patch)
tree5eef654722ba36d2921cafd8440d5e346f0fbdb5 /arch/sparc/lib/NGcopy_from_user.S
parentsparc64: Don't hook up pcr_ops on spitfire chips. (diff)
downloadkernel-qcow2-linux-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.gz
kernel-qcow2-linux-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.xz
kernel-qcow2-linux-40bdac7dbc161639a498697f34fbd1ee800e51f4.zip
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_from_user.S')
-rw-r--r--arch/sparc/lib/NGcopy_from_user.S7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/sparc/lib/NGcopy_from_user.S b/arch/sparc/lib/NGcopy_from_user.S
index e7f433f71b42..39bb8912c6e7 100644
--- a/arch/sparc/lib/NGcopy_from_user.S
+++ b/arch/sparc/lib/NGcopy_from_user.S
@@ -5,14 +5,9 @@
#define EX_LD(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;