[Bug 15018] New: [PATCH] Use x86 BSR instruction in Log2 functions
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Mar 14 19:19:30 PDT 2008
http://bugs.freedesktop.org/show_bug.cgi?id=15018
Summary: [PATCH] Use x86 BSR instruction in Log2 functions
Product: xorg
Version: unspecified
Platform: Other
OS/Version: All
Status: NEW
Severity: enhancement
Priority: medium
Component: Driver/Radeon
AssignedTo: xorg-driver-ati at lists.x.org
ReportedBy: mattst88 at gmail.com
QAContact: xorg-team at lists.x.org
Created an attachment (id=15133)
--> (http://bugs.freedesktop.org/attachment.cgi?id=15133)
Enable BSR in Log2 functions
This patch edits RADEONLog2 and ATILog2 to use the x86 BSR instruction instead
of looping through bits. It should provide a somewhat of a speed increase in
this function on x86 and AMD64 architectures.
Note: the BSR instruction was added with the 80386 CPU and is therefore not
compatible with earlier CPUs, though I highly doubt it's even possible to use a
286 in conjunction with a Radeon.
The inline assembly also works with Intel's compiler (icc).
Assembly output for current RADEONLog2:
RADEONLog2:
testl %edi, %edi
movl $-1, %eax
je .L4
xorl %eax, %eax
.p2align 4,,7
.L5:
addl $1, %eax
sarl %edi
jne .L5
subl $1, %eax
.L4:
rep ; ret
Assembly output for BSR-enabled RADEONLog2:
RADEONLog2:
movl %edi, %ecx
bsrl %ecx, %eax
ret
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the xorg-driver-ati
mailing list