This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 26 Jun 2007 21:55:34 -0000, rguenther at suse dot de <gcc-bugzilla@gcc.gnu.org> wrote:
I have a hard time deciding if 3.4 or 4.1 is better:<---- unconditional movsbl.
3.4:
f: pushl %ebp movl %esp, %ebp movl 8(%ebp), %edx movzbl 12(%ebp), %eax testl %edx, %edx je .L2 movb $1, %al .L2: movsbl %al,%eax
// <--- condtional movsblmovl %eax, 8(%ebp) popl %ebp jmp g
4.1 (same as 4.2):
f: pushl %ebp movl $1, %edx movl %esp, %ebp movl 8(%ebp), %ecx movzbl 12(%ebp), %eax testl %ecx, %ecx je .L7 movl %edx, 8(%ebp) popl %ebp jmp g .p2align 4,,7 .L7: movsbl %al,%edx
movl %edx, 8(%ebp)
popl %ebp
jmp g
It is easier to see the diference between 3.4 and the trunk where we don't duplicate the tail call to g.
Thanks, Andrew Pinski
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |