* [PATCH] ppc boot: replace string labels with numbers
@ 2005-11-17 21:09 Olaf Hering
2005-11-17 22:54 ` Jerry Van Baren
2005-12-01 21:58 ` Tom Rini
0 siblings, 2 replies; 6+ messages in thread
From: Olaf Hering @ 2005-11-17 21:09 UTC (permalink / raw)
To: Paul Mackeras, linuxppc-dev
Replacing the string labels with numbers saves 117 bytes in the final zImage.
These local labels are not discared.
Signed-off-by: Olaf Hering <olh@suse.de>
arch/powerpc/boot/crt0.S | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
Index: linux-2.6.15-rc1-olh/arch/powerpc/boot/crt0.S
===================================================================
--- linux-2.6.15-rc1-olh.orig/arch/powerpc/boot/crt0.S
+++ linux-2.6.15-rc1-olh/arch/powerpc/boot/crt0.S
@@ -14,43 +14,42 @@
.text
.globl _zimage_start
_zimage_start:
- bl reloc_offset
+ bl 1f
-reloc_offset:
+1:
mflr r0
- lis r9,reloc_offset@ha
- addi r9,r9,reloc_offset@l
+ lis r9,1b@ha
+ addi r9,r9,1b@l
subf. r0,r9,r0
- beq clear_caches
+ beq 3f
-reloc_got2:
lis r9,__got2_start@ha
addi r9,r9,__got2_start@l
lis r8,__got2_end@ha
addi r8,r8,__got2_end@l
subf. r8,r9,r8
- beq clear_caches
+ beq 3f
srwi. r8,r8,2
mtctr r8
add r9,r0,r9
-reloc_got2_loop:
+2:
lwz r8,0(r9)
add r8,r8,r0
stw r8,0(r9)
addi r9,r9,4
- bdnz reloc_got2_loop
+ bdnz 2b
-clear_caches:
+3:
lis r9,_start@h
add r9,r0,r9
lis r8,_etext@ha
addi r8,r8,_etext@l
add r8,r0,r8
-1: dcbf r0,r9
+4: dcbf r0,r9
icbi r0,r9
addi r9,r9,0x20
cmplwi 0,r9,8
- blt 1b
+ blt 4b
sync
isync
--
short story of a lazy sysadmin:
alias appserv=wotan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ppc boot: replace string labels with numbers
2005-11-17 21:09 [PATCH] ppc boot: replace string labels with numbers Olaf Hering
@ 2005-11-17 22:54 ` Jerry Van Baren
2005-11-18 7:42 ` Olaf Hering
2005-12-01 21:58 ` Tom Rini
1 sibling, 1 reply; 6+ messages in thread
From: Jerry Van Baren @ 2005-11-17 22:54 UTC (permalink / raw)
Cc: linuxppc-dev
Olaf Hering wrote:
> Replacing the string labels with numbers saves 117 bytes in the final zImage.
> These local labels are not discared.
>
> Signed-off-by: Olaf Hering <olh@suse.de>
>
> arch/powerpc/boot/crt0.S | 23 +++++++++++------------
> 1 files changed, 11 insertions(+), 12 deletions(-)
>
> Index: linux-2.6.15-rc1-olh/arch/powerpc/boot/crt0.S
> ===================================================================
> --- linux-2.6.15-rc1-olh.orig/arch/powerpc/boot/crt0.S
> +++ linux-2.6.15-rc1-olh/arch/powerpc/boot/crt0.S
> @@ -14,43 +14,42 @@
> .text
> .globl _zimage_start
> _zimage_start:
> - bl reloc_offset
> + bl 1f
>
> -reloc_offset:
> +1:
> mflr r0
> - lis r9,reloc_offset@ha
> - addi r9,r9,reloc_offset@l
> + lis r9,1b@ha
> + addi r9,r9,1b@l
> subf. r0,r9,r0
> - beq clear_caches
> + beq 3f
[snip]
OK, I've waited for someone dumber than me to ask, but I guess I'm the
bottom guy on the totem pole here.
How does changing a local ascii label to a temporary label _but using
the same machine instructions_ affect the output image size???? Why
would "lis r9,reloc_offset@ha" generate a smaller (!) instruction than
"lis r9,1b@ha"????
My first thought was that the symbol section of the ELF output is
bigger, but the labels are not globals. Even if the local labels end up
in the symbol section (which the comment on the original patch message
sort of implies), that isn't going to make a (stripped) binary any
bigger. If that is the case, isn't a better cure to strip the ELF file?
While I'm being dumb, I gotta ask, how big is zImage and why does 117
bytes make a difference?
My 2c: if you are going to use inscrutable labels (1,2,3,4), please put
comments in. At least the previous labels gave hints as to what was
happening.
Puzzled,
gvb
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ppc boot: replace string labels with numbers
2005-11-17 22:54 ` Jerry Van Baren
@ 2005-11-18 7:42 ` Olaf Hering
2005-11-18 15:30 ` Hollis Blanchard
0 siblings, 1 reply; 6+ messages in thread
From: Olaf Hering @ 2005-11-18 7:42 UTC (permalink / raw)
To: Jerry Van Baren; +Cc: linuxppc-dev
On Thu, Nov 17, Jerry Van Baren wrote:
> While I'm being dumb, I gotta ask, how big is zImage and why does 117
> bytes make a difference?
Because we can.
> My 2c: if you are going to use inscrutable labels (1,2,3,4), please put
> comments in. At least the previous labels gave hints as to what was
> happening.
The code should be obvious.
--
short story of a lazy sysadmin:
alias appserv=wotan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ppc boot: replace string labels with numbers
2005-11-18 7:42 ` Olaf Hering
@ 2005-11-18 15:30 ` Hollis Blanchard
2005-11-18 22:19 ` Olaf Hering
0 siblings, 1 reply; 6+ messages in thread
From: Hollis Blanchard @ 2005-11-18 15:30 UTC (permalink / raw)
To: Olaf Hering; +Cc: linuxppc-dev
On Nov 18, 2005, at 1:42 AM, Olaf Hering wrote:
> On Thu, Nov 17, Jerry Van Baren wrote:
>
>> While I'm being dumb, I gotta ask, how big is zImage and why does 117
>> bytes make a difference?
>
> Because we can.
>
>> My 2c: if you are going to use inscrutable labels (1,2,3,4), please
>> put
>> comments in. At least the previous labels gave hints as to what was
>> happening.
>
> The code should be obvious.
I hope the above was a joke, Olaf.
I too am wondering where the savings come from. Regardless, IMHO 117
bytes is not a worthwhile tradeoff for less maintainable assembly.
BTW, Jerry, the size of the instructions themselves will not change. I
suspect the savings is from things like the symbol table, but I can't
replicate it with a simple "hello world" testcase.
-Hollis
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ppc boot: replace string labels with numbers
2005-11-18 15:30 ` Hollis Blanchard
@ 2005-11-18 22:19 ` Olaf Hering
0 siblings, 0 replies; 6+ messages in thread
From: Olaf Hering @ 2005-11-18 22:19 UTC (permalink / raw)
To: Hollis Blanchard; +Cc: linuxppc-dev
On Fri, Nov 18, Hollis Blanchard wrote:
> >The code should be obvious.
>
> I hope the above was a joke, Olaf.
Not really. Perhaps I have been working on that code for too long now.
Its the string table that makes a difference.
--
short story of a lazy sysadmin:
alias appserv=wotan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ppc boot: replace string labels with numbers
2005-11-17 21:09 [PATCH] ppc boot: replace string labels with numbers Olaf Hering
2005-11-17 22:54 ` Jerry Van Baren
@ 2005-12-01 21:58 ` Tom Rini
1 sibling, 0 replies; 6+ messages in thread
From: Tom Rini @ 2005-12-01 21:58 UTC (permalink / raw)
To: Olaf Hering; +Cc: linuxppc-dev
On Thu, Nov 17, 2005 at 10:09:02PM +0100, Olaf Hering wrote:
> Replacing the string labels with numbers saves 117 bytes in the final zImage.
> These local labels are not discared.
>
> Signed-off-by: Olaf Hering <olh@suse.de>
And kicks easy-understanding right in the, somethings...
NAK. If it's not too late, of course (vacation catchup is fun!)
--
Tom Rini
http://gate.crashing.org/~trini/
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-12-01 21:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-17 21:09 [PATCH] ppc boot: replace string labels with numbers Olaf Hering
2005-11-17 22:54 ` Jerry Van Baren
2005-11-18 7:42 ` Olaf Hering
2005-11-18 15:30 ` Hollis Blanchard
2005-11-18 22:19 ` Olaf Hering
2005-12-01 21:58 ` Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).