This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] size reduction of Cell/SPU variable argument part


Hidetaka Takano wrote:
To: Jeff Johnston
Cc: newlib ML members

I added the "new BSD lisence" to the new files (*.S) of my patch.
But I did not add it to the other files because of simple and tiny changes.

Now is this acceptable?


Yes, the licensing is fine, thanks. When you have dealt with Patrick's comments, it should be ready to be checked in.


-- Jeff J.

Thank you.
---
Hidetaka Takano / Toshiba

========================================================
newlib/ChangeLog:

2007-08-xx Hidetaka Takano <hidetaka.takano@glb.toshiba.co.jp>

	Reduce the memory consumption of variable argument functions
	for SPU (cell):
	* libc/machine/spu/Makefile.am: Replace printf/scanf family C sources
	  to assembler sources.
	* libc/machine/spu/Makefile.in: Regenerated.
	* libc/machine/spu/stdio.c: Add __check_init function wrapping
	  CHECK_INIT macro to use from assembler routines.
	* libc/machine/spu/c99ppe.h: Add definitions for assembler code.
	* libc/machine/spu/fiprintf.S: New file.
	* libc/machine/spu/fiscanf.S: Ditto.
	* libc/machine/spu/fprintf.S: Ditto.
	* libc/machine/spu/fscanf.S: Ditto.
	* libc/machine/spu/iprintf.S: Ditto.
	* libc/machine/spu/iscanf.S: Ditto.
	* libc/machine/spu/printf.S: Ditto.
	* libc/machine/spu/scanf.S: Ditto.
	* libc/machine/spu/siprintf.S: Ditto.
	* libc/machine/spu/siscanf.S: Ditto.
	* libc/machine/spu/sniprintf.S: Ditto.
	* libc/machine/spu/snprintf.S: Ditto.
	* libc/machine/spu/sprintf.S: Ditto.
	* libc/machine/spu/sscanf.S: Ditto.
	* libc/machine/spu/stack_reg_va.S: Ditto.
	* libc/machine/spu/fiprintf.c: Removed. (Replaced by .S)
	* libc/machine/spu/fiscanf.c: Ditto.
	* libc/machine/spu/fprintf.c: Ditto.
	* libc/machine/spu/fscanf.c: Ditto.
	* libc/machine/spu/iprintf.c: Ditto.
	* libc/machine/spu/iscanf.c: Ditto.
	* libc/machine/spu/printf.c: Ditto.
	* libc/machine/spu/scanf.c: Ditto.
	* libc/machine/spu/siprintf.c: Ditto.
	* libc/machine/spu/siscanf.c: Ditto.
	* libc/machine/spu/sniprintf.c: Ditto.
	* libc/machine/spu/snprintf.c: Ditto.
	* libc/machine/spu/sprintf.c: Ditto.
	* libc/machine/spu/sscanf.c: Ditto.

========================================================

