Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 May 2007 01:32:02 +0400
From:      Andrey Chernov <ache@freebsd.org>
To:        "Sean C. Farley" <sean-freebsd@farley.org>
Cc:        Daniel Eischen <deischen@freebsd.org>, arch@freebsd.org
Subject:   Re: HEADS DOWN
Message-ID:  <20070505213202.GA49925@nagual.pp.ru>
In-Reply-To: <20070504174657.D1343@thor.farley.org>
References:  <20070501135439.B36275@thor.farley.org> <20070502.102822.-957833022.imp@bsdimp.com> <Pine.GSO.4.64.0705021332020.8590@sea.ntplx.net> <20070502183100.P1317@baba.farley.org> <Pine.GSO.4.64.0705022034180.8590@sea.ntplx.net> <20070502230413.Y30614@thor.farley.org> <20070503160351.GA15008@nagual.pp.ru> <20070504085905.J39482@thor.farley.org> <20070504213312.GA33163@nagual.pp.ru> <20070504174657.D1343@thor.farley.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 05, 2007 at 03:56:21PM -0500, Sean C. Farley wrote:
>  Interestingly, gcc 3.4.6 on -STABLE does not do such a great job even
>  with -minline-all-stringops.  I do have CPUTYPE?=pentium4 in
>  /etc/make.conf.  Maybe this is only an issue with i386 similar to what
>  you mention below?

Even "cc -O" do that, without any flags, see live example below:

a.c:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

main() {
printf("%d\n", strlen(getenv("HOME")));
}

cc -O -S a.c
cat a.s

	.file	"a.c"
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"HOME"
.LC1:
	.string	"%d\n"
	.text
	.p2align 2,,3
.globl main
	.type	main, @function
main:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	subl	$4, %esp
	andl	$-16, %esp
	subl	$28, %esp
	pushl	$.LC0
	call	getenv
	addl	$8, %esp
	movl	%eax, %edi
	cld
	movl	$-1, %ecx
	movb	$0, %al
	repnz
	scasb
	notl	%ecx
	decl	%ecx
	pushl	%ecx
	pushl	$.LC1
	call	printf
	movl	-4(%ebp), %edi
	leave
	ret
	.size	main, .-main
	.ident	"GCC: (GNU) 3.4.6 [FreeBSD] 20060825"

-- 
http://ache.pp.ru/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070505213202.GA49925>