4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-03-01 12:35:44 +08:00

2002-05-13 Jeff Johnston <jjohnstn@redhat.com>

* libc/machine/powerpc/vfprintf.c(__VFPRINTF_R)[__ALTIVEC__]: Don't
        allow v specifier with n or L specifiers.  For vector c format,
        move tmp declaration to the top.
This commit is contained in:
Jeff Johnston 2002-05-13 20:59:40 +00:00
parent 9a0da7d704
commit 48d91b4a37
2 changed files with 21 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2002-05-13 Jeff Johnston <jjohnstn@redhat.com>
* libc/machine/powerpc/vfprintf.c(__VFPRINTF_R)[__ALTIVEC__]: Don't
allow v specifier with n or L specifiers. For vector c format,
move tmp declaration to the top.
2002-05-13 Jeff Johnston <jjohnstn@redhat.com> 2002-05-13 Jeff Johnston <jjohnstn@redhat.com>
* libc/machine/powerpc/vfprintf.c(__VFPRINTF_R)[__ALTIVEC__]: Restore * libc/machine/powerpc/vfprintf.c(__VFPRINTF_R)[__ALTIVEC__]: Restore

View File

@ -615,7 +615,13 @@ reswitch: switch (ch) {
goto reswitch; goto reswitch;
#ifdef FLOATING_POINT #ifdef FLOATING_POINT
case 'L': case 'L':
flags &= ~VECTOR; #ifdef __ALTIVEC__
if (flags & VECTOR)
{
fmt = format_anchor;
continue;
}
#endif /* __ALTIVEC__ */
flags |= LONGDBL; flags |= LONGDBL;
goto rflag; goto rflag;
#endif #endif
@ -676,12 +682,12 @@ reswitch: switch (ch) {
if (flags & VECTOR) if (flags & VECTOR)
{ {
int k; int k;
vec_16_byte_union tmp;
if (flags & (SHORTINT | LONGINT)) if (flags & (SHORTINT | LONGINT))
{ {
fmt = format_anchor; fmt = format_anchor;
continue; continue;
} }
vec_16_byte_union tmp;
tmp.v = va_arg(ap, vector int); tmp.v = va_arg(ap, vector int);
cp = buf; cp = buf;
for (k = 0; k < 15; ++k) for (k = 0; k < 15; ++k)
@ -858,8 +864,14 @@ reswitch: switch (ch) {
break; break;
#endif /* FLOATING_POINT */ #endif /* FLOATING_POINT */
case 'n': case 'n':
#ifdef __ALTIVEC__
if (flags & VECTOR)
{
fmt = format_anchor;
continue;
}
#endif /* __ALTIVEC__ */
#ifndef _NO_LONGLONG #ifndef _NO_LONGLONG
flags &= ~VECTOR;
if (flags & QUADINT) if (flags & QUADINT)
*va_arg(ap, quad_t *) = ret; *va_arg(ap, quad_t *) = ret;
else else