]> git.ipfire.org Git - thirdparty/glibc.git/commit
Fix cmpli usage in power6 memset.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 25 Oct 2016 15:54:16 +0000 (15:54 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Sun, 6 Nov 2016 20:19:21 +0000 (21:19 +0100)
commit797c7fb1978abb1f6a6404e0453c4b775fc0cb2e
treeaaf0f231d2edd28614fd9d8f03ed9e7f8bc259c6
parentccebcff824e76f2d3905185b8ae9ff1b51607791
Fix cmpli usage in power6 memset.

Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
with multi-arch enabled, I get the error:

../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand

Indeed, cmpli is documented as a four-operand instruction, and looking
at nearby code it seems likely cmpldi was intended.  This patch fixes
this powerpc64 code accordingly, and makes a corresponding change to
the powerpc32 code.

Tested for powerpc, powerpc64 and powerpc64le by Tulio Magno Quites
Machado Filho

* sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
instead of cmpli.
* sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
instead of cmpli.

(cherry picked from commit 78b7adbaea643f2f213bb113e3ec933416a769a8)
ChangeLog
sysdeps/powerpc/powerpc32/power6/memset.S
sysdeps/powerpc/powerpc64/power6/memset.S