diff options
author | David S. Miller <davem@davemloft.net> | 2009-02-08 22:00:55 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-08 22:00:55 -0800 |
commit | 40bdac7dbc161639a498697f34fbd1ee800e51f4 (patch) | |
tree | 5eef654722ba36d2921cafd8440d5e346f0fbdb5 /arch/sparc/lib/U1copy_to_user.S | |
parent | 1c2f61d40b691789626489fa947a3e003c9a84be (diff) | |
download | linux-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.gz linux-40bdac7dbc161639a498697f34fbd1ee800e51f4.tar.bz2 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/U1copy_to_user.S')
-rw-r--r-- | arch/sparc/lib/U1copy_to_user.S | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/sparc/lib/U1copy_to_user.S b/arch/sparc/lib/U1copy_to_user.S index d1210ffb0b82..59d531b4a1a5 100644 --- a/arch/sparc/lib/U1copy_to_user.S +++ b/arch/sparc/lib/U1copy_to_user.S @@ -5,13 +5,9 @@ #define EX_ST(x) \ 98: x; \ - .section .fixup; \ - .align 4; \ -99: retl; \ - mov 1, %o0; \ .section __ex_table,"a";\ .align 4; \ - .word 98b, 99b; \ + .word 98b, __retl_one; \ .text; \ .align 4; |