mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
S390: Don't use r11 for cu-instructions as used as frame-pointer. [BZ# 32192]
Building the s390 specific iconv modules - utf16-utf32-z9.c, utf8-utf32-z9.c and utf8-utf16-z9.c - with -fno-omit-frame-pointer leads to a build error "error: %r11 cannot be used in 'asm' here" as r11 is needed as frame-pointer. The cuXY-instructions need two even-odd register pairs. Therefore the register pinning is used. This patch just uses a different register pair. Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
parent
ced745bcd3
commit
7949f552cb
@ -397,8 +397,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm ("11") = outend - outptr; \
|
register size_t outlen asm ("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2, tmp3; \
|
unsigned long tmp, tmp2, tmp3; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
@ -707,8 +707,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm ("11") = outend - outptr; \
|
register size_t outlen asm ("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2, tmp3; \
|
unsigned long tmp, tmp2, tmp3; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
|
@ -170,8 +170,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput __asm__ ("8") = inptr; \
|
register const unsigned char* pInput __asm__ ("8") = inptr; \
|
||||||
register size_t inlen __asm__ ("9") = inend - inptr; \
|
register size_t inlen __asm__ ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput __asm__ ("10") = outptr; \
|
register unsigned char* pOutput __asm__ ("6") = outptr; \
|
||||||
register size_t outlen __asm__("11") = outend - outptr; \
|
register size_t outlen __asm__("7") = outend - outptr; \
|
||||||
unsigned long cc = 0; \
|
unsigned long cc = 0; \
|
||||||
\
|
\
|
||||||
__asm__ __volatile__ (".machine push \n\t" \
|
__asm__ __volatile__ (".machine push \n\t" \
|
||||||
@ -242,8 +242,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm("11") = outend - outptr; \
|
register size_t outlen asm("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2, tmp3; \
|
unsigned long tmp, tmp2, tmp3; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
@ -818,8 +818,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm ("11") = outend - outptr; \
|
register size_t outlen asm ("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2, tmp3; \
|
unsigned long tmp, tmp2, tmp3; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
|
@ -170,8 +170,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput __asm__ ("8") = inptr; \
|
register const unsigned char* pInput __asm__ ("8") = inptr; \
|
||||||
register size_t inlen __asm__ ("9") = inend - inptr; \
|
register size_t inlen __asm__ ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput __asm__ ("10") = outptr; \
|
register unsigned char* pOutput __asm__ ("6") = outptr; \
|
||||||
register size_t outlen __asm__("11") = outend - outptr; \
|
register size_t outlen __asm__("7") = outend - outptr; \
|
||||||
unsigned long cc = 0; \
|
unsigned long cc = 0; \
|
||||||
\
|
\
|
||||||
__asm__ __volatile__ (".machine push \n\t" \
|
__asm__ __volatile__ (".machine push \n\t" \
|
||||||
@ -475,8 +475,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm("11") = outend - outptr; \
|
register size_t outlen asm("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2, tmp3; \
|
unsigned long tmp, tmp2, tmp3; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
@ -864,8 +864,8 @@ gconv_end (struct __gconv_step *data)
|
|||||||
{ \
|
{ \
|
||||||
register const unsigned char* pInput asm ("8") = inptr; \
|
register const unsigned char* pInput asm ("8") = inptr; \
|
||||||
register size_t inlen asm ("9") = inend - inptr; \
|
register size_t inlen asm ("9") = inend - inptr; \
|
||||||
register unsigned char* pOutput asm ("10") = outptr; \
|
register unsigned char* pOutput asm ("6") = outptr; \
|
||||||
register size_t outlen asm ("11") = outend - outptr; \
|
register size_t outlen asm ("7") = outend - outptr; \
|
||||||
unsigned long tmp, tmp2; \
|
unsigned long tmp, tmp2; \
|
||||||
asm volatile (".machine push\n\t" \
|
asm volatile (".machine push\n\t" \
|
||||||
".machine \"z13\"\n\t" \
|
".machine \"z13\"\n\t" \
|
||||||
|
Loading…
Reference in New Issue
Block a user