Index: newlib/libc/machine/spu/Makefile.in
===================================================================
RCS file: /cvs/src/src/newlib/libc/machine/spu/Makefile.in,v
retrieving revision 1.12
diff -u -r1.12 Makefile.in
--- newlib/libc/machine/spu/Makefile.in 15 Jun 2007 16:00:46 -0000 1.12
+++ newlib/libc/machine/spu/Makefile.in 15 Aug 2007 10:42:22 -0000
@@ -73,13 +73,6 @@
$(srcdir)/../../../../compile $(srcdir)/../../../../compile \
$(srcdir)/../../../../compile $(srcdir)/../../../../compile \
$(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
- $(srcdir)/../../../../compile $(srcdir)/../../../../compile \
$(srcdir)/../../../../compile
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -135,7 +128,8 @@
lib_a-vprintf.$(OBJEXT) lib_a-vscanf.$(OBJEXT) \
lib_a-vsiprintf.$(OBJEXT) lib_a-vsiscanf.$(OBJEXT) \
lib_a-vsniprintf.$(OBJEXT) lib_a-vsnprintf.$(OBJEXT) \
- lib_a-vsprintf.$(OBJEXT) lib_a-vsscanf.$(OBJEXT)
+ lib_a-vsprintf.$(OBJEXT) lib_a-vsscanf.$(OBJEXT) \
+ lib_a-stack_reg_va.$(OBJEXT)
lib_a_OBJECTS = $(am_lib_a_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp =
@@ -261,18 +255,18 @@
noinst_LIBRARIES = lib.a
AM_CCASFLAGS = $(INCLUDES)
lib_a_SOURCES = setjmp.S clearerr.c creat.c fclose.c feof.c ferror.c fflush.c \
- fgetc.c fgetpos.c fgets.c fileno.c fiprintf.c fiscanf.c fopen.c \
- fprintf.c fputc.c fputs.c fread.c freopen.c fscanf.c fseek.c \
- fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c iprintf.c \
- iscanf.c memcpy.c memmove.c memset.c perror.c printf.c \
- putc.c putchar.c puts.c remove.c rename.c rewind.c scanf.c \
- setbuf.c setvbuf.c siprintf.c siscanf.c sleep.c sniprintf.c \
- snprintf.c sprintf.c sscanf.c stdio.c strcat.c strchr.c strcmp.c \
+ fgetc.c fgetpos.c fgets.c fileno.c fiprintf.S fiscanf.S fopen.c \
+ fprintf.S fputc.c fputs.c fread.c freopen.c fscanf.S fseek.c \
+ fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c iprintf.S \
+ iscanf.S memcpy.c memmove.c memset.c perror.c printf.S \
+ putc.c putchar.c puts.c remove.c rename.c rewind.c scanf.S \
+ setbuf.c setvbuf.c siprintf.S siscanf.S sleep.c sniprintf.S \
+ snprintf.S sprintf.S sscanf.S stdio.c strcat.c strchr.c strcmp.c \
strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c strpbrk.c \
strrchr.c strspn.c strxfrm.c tmpfile.c tmpnam.c ungetc.c usleep.c \
vfiprintf.c vfiscanf.c vfprintf.c vfscanf.c viprintf.c viscanf.c \
vprintf.c vscanf.c vsiprintf.c vsiscanf.c vsniprintf.c vsnprintf.c \
- vsprintf.c vsscanf.c
+ vsprintf.c vsscanf.c stack_reg_va.S
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
@@ -341,6 +335,96 @@
lib_a-setjmp.obj: setjmp.S
$(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.obj `if test -f 'setjmp.S'; then $(CYGPATH_W) 'setjmp.S'; else
$(CYGPATH_W) '$(srcdir)/setjmp.S'; fi`
+lib_a-fiprintf.o: fiprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fiprintf.o `test -f 'fiprintf.S' || echo '$(srcdir)/'`fiprintf.S
+
+lib_a-fiprintf.obj: fiprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fiprintf.obj `if test -f 'fiprintf.S'; then $(CYGPATH_W) 'fiprintf.S';
else $(CYGPATH_W) '$(srcdir)/fiprintf.S'; fi`
+
+lib_a-fiscanf.o: fiscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fiscanf.o `test -f 'fiscanf.S' || echo '$(srcdir)/'`fiscanf.S
+
+lib_a-fiscanf.obj: fiscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fiscanf.obj `if test -f 'fiscanf.S'; then $(CYGPATH_W) 'fiscanf.S'; else
$(CYGPATH_W) '$(srcdir)/fiscanf.S'; fi`
+
+lib_a-fprintf.o: fprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fprintf.o `test -f 'fprintf.S' || echo '$(srcdir)/'`fprintf.S
+
+lib_a-fprintf.obj: fprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fprintf.obj `if test -f 'fprintf.S'; then $(CYGPATH_W) 'fprintf.S'; else
$(CYGPATH_W) '$(srcdir)/fprintf.S'; fi`
+
+lib_a-fscanf.o: fscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fscanf.o `test -f 'fscanf.S' || echo '$(srcdir)/'`fscanf.S
+
+lib_a-fscanf.obj: fscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-fscanf.obj `if test -f 'fscanf.S'; then $(CYGPATH_W) 'fscanf.S'; else
$(CYGPATH_W) '$(srcdir)/fscanf.S'; fi`
+
+lib_a-iprintf.o: iprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-iprintf.o `test -f 'iprintf.S' || echo '$(srcdir)/'`iprintf.S
+
+lib_a-iprintf.obj: iprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-iprintf.obj `if test -f 'iprintf.S'; then $(CYGPATH_W) 'iprintf.S'; else
$(CYGPATH_W) '$(srcdir)/iprintf.S'; fi`
+
+lib_a-iscanf.o: iscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-iscanf.o `test -f 'iscanf.S' || echo '$(srcdir)/'`iscanf.S
+
+lib_a-iscanf.obj: iscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-iscanf.obj `if test -f 'iscanf.S'; then $(CYGPATH_W) 'iscanf.S'; else
$(CYGPATH_W) '$(srcdir)/iscanf.S'; fi`
+
+lib_a-printf.o: printf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-printf.o `test -f 'printf.S' || echo '$(srcdir)/'`printf.S
+
+lib_a-printf.obj: printf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-printf.obj `if test -f 'printf.S'; then $(CYGPATH_W) 'printf.S'; else
$(CYGPATH_W) '$(srcdir)/printf.S'; fi`
+
+lib_a-scanf.o: scanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-scanf.o `test -f 'scanf.S' || echo '$(srcdir)/'`scanf.S
+
+lib_a-scanf.obj: scanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-scanf.obj `if test -f 'scanf.S'; then $(CYGPATH_W) 'scanf.S'; else
$(CYGPATH_W) '$(srcdir)/scanf.S'; fi`
+
+lib_a-siprintf.o: siprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-siprintf.o `test -f 'siprintf.S' || echo '$(srcdir)/'`siprintf.S
+
+lib_a-siprintf.obj: siprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-siprintf.obj `if test -f 'siprintf.S'; then $(CYGPATH_W) 'siprintf.S';
else $(CYGPATH_W) '$(srcdir)/siprintf.S'; fi`
+
+lib_a-siscanf.o: siscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-siscanf.o `test -f 'siscanf.S' || echo '$(srcdir)/'`siscanf.S
+
+lib_a-siscanf.obj: siscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-siscanf.obj `if test -f 'siscanf.S'; then $(CYGPATH_W) 'siscanf.S'; else
$(CYGPATH_W) '$(srcdir)/siscanf.S'; fi`
+
+lib_a-sniprintf.o: sniprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sniprintf.o `test -f 'sniprintf.S' || echo '$(srcdir)/'`sniprintf.S
+
+lib_a-sniprintf.obj: sniprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sniprintf.obj `if test -f 'sniprintf.S'; then $(CYGPATH_W)
'sniprintf.S'; else $(CYGPATH_W) '$(srcdir)/sniprintf.S'; fi`
+
+lib_a-snprintf.o: snprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-snprintf.o `test -f 'snprintf.S' || echo '$(srcdir)/'`snprintf.S
+
+lib_a-snprintf.obj: snprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-snprintf.obj `if test -f 'snprintf.S'; then $(CYGPATH_W) 'snprintf.S';
else $(CYGPATH_W) '$(srcdir)/snprintf.S'; fi`
+
+lib_a-sprintf.o: sprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sprintf.o `test -f 'sprintf.S' || echo '$(srcdir)/'`sprintf.S
+
+lib_a-sprintf.obj: sprintf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sprintf.obj `if test -f 'sprintf.S'; then $(CYGPATH_W) 'sprintf.S'; else
$(CYGPATH_W) '$(srcdir)/sprintf.S'; fi`
+
+lib_a-sscanf.o: sscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sscanf.o `test -f 'sscanf.S' || echo '$(srcdir)/'`sscanf.S
+
+lib_a-sscanf.obj: sscanf.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-sscanf.obj `if test -f 'sscanf.S'; then $(CYGPATH_W) 'sscanf.S'; else
$(CYGPATH_W) '$(srcdir)/sscanf.S'; fi`
+
+lib_a-stack_reg_va.o: stack_reg_va.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-stack_reg_va.o `test -f 'stack_reg_va.S' || echo
'$(srcdir)/'`stack_reg_va.S
+
+lib_a-stack_reg_va.obj: stack_reg_va.S
+ $(CCAS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-stack_reg_va.obj `if test -f 'stack_reg_va.S'; then $(CYGPATH_W)
'stack_reg_va.S'; else $(CYGPATH_W) '$(srcdir)/stack_reg_va.S'; fi`
+
.c.o:
$(COMPILE) -c $<
@@ -407,30 +491,12 @@
lib_a-fileno.obj: fileno.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fileno.obj
`if test -f 'fileno.c'; then $(CYGPATH_W) 'fileno.c'; else $(CYGPATH_W) '$(srcdir)/fileno.c'; fi`
-lib_a-fiprintf.o: fiprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fiprintf.o
`test -f 'fiprintf.c' || echo '$(srcdir)/'`fiprintf.c
-
-lib_a-fiprintf.obj: fiprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fiprintf.obj
`if test -f 'fiprintf.c'; then $(CYGPATH_W) 'fiprintf.c'; else $(CYGPATH_W) '$(srcdir)/fiprintf.c'; fi`
-
-lib_a-fiscanf.o: fiscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fiscanf.o
`test -f 'fiscanf.c' || echo '$(srcdir)/'`fiscanf.c
-
-lib_a-fiscanf.obj: fiscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fiscanf.obj
`if test -f 'fiscanf.c'; then $(CYGPATH_W) 'fiscanf.c'; else $(CYGPATH_W) '$(srcdir)/fiscanf.c'; fi`
-
lib_a-fopen.o: fopen.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fopen.o `test
-f 'fopen.c' || echo '$(srcdir)/'`fopen.c
lib_a-fopen.obj: fopen.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fopen.obj `if
test -f 'fopen.c'; then $(CYGPATH_W) 'fopen.c'; else $(CYGPATH_W) '$(srcdir)/fopen.c'; fi`
-lib_a-fprintf.o: fprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fprintf.o
`test -f 'fprintf.c' || echo '$(srcdir)/'`fprintf.c
-
-lib_a-fprintf.obj: fprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fprintf.obj
`if test -f 'fprintf.c'; then $(CYGPATH_W) 'fprintf.c'; else $(CYGPATH_W) '$(srcdir)/fprintf.c'; fi`
-
lib_a-fputc.o: fputc.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fputc.o `test
-f 'fputc.c' || echo '$(srcdir)/'`fputc.c
@@ -455,12 +521,6 @@
lib_a-freopen.obj: freopen.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-freopen.obj
`if test -f 'freopen.c'; then $(CYGPATH_W) 'freopen.c'; else $(CYGPATH_W) '$(srcdir)/freopen.c'; fi`
-lib_a-fscanf.o: fscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fscanf.o
`test -f 'fscanf.c' || echo '$(srcdir)/'`fscanf.c
-
-lib_a-fscanf.obj: fscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fscanf.obj
`if test -f 'fscanf.c'; then $(CYGPATH_W) 'fscanf.c'; else $(CYGPATH_W) '$(srcdir)/fscanf.c'; fi`
-
lib_a-fseek.o: fseek.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fseek.o `test
-f 'fseek.c' || echo '$(srcdir)/'`fseek.c
@@ -503,18 +563,6 @@
lib_a-gets.obj: gets.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-gets.obj `if
test -f 'gets.c'; then $(CYGPATH_W) 'gets.c'; else $(CYGPATH_W) '$(srcdir)/gets.c'; fi`
-lib_a-iprintf.o: iprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-iprintf.o
`test -f 'iprintf.c' || echo '$(srcdir)/'`iprintf.c
-
-lib_a-iprintf.obj: iprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-iprintf.obj
`if test -f 'iprintf.c'; then $(CYGPATH_W) 'iprintf.c'; else $(CYGPATH_W) '$(srcdir)/iprintf.c'; fi`
-
-lib_a-iscanf.o: iscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-iscanf.o
`test -f 'iscanf.c' || echo '$(srcdir)/'`iscanf.c
-
-lib_a-iscanf.obj: iscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-iscanf.obj
`if test -f 'iscanf.c'; then $(CYGPATH_W) 'iscanf.c'; else $(CYGPATH_W) '$(srcdir)/iscanf.c'; fi`
-
lib_a-memcpy.o: memcpy.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memcpy.o
`test -f 'memcpy.c' || echo '$(srcdir)/'`memcpy.c
@@ -539,12 +587,6 @@
lib_a-perror.obj: perror.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-perror.obj
`if test -f 'perror.c'; then $(CYGPATH_W) 'perror.c'; else $(CYGPATH_W) '$(srcdir)/perror.c'; fi`
-lib_a-printf.o: printf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-printf.o
`test -f 'printf.c' || echo '$(srcdir)/'`printf.c
-
-lib_a-printf.obj: printf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-printf.obj
`if test -f 'printf.c'; then $(CYGPATH_W) 'printf.c'; else $(CYGPATH_W) '$(srcdir)/printf.c'; fi`
-
lib_a-putc.o: putc.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-putc.o `test
-f 'putc.c' || echo '$(srcdir)/'`putc.c
@@ -581,12 +623,6 @@
lib_a-rewind.obj: rewind.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rewind.obj
`if test -f 'rewind.c'; then $(CYGPATH_W) 'rewind.c'; else $(CYGPATH_W) '$(srcdir)/rewind.c'; fi`
-lib_a-scanf.o: scanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scanf.o `test
-f 'scanf.c' || echo '$(srcdir)/'`scanf.c
-
-lib_a-scanf.obj: scanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scanf.obj `if
test -f 'scanf.c'; then $(CYGPATH_W) 'scanf.c'; else $(CYGPATH_W) '$(srcdir)/scanf.c'; fi`
-
lib_a-setbuf.o: setbuf.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-setbuf.o
`test -f 'setbuf.c' || echo '$(srcdir)/'`setbuf.c
@@ -599,48 +635,12 @@
lib_a-setvbuf.obj: setvbuf.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-setvbuf.obj
`if test -f 'setvbuf.c'; then $(CYGPATH_W) 'setvbuf.c'; else $(CYGPATH_W) '$(srcdir)/setvbuf.c'; fi`
-lib_a-siprintf.o: siprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-siprintf.o
`test -f 'siprintf.c' || echo '$(srcdir)/'`siprintf.c
-
-lib_a-siprintf.obj: siprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-siprintf.obj
`if test -f 'siprintf.c'; then $(CYGPATH_W) 'siprintf.c'; else $(CYGPATH_W) '$(srcdir)/siprintf.c'; fi`
-
-lib_a-siscanf.o: siscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-siscanf.o
`test -f 'siscanf.c' || echo '$(srcdir)/'`siscanf.c
-
-lib_a-siscanf.obj: siscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-siscanf.obj
`if test -f 'siscanf.c'; then $(CYGPATH_W) 'siscanf.c'; else $(CYGPATH_W) '$(srcdir)/siscanf.c'; fi`
-
lib_a-sleep.o: sleep.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sleep.o `test
-f 'sleep.c' || echo '$(srcdir)/'`sleep.c
lib_a-sleep.obj: sleep.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sleep.obj `if
test -f 'sleep.c'; then $(CYGPATH_W) 'sleep.c'; else $(CYGPATH_W) '$(srcdir)/sleep.c'; fi`
-lib_a-sniprintf.o: sniprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sniprintf.o
`test -f 'sniprintf.c' || echo '$(srcdir)/'`sniprintf.c
-
-lib_a-sniprintf.obj: sniprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sniprintf.obj
`if test -f 'sniprintf.c'; then $(CYGPATH_W) 'sniprintf.c'; else $(CYGPATH_W) '$(srcdir)/sniprintf.c'; fi`
-
-lib_a-snprintf.o: snprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-snprintf.o
`test -f 'snprintf.c' || echo '$(srcdir)/'`snprintf.c
-
-lib_a-snprintf.obj: snprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-snprintf.obj
`if test -f 'snprintf.c'; then $(CYGPATH_W) 'snprintf.c'; else $(CYGPATH_W) '$(srcdir)/snprintf.c'; fi`
-
-lib_a-sprintf.o: sprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sprintf.o
`test -f 'sprintf.c' || echo '$(srcdir)/'`sprintf.c
-
-lib_a-sprintf.obj: sprintf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sprintf.obj
`if test -f 'sprintf.c'; then $(CYGPATH_W) 'sprintf.c'; else $(CYGPATH_W) '$(srcdir)/sprintf.c'; fi`
-
-lib_a-sscanf.o: sscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sscanf.o
`test -f 'sscanf.c' || echo '$(srcdir)/'`sscanf.c
-
-lib_a-sscanf.obj: sscanf.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sscanf.obj
`if test -f 'sscanf.c'; then $(CYGPATH_W) 'sscanf.c'; else $(CYGPATH_W) '$(srcdir)/sscanf.c'; fi`
-
lib_a-stdio.o: stdio.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-stdio.o `test
-f 'stdio.c' || echo '$(srcdir)/'`stdio.c
Index: newlib/libc/machine/spu/sniprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/sniprintf.c
diff -N newlib/libc/machine/spu/sniprintf.c
--- newlib/libc/machine/spu/sniprintf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "snprintf.c"
Index: newlib/libc/machine/spu/fprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/fprintf.c
diff -N newlib/libc/machine/spu/fprintf.c
--- newlib/libc/machine/spu/fprintf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,81 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define fprintf fiprintf
-#endif
-
-typedef struct
-{
- int fp;
- unsigned int pad0[ 3 ];
- _CONST char* fmt;
- unsigned int pad1[ 3 ];
- va_list ap;
-} c99_fprintf_t;
-
-#ifndef _REENT_ONLY
-
-int
-fprintf(FILE * fp, _CONST char *fmt,...)
-{
- int ret;
- c99_fprintf_t args;
-
- CHECK_INIT(_REENT);
-
- args.fp = fp->_fp;
- args.fmt = (char*) fmt;
-
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
- ret =__send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
-
- va_end (args.ap);
- return ret;
-}
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/sprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/sprintf.c
diff -N newlib/libc/machine/spu/sprintf.c
--- newlib/libc/machine/spu/sprintf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,82 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define sprintf siprintf
-#endif
-
-typedef struct
-{
- char* str;
- unsigned int pad0[ 3 ];
- _CONST char* fmt;
- unsigned int pad1[ 3 ];
- va_list ap;
-} c99_sprintf_t;
-
-#ifndef _REENT_ONLY
-
-_DEFUN(sprintf, (str, fmt),
- char *str _AND
- _CONST char *fmt _DOTS)
-{
- int ret;
- c99_sprintf_t args;
-
- CHECK_STR_INIT(_REENT);
-
- args.str = str;
- args.fmt = fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
-
- va_end (args.ap);
- return ret;
-}
-
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/sscanf.c
===================================================================
RCS file: newlib/libc/machine/spu/sscanf.c
diff -N newlib/libc/machine/spu/sscanf.c
--- newlib/libc/machine/spu/sscanf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,83 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define sscanf siscanf
-#endif
-
-typedef struct
-{
- _CONST char* str;
- unsigned int pad0[ 3 ];
- _CONST char* fmt;
- unsigned int pad1[ 3 ];
- va_list ap;
-} c99_sscanf_t;
-
-#ifndef _REENT_ONLY
-
-int
-_DEFUN(sscanf, (str, fmt),
- _CONST char *str _AND
- _CONST char *fmt _DOTS)
-{
- int ret;
- c99_sscanf_t args;
-
- CHECK_STR_INIT(_REENT);
-
- args.str = str;
- args.fmt = fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
-
- va_end (args.ap);
- return ret;
-}
-
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/stdio.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/machine/spu/stdio.c,v
retrieving revision 1.1
diff -u -r1.1 stdio.c
--- newlib/libc/machine/spu/stdio.c 1 Feb 2007 16:33:05 -0000 1.1
+++ newlib/libc/machine/spu/stdio.c 15 Aug 2007 10:42:23 -0000
@@ -80,3 +80,9 @@
s->_stderr = &s->__sf[2];
s->_stderr->_fp = SPE_STDERR;
}
+
+_VOID
+_DEFUN_VOID (__check_init)
+{
+ CHECK_INIT(_REENT);
+}
Index: newlib/libc/machine/spu/printf.c
===================================================================
RCS file: newlib/libc/machine/spu/printf.c
diff -N newlib/libc/machine/spu/printf.c
--- newlib/libc/machine/spu/printf.c 23 May 2007 21:41:17 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,56 +0,0 @@
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define printf iprintf
-#endif
-
-typedef struct
-{
- _CONST char* fmt;
- unsigned int pad0[ 3 ];
- va_list ap;
-} c99_printf_t;
-
-#ifndef _REENT_ONLY
-
-#ifdef _HAVE_STDC
-int
-_DEFUN (printf, (fmt,ap),
- _CONST char *fmt _AND
- ...)
-#else
-int
-#error
-printf (fmt, va_alist)
- _CONST char *fmt;
- va_dcl
-#endif
-{
- int ret;
- c99_printf_t args;
-
- CHECK_STD_INIT(_REENT);
-
- args.fmt = fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args);
-
- va_end (args.ap);
- return ret;
-}
-
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/snprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/snprintf.c
diff -N newlib/libc/machine/spu/snprintf.c
--- newlib/libc/machine/spu/snprintf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,86 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define snprintf sniprintf
-#endif
-
-typedef struct
-{
- char* str;
- unsigned int pad0[ 3 ];
- size_t size;
- unsigned int pad1[ 3 ];
- _CONST char* fmt;
- unsigned int pad2[ 3 ];
- va_list ap;
-} c99_snprintf_t;
-
-#ifndef _REENT_ONLY
-
-_DEFUN(snprintf, (str, size, fmt),
- char *str _AND
- size_t size _AND
- _CONST char *fmt _DOTS)
-{
- int ret;
- c99_snprintf_t args;
-
- CHECK_STR_INIT(_REENT);
-
- args.str = str;
- args.size = size;
- args.fmt = fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
-
- va_end (args.ap);
- return ret;
-}
-
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/scanf.c
===================================================================
RCS file: newlib/libc/machine/spu/scanf.c
diff -N newlib/libc/machine/spu/scanf.c
--- newlib/libc/machine/spu/scanf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,78 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define scanf iscanf
-#endif
-
-typedef struct
-{
- _CONST char* fmt;
- unsigned int pad0[ 3 ];
- va_list ap;
-} c99_vscanf_t;
-
-#ifndef _REENT_ONLY
-
-scanf(_CONST char *fmt, ...)
-{
- int ret;
- c99_vscanf_t args;
-
- CHECK_STD_INIT(_REENT);
-
- args.fmt = (char*) fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
-
- va_end (args.ap);
- return ret;
-}
-
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/fiprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/fiprintf.c
diff -N newlib/libc/machine/spu/fiprintf.c
--- newlib/libc/machine/spu/fiprintf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "fprintf.c"
Index: newlib/libc/machine/spu/iprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/iprintf.c
diff -N newlib/libc/machine/spu/iprintf.c
--- newlib/libc/machine/spu/iprintf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "printf.c"
Index: newlib/libc/machine/spu/Makefile.am
===================================================================
RCS file: /cvs/src/src/newlib/libc/machine/spu/Makefile.am,v
retrieving revision 1.11
diff -u -r1.11 Makefile.am
--- newlib/libc/machine/spu/Makefile.am 15 Jun 2007 16:00:46 -0000 1.11
+++ newlib/libc/machine/spu/Makefile.am 15 Aug 2007 10:42:09 -0000
@@ -9,18 +9,18 @@
AM_CCASFLAGS = $(INCLUDES)
lib_a_SOURCES = setjmp.S clearerr.c creat.c fclose.c feof.c ferror.c fflush.c \
- fgetc.c fgetpos.c fgets.c fileno.c fiprintf.c fiscanf.c fopen.c \
- fprintf.c fputc.c fputs.c fread.c freopen.c fscanf.c fseek.c \
- fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c iprintf.c \
- iscanf.c memcpy.c memmove.c memset.c perror.c printf.c \
- putc.c putchar.c puts.c remove.c rename.c rewind.c scanf.c \
- setbuf.c setvbuf.c siprintf.c siscanf.c sleep.c sniprintf.c \
- snprintf.c sprintf.c sscanf.c stdio.c strcat.c strchr.c strcmp.c \
+ fgetc.c fgetpos.c fgets.c fileno.c fiprintf.S fiscanf.S fopen.c \
+ fprintf.S fputc.c fputs.c fread.c freopen.c fscanf.S fseek.c \
+ fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c iprintf.S \
+ iscanf.S memcpy.c memmove.c memset.c perror.c printf.S \
+ putc.c putchar.c puts.c remove.c rename.c rewind.c scanf.S \
+ setbuf.c setvbuf.c siprintf.S siscanf.S sleep.c sniprintf.S \
+ snprintf.S sprintf.S sscanf.S stdio.c strcat.c strchr.c strcmp.c \
strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c strpbrk.c \
strrchr.c strspn.c strxfrm.c tmpfile.c tmpnam.c ungetc.c usleep.c \
vfiprintf.c vfiscanf.c vfprintf.c vfscanf.c viprintf.c viscanf.c \
vprintf.c vscanf.c vsiprintf.c vsiscanf.c vsniprintf.c vsnprintf.c \
- vsprintf.c vsscanf.c
+ vsprintf.c vsscanf.c stack_reg_va.S
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
Index: newlib/libc/machine/spu/siscanf.c
===================================================================
RCS file: newlib/libc/machine/spu/siscanf.c
diff -N newlib/libc/machine/spu/siscanf.c
--- newlib/libc/machine/spu/siscanf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "sscanf.c"
Index: newlib/libc/machine/spu/fiscanf.c
===================================================================
RCS file: newlib/libc/machine/spu/fiscanf.c
diff -N newlib/libc/machine/spu/fiscanf.c
--- newlib/libc/machine/spu/fiscanf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "fscanf.c"
Index: newlib/libc/machine/spu/c99ppe.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/machine/spu/c99ppe.h,v
retrieving revision 1.4
diff -u -r1.4 c99ppe.h
--- newlib/libc/machine/spu/c99ppe.h 4 Apr 2007 21:03:13 -0000 1.4
+++ newlib/libc/machine/spu/c99ppe.h 15 Aug 2007 10:42:23 -0000
@@ -30,11 +30,26 @@
Author: Joel Schopp <jschopp@austin.ibm.com>
*/
+#define SPE_C99_SIGNALCODE 0x2100
+
+#ifdef __ASSEMBLER__
+
+#define STACK_REGS 72 /* Number of registers preserved in stack
+ in case of variable argument API. */
+
+#define SPE_C99_VFPRINTF 0x23
+#define SPE_C99_VFSCANF 0x24
+#define SPE_C99_VPRINTF 0x25
+#define SPE_C99_VSCANF 0x26
+#define SPE_C99_VSNPRINTF 0x27
+#define SPE_C99_VSPRINTF 0x28
+#define SPE_C99_VSSCANF 0x29
+
+#else /* __ASSEMBLER__ */
+
#include <errno.h>
#include <sys/syscall.h>
-#define SPE_C99_SIGNALCODE 0x2100
-
#define SPE_C99_OP_SHIFT 24
#define SPE_C99_OP_MASK 0xff
#define SPE_C99_DATA_MASK 0xffffff
@@ -102,3 +117,5 @@
do { if ((ptr) && !(ptr)->__sdidinit) __sinit (ptr); } while (0)
#define CHECK_STD_INIT(ptr) /* currently, do nothing */
#define CHECK_STR_INIT(ptr) /* currently, do nothing */
+
+#endif /* __ASSEMBLER__ */
Index: newlib/libc/machine/spu/iscanf.c
===================================================================
RCS file: newlib/libc/machine/spu/iscanf.c
diff -N newlib/libc/machine/spu/iscanf.c
--- newlib/libc/machine/spu/iscanf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "scanf.c"
Index: newlib/libc/machine/spu/fscanf.c
===================================================================
RCS file: newlib/libc/machine/spu/fscanf.c
diff -N newlib/libc/machine/spu/fscanf.c
--- newlib/libc/machine/spu/fscanf.c 23 May 2007 21:41:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,80 +0,0 @@
-/*
-(C) Copyright IBM Corp. 2006
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
- * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-Author: Joel Schopp <jschopp@austin.ibm.com>
-*/
-
-#include <_ansi.h>
-#include <stdio.h>
-
-#include "c99ppe.h"
-
-#ifdef _HAVE_STDC
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-#ifdef INTEGER_ONLY
-# define fscanf fiscanf
-#endif
-
-typedef struct
-{
- int fp;
- unsigned int pad0[ 3 ];
- _CONST char* fmt;
- unsigned int pad1[ 3 ];
- va_list ap;
-} c99_vfscanf_t;
-
-#ifndef _REENT_ONLY
-
-fscanf(FILE *fp, _CONST char *fmt, ...)
-{
- int ret;
- c99_vfscanf_t args;
-
- CHECK_INIT(_REENT);
-
- args.fp = fp->_fp;
- args.fmt = (char*) fmt;
-#ifdef _HAVE_STDC
- va_start (args.ap, fmt);
-#else
- va_start (args.ap);
-#endif
-
-
- ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
-
- va_end (args.ap);
- return ret;
-}
-#endif /* ! _REENT_ONLY */
Index: newlib/libc/machine/spu/siprintf.c
===================================================================
RCS file: newlib/libc/machine/spu/siprintf.c
diff -N newlib/libc/machine/spu/siprintf.c
--- newlib/libc/machine/spu/siprintf.c 20 Feb 2007 20:58:38 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,2 +0,0 @@
-#define INTEGER_ONLY
-#include "sprintf.c"
Index: newlib/libc/machine/spu/sprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/sprintf.S
diff -N newlib/libc/machine/spu/sprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/sprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME sprintf
+#define PARMS 2
+#define OPCODE SPE_C99_VSPRINTF
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/fprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/fprintf.S
diff -N newlib/libc/machine/spu/fprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/fprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,63 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME fprintf
+#define PARMS 2
+#define OPCODE SPE_C99_VFPRINTF
+#define FP 3
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ brsl $0, __check_init
+ lqd $3, 16*(FP-1)($sp) /* $3 <- saved FP on the stack frame */
+ lqd $2, 0($3) /* FP = fp->_fp */
+ rotqby $2, $2, $3
+ stqd $2, 16*(FP-1)($sp) /* replace FP on the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/siprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/siprintf.S
diff -N newlib/libc/machine/spu/siprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/siprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define sprintf siprintf
+#include "sprintf.S"
Index: newlib/libc/machine/spu/sniprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/sniprintf.S
diff -N newlib/libc/machine/spu/sniprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/sniprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define snprintf sniprintf
+#include "snprintf.S"
Index: newlib/libc/machine/spu/printf.S
===================================================================
RCS file: newlib/libc/machine/spu/printf.S
diff -N newlib/libc/machine/spu/printf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/printf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME printf
+#define PARMS 1
+#define OPCODE SPE_C99_VPRINTF
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/stack_reg_va.S
===================================================================
RCS file: newlib/libc/machine/spu/stack_reg_va.S
diff -N newlib/libc/machine/spu/stack_reg_va.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/stack_reg_va.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,166 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * This file contains code use to construct a PIC, spu side, syscall + * function with variable parameters in accordance with the CBE ABI.
+ *
+ * This function is equivalent to constructing a va_list structure and + * calling the va_list form of the function. Therefore, for example,
+ * a printf function stack frame will look like this:
+ *
+ * | Stack | high memory
+ * | Parms |
+ * | |
+ * |------------|
+ * | Link Reg |
+ * |------------|
+ * | Back Chain |<-----. <---- input SP
+ * |------------| |
+ * | Reg 74 | |
+ * |------------| |
+ * | Reg 73 | |
+ * |------------| |
+ * // ... // |
+ * |------------| |
+ * | Reg 5 | |
+ * |------------| |
+ * | Reg 4 |<--. |
+ * |------------| | |
+ * va_list.| call_stack |------'
+ * |------------| | + * va_list.| next_arg |---'
+ * |------------| + * | format (r3)| <---- start of parameters
+ * |------------| |------------|
+ * | stack | | |
+ * | code | |(Back Chain)| <---- output SP
+ * | 1-3 qwords | <---- code_ptr `------------'
+ * `------------'
+ * low memory
+ *
+ * This was written in assembly so that it is smaller than what would
+ * be produced by using va_start.
+ */
+
+#include "c99ppe.h"
+
+#define parms $2
+
+#define offset $67
+#define flag $68
+#define regdec $69
+#define link $70
+
+#define code_ptr $71
+#define ptr $72
+#define inst $73
+#define tmp $74
+
+ .text
+ .global __stack_reg_va
+
+__stack_reg_va:
+
+ /* Save registers 69-74 explicitly so that we have some
+ * working registers. + */
+ stqd $74, 16*(-1)($sp)
+ stqd $73, 16*(-2)($sp)
+ stqd $72, 16*(-3)($sp)
+ stqd $71, 16*(-4)($sp)
+ stqd $70, 16*(-5)($sp)
+ stqd $69, 16*(-6)($sp)
+
+ /* Construct self-modifying stack code that saves the remaining
+ * volatile registers onto the stack.
+ */
+ il regdec, -1 /* for decrement register value in save instruction */
+ shlqbyi regdec, regdec, 12
+ il tmp, -(STACK_REGS+2+3)*16
+ a code_ptr, $sp, tmp
+ lqr tmp, save_regs_1 /* store stack code */
+ stqd tmp, 0(code_ptr)
+ lqr inst, save_regs_2
+ ai ptr, $sp, 16*(-6)
+ sync
+ bisl link, code_ptr /* branch to the constructed stack code */
+
+ /* Adjust pointer so that it points to the first variable
+ * argument on the stack.
+ */
+ ai offset, parms, -1 /* offset = parms - 1 */
+ mpyi offset, offset, 16 /* offset = offset * 16 */
+ a ptr, ptr, offset /* ptr = ptr + offset */
+
+ /* Store the va_list to the parameter list.
+ */
+ stqd $sp, 16*(-1)(ptr)
+ stqd ptr, 16*(-2)(ptr)
+
+ /* Make $3 store address.
+ */
+ ai offset, parms, 2 /* offset = parms + 2 */
+ mpyi offset, offset, -16 /* offset = offset * -16 */
+ a ptr, ptr, offset /* ptr = ptr + offset */
+
+ /* Save all the fixed (non-variable arguments on the stack)
+ */
+ ceqi flag, parms, 0x01 /* if(parms==1) flag=0xFFFFFFFF */
+ brnz flag, reg_3 /* if(flag!=0) jump */
+ ceqi flag, parms, 0x02 /* if(parms==2) flag=0xFFFFFFFF */
+ brnz flag, reg_4 /* if(flag!=0) jump */
+ stqd $5, 16*2(ptr)
+reg_4:
+ stqd $4, 16*1(ptr)
+reg_3:
+ stqd $3, 0(ptr)
+
+ il $3, -16*(STACK_REGS+2+2)
+ stqx $sp, $3, $sp /* save back chain */
+ a $sp, $sp, $3
+ bi $0 /* return to caller */
+
+/***************************** stack code *********************************************/
+
+ /* The following code is copied into the stack for re-entract,
+ * self-modified, code execution. This code copies the volatile
+ * registers into a va_list parameter array.
+ */
+ .balignl 16, 0
+save_regs_1:
+ stqd inst, 16(code_ptr) /* store instruction */
+ sync
+ a inst, inst, regdec /* decrement register number in the instruction */
+ ceqbi tmp, inst, 3 /* if (reg-num == 3) tmp = 0x000000FF 000..0 */
+save_regs_2:
+ stqd $68, -16(ptr)
+ ai ptr, ptr, -16
+ brz tmp, save_regs_1 /* if (tmp == 0) jump */
+ bi link /* finish to make va_list */
Index: newlib/libc/machine/spu/siscanf.S
===================================================================
RCS file: newlib/libc/machine/spu/siscanf.S
diff -N newlib/libc/machine/spu/siscanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/siscanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define sscanf siscanf
+#include "sscanf.S"
Index: newlib/libc/machine/spu/fscanf.S
===================================================================
RCS file: newlib/libc/machine/spu/fscanf.S
diff -N newlib/libc/machine/spu/fscanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/fscanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,63 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME fscanf
+#define PARMS 2
+#define OPCODE SPE_C99_VFSCANF
+#define FP 3
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ brsl $0, __check_init
+ lqd $3, 16*(FP-1)($sp) /* $3 <- saved FP on the stack frame */
+ lqd $2, 0($3) /* FP = fp->_fp */
+ rotqby $2, $2, $3
+ stqd $2, 16*(FP-1)($sp) /* replace FP on the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/sscanf.S
===================================================================
RCS file: newlib/libc/machine/spu/sscanf.S
diff -N newlib/libc/machine/spu/sscanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/sscanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME sscanf
+#define PARMS 2
+#define OPCODE SPE_C99_VSSCANF
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/iprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/iprintf.S
diff -N newlib/libc/machine/spu/iprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/iprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define printf iprintf
+#include "printf.S"
Index: newlib/libc/machine/spu/iscanf.S
===================================================================
RCS file: newlib/libc/machine/spu/iscanf.S
diff -N newlib/libc/machine/spu/iscanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/iscanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define scanf iscanf
+#include "scanf.S"
Index: newlib/libc/machine/spu/snprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/snprintf.S
diff -N newlib/libc/machine/spu/snprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/snprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME snprintf
+#define PARMS 3
+#define OPCODE SPE_C99_VSNPRINTF
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/scanf.S
===================================================================
RCS file: newlib/libc/machine/spu/scanf.S
diff -N newlib/libc/machine/spu/scanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/scanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "c99ppe.h"
+
+#define SIGCODE SPE_C99_SIGNALCODE
+#define NAME scanf
+#define PARMS 1
+#define OPCODE SPE_C99_VSCANF
+
+#define parms $2
+
+ .text
+ .align 4
+ GLOBL NAME
+NAME:
+ stqd $0, 16($sp) /* save caller address */
+ il parms, PARMS
+ brsl $0, __stack_reg_va /* save register to the stack frame */
+
+ il $3, SIGCODE /* signal code */
+ il $4, OPCODE /* op code */
+ ai $5, $sp, 16*2 /* data ($3 save address) */
+ brsl $0, __send_to_ppe
+
+ il $2, 16*(STACK_REGS+2+2)
+ a $sp, $sp, $2
+ lqd $0, 16($sp) /* load caller address */
+ bi $0 /* return to caller */
Index: newlib/libc/machine/spu/fiscanf.S
===================================================================
RCS file: newlib/libc/machine/spu/fiscanf.S
diff -N newlib/libc/machine/spu/fiscanf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/fiscanf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define fscanf fiscanf
+#include "fscanf.S"
Index: newlib/libc/machine/spu/fiprintf.S
===================================================================
RCS file: newlib/libc/machine/spu/fiprintf.S
diff -N newlib/libc/machine/spu/fiprintf.S
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ newlib/libc/machine/spu/fiprintf.S 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2007, Toshiba Corporation
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the names of Toshiba nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#define fprintf fiprintf
+#include "fprintf.S"




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]