aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/lib/NGbzero.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/NGbzero.S
parent1c2f61d40b691789626489fa947a3e003c9a84be (diff)
downloadkernel_samsung_aries-40bdac7dbc161639a498697f34fbd1ee800e51f4.zip
kernel_samsung_aries-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.gz
kernel_samsung_aries-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/NGbzero.S')
-rw-r--r--arch/sparc/lib/NGbzero.S6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/sparc/lib/NGbzero.S b/arch/sparc/lib/NGbzero.S
index 814d5f7..beab29b 100644
--- a/arch/sparc/lib/NGbzero.S
+++ b/arch/sparc/lib/NGbzero.S
@@ -6,13 +6,9 @@
#define EX_ST(x,y) \
98: x,y; \
- .section .fixup; \
- .align 4; \
-99: retl; \
- mov %o1, %o0; \
.section __ex_table,"a";\
.align 4; \
- .word 98b, 99b; \
+ .word 98b, __retl_o1; \
.text; \
.align 4;