linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [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).