mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
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
|
||
---|---|---|
.. | ||
970 | ||
a2 | ||
bits | ||
cell | ||
fpu | ||
multiarch | ||
power4 | ||
power5 | ||
power5+ | ||
power6 | ||
power6x | ||
power7 | ||
power8 | ||
power9 | ||
__longjmp-common.S | ||
__longjmp.S | ||
addmul_1.S | ||
atomic-machine.h | ||
backtrace.c | ||
bsd-_setjmp.S | ||
bsd-setjmp.S | ||
bzero.S | ||
configure | ||
configure.ac | ||
crti.S | ||
crtn.S | ||
dl-dtprocnum.h | ||
dl-irel.h | ||
dl-machine.c | ||
dl-machine.h | ||
dl-trampoline.S | ||
entry.h | ||
ffsll.c | ||
hp-timing.h | ||
Implies | ||
lshift.S | ||
Makefile | ||
memcpy.S | ||
memset.S | ||
mul_1.S | ||
ppc-mcount.S | ||
register-dump.h | ||
rtld-memset.c | ||
setjmp-common.S | ||
setjmp.S | ||
stackguard-macros.h | ||
start.S | ||
strchr.S | ||
strcmp.S | ||
strlen.S | ||
strncmp.S | ||
strtok_r.S | ||
strtok.S | ||
submul_1.S | ||
sysdep.h | ||
tls-macros.h | ||
tst-audit.h |