From 420be8df92533bfbd56861dada670045720ba633 Mon Sep 17 00:00:00 2001 From: alc Date: Sun, 10 Apr 2005 18:12:07 +0000 Subject: Eliminate a conditional branch and as a side-effect eliminate a branch to a return instruction. (The latter is discouraged by the Opteron optimization manual because it disables branch prediction for the return instruction.) Reviewed by: bde --- lib/libc/amd64/string/bcmp.S | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/libc/amd64/string/bcmp.S b/lib/libc/amd64/string/bcmp.S index bb72035..36a0c7e 100644 --- a/lib/libc/amd64/string/bcmp.S +++ b/lib/libc/amd64/string/bcmp.S @@ -6,7 +6,6 @@ __FBSDID("$FreeBSD$"); #endif ENTRY(bcmp) - xorl %eax,%eax /* clear return value */ cld /* set compare direction forward */ movq %rdx,%rcx /* compare by words */ @@ -19,7 +18,7 @@ ENTRY(bcmp) andq $7,%rcx repe cmpsb - je L2 - -L1: incl %eax -L2: ret +L1: + setne %al + movsbl %al,%eax + ret -- cgit v1.1