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]

[PATCH] spu return rc value from __send_to_ppe


Jeff can you please apply?

Changes from last post: modified per Kazunori's comments - remove unused
variables, use int vs int* for some return values. And removed the now
unused syscall_out_t structure.

Per Ulrich Weigand's suggestion, return the rc value in __send_to_ppe,
rather than doing so in each each caller of __send_to_ppe, so no code is
generated to return the value (since the return value is always in
register 3).

This moves 8 bytes (2 instructions) from the caller into __send_to_ppe. So
to see any savings in size, you have to call two different assist calls.

libgloss ChangeLog:

2007-05-22 Patrick Mansfield <patmans@us.ibm.com>

	* spu/syscalls.c: Change __send_to_ppe to return the result stored
	in stored in slot 0 of the data, rather than have each assisted
	call retrieve the value.
	* spu/jsre.h: Remove the now unused syscall_out_t.
	* spu/access.c: Use the __send_to_ppe result instead of the slot 0
	value, remove unused syscall_out_t variable.
	* spu/close.c: Ditto.
	* spu/dup.c: Ditto.
	* spu/fstat.c: Ditto.
	* spu/ftruncate.c: Ditto.
	* spu/gettimeofday.c: Ditto.
	* spu/lseek.c: Ditto.
	* spu/open.c: Ditto.
	* spu/read.c: Ditto.
	* spu/stat.c: Ditto.
	* spu/unlink.c: Ditto.
	* spu/write.c: Ditto.

newlib ChangeLog:

2007-05-22 Patrick Mansfield <patmans@us.ibm.com>

	* libc/machine/spu/sys/syscall.h: Update the __send_to_ppe
	prototype.
	* libc/machine/spu/fclose.c: Use the __send_to_ppe return value
	instead of the slot 0 value, remove any now unused variables, and
	for some cases, now store the result in an int vs int*.
	* libc/machine/spu/feof.c: Ditto.
	* libc/machine/spu/ferror.c: Ditto.
	* libc/machine/spu/fflush.c: Ditto.
	* libc/machine/spu/fgetc.c: Ditto.
	* libc/machine/spu/fgetpos.c: Ditto.
	* libc/machine/spu/fgets.c: Ditto.
	* libc/machine/spu/fileno.c: Ditto.
	* libc/machine/spu/fopen.c: Ditto.
	* libc/machine/spu/fprintf.c: Ditto.
	* libc/machine/spu/fputc.c: Ditto.
	* libc/machine/spu/fputs.c: Ditto.
	* libc/machine/spu/fread.c: Ditto.
	* libc/machine/spu/freopen.c: Ditto.
	* libc/machine/spu/fscanf.c: Ditto.
	* libc/machine/spu/fseek.c: Ditto.
	* libc/machine/spu/fsetpos.c: Ditto.
	* libc/machine/spu/ftell.c: Ditto.
	* libc/machine/spu/fwrite.c: Ditto.
	* libc/machine/spu/getc.c: Ditto.
	* libc/machine/spu/getchar.c: Ditto.
	* libc/machine/spu/gets.c: Ditto.
	* libc/machine/spu/printf.c: Ditto.
	* libc/machine/spu/putc.c: Ditto.
	* libc/machine/spu/putchar.c: Ditto.
	* libc/machine/spu/puts.c: Ditto.
	* libc/machine/spu/remove.c: Ditto.
	* libc/machine/spu/rename.c: Ditto.
	* libc/machine/spu/scanf.c: Ditto.
	* libc/machine/spu/setvbuf.c: Ditto.
	* libc/machine/spu/snprintf.c: Ditto.
	* libc/machine/spu/sprintf.c: Ditto.
	* libc/machine/spu/sscanf.c: Ditto.
	* libc/machine/spu/tmpfile.c: Ditto.
	* libc/machine/spu/tmpnam.c: Ditto.
	* libc/machine/spu/ungetc.c: Ditto.
	* libc/machine/spu/vfprintf.c: Ditto.
	* libc/machine/spu/vfscanf.c: Ditto.
	* libc/machine/spu/vprintf.c: Ditto.
	* libc/machine/spu/vscanf.c: Ditto.
	* libc/machine/spu/vsnprintf.c: Ditto.
	* libc/machine/spu/vsprintf.c: Ditto.
	* libc/machine/spu/vsscanf.c: Ditto.
Index: my-base-quilt/libgloss/spu/access.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/access.c
+++ my-base-quilt/libgloss/spu/access.c
@@ -35,13 +35,8 @@ int
 access (const char *pathname, int mode)
 {
         syscall_access_t sys;
-        syscall_out_t   *psys_out = ( syscall_out_t* )&sys;
 
         sys.pathname = (unsigned int) pathname;
         sys.mode = mode;
-
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_ACCESS, &sys);
-
-        return ( psys_out->rc);
+        return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_ACCESS, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/close.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/close.c
+++ my-base-quilt/libgloss/spu/close.c
@@ -35,13 +35,8 @@ Author: Andreas Neukoetter (ti95neuk@de.
 int
 close (int file)
 {
-        syscall_close_t sys ;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
+        syscall_close_t sys;
 
 	sys.file = file;
-
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_CLOSE, &sys);
-
-        return ( psys_out->rc);
+        return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_CLOSE, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/dup.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/dup.c
+++ my-base-quilt/libgloss/spu/dup.c
@@ -35,12 +35,7 @@ int
 dup (int oldfd)
 {
         syscall_dup_t sys;
-        syscall_out_t   *psys_out = ( syscall_out_t* )&sys;
 
         sys.oldfd = oldfd;
-
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_DUP, &sys);
-
-        return ( psys_out->rc);
+        return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_DUP, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/fstat.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/fstat.c
+++ my-base-quilt/libgloss/spu/fstat.c
@@ -37,13 +37,12 @@ int
 fstat (int file, struct stat *pstat)
 {
         syscall_fstat_t sys;
-        syscall_out_t   *psys_out = ( syscall_out_t* )&sys;
         jsre_stat_t pjstat;
+        int ret;
 
         sys.file = file;
         sys.ptr = ( unsigned int )&pjstat;
-
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_FSTAT, &sys);
+        ret = __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_FSTAT, &sys);
 
         pstat->st_dev = pjstat.dev;
         pstat->st_ino = pjstat.ino;
@@ -59,7 +58,5 @@ fstat (int file, struct stat *pstat)
         pstat->st_mtime = pjstat.mtime;
         pstat->st_ctime = pjstat.ctime;
 
-
-        return( psys_out->rc );
+        return ret;
 }
-
Index: my-base-quilt/libgloss/spu/ftruncate.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/ftruncate.c
+++ my-base-quilt/libgloss/spu/ftruncate.c
@@ -35,13 +35,8 @@ int
 ftruncate (int file, off_t length)
 {
 	syscall_ftruncate_t sys;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
 
 	sys.file = file;
 	sys.length = length;
-
-	__send_to_ppe(JSRE_POSIX1_SIGNALCODE, JSRE_FTRUNCATE, &sys);
-
-	return ( psys_out->rc);
+	return __send_to_ppe(JSRE_POSIX1_SIGNALCODE, JSRE_FTRUNCATE, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/gettimeofday.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/gettimeofday.c
+++ my-base-quilt/libgloss/spu/gettimeofday.c
@@ -38,12 +38,8 @@ int
 gettimeofday (struct timeval *tv, struct timezone *tz)
 {
 	syscall_gettimeofday_t sys;
-	syscall_out_t *psys_out = ( syscall_out_t* )&sys;
 
 	sys.tv = (unsigned int)tv;
 	sys.tz = (unsigned int)tz;
-
-	__send_to_ppe(JSRE_POSIX1_SIGNALCODE, JSRE_GETTIMEOFDAY, &sys);
-
-	return (psys_out->rc);
+	return __send_to_ppe(JSRE_POSIX1_SIGNALCODE, JSRE_GETTIMEOFDAY, &sys);
 }
Index: my-base-quilt/libgloss/spu/lseek.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/lseek.c
+++ my-base-quilt/libgloss/spu/lseek.c
@@ -37,7 +37,6 @@ off_t
 lseek (int file, off_t offset, int whence)
 {
         syscall_lseek_t sys;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
 
 	sys.file = file;
 	sys.offset = offset;
@@ -54,8 +53,5 @@ lseek (int file, off_t offset, int whenc
 			break;
 	}
 
-	__send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_LSEEK, &sys);
-
-        return ( psys_out->rc);
+	return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_LSEEK, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/open.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/open.c
+++ my-base-quilt/libgloss/spu/open.c
@@ -37,8 +37,7 @@ Author: Andreas Neukoetter (ti95neuk@de.
 int
 open (const char *filename, int flags, ...)
 {
-        syscall_open_t sys ;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
+        syscall_open_t sys;
         va_list ap;
 
         sys.pathname = ( unsigned int )filename;
@@ -70,8 +69,5 @@ open (const char *filename, int flags, .
         sys.mode = va_arg (ap, int);
         va_end (ap);
 
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_OPEN, &sys);
-
-        return ( psys_out->rc);
+        return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_OPEN, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/read.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/read.c
+++ my-base-quilt/libgloss/spu/read.c
@@ -37,14 +37,9 @@ int
 read (int file, void *ptr, size_t len)
 {
         syscall_write_t sys;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
 
 	sys.file = file;
 	sys.ptr = ( unsigned int )ptr;
 	sys.len = len;
-
-	__send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_READ, &sys);
-
-        return ( psys_out->rc);
+	return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_READ, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/stat.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/stat.c
+++ my-base-quilt/libgloss/spu/stat.c
@@ -38,13 +38,12 @@ int
 stat (const char *pathname, struct stat *pstat)
 {
 	syscall_stat_t sys;
-	syscall_out_t   *psys_out = ( syscall_out_t* )&sys;
 	jsre_stat_t pjstat;
+	int ret;
 
 	sys.pathname = (unsigned int)pathname;
 	sys.ptr = ( unsigned int )&pjstat;
-
-	__send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_STAT, &sys);
+	ret = __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_STAT, &sys);
 
 	pstat->st_dev = pjstat.dev;
 	pstat->st_ino = pjstat.ino;
@@ -60,6 +59,5 @@ stat (const char *pathname, struct stat 
 	pstat->st_mtime = pjstat.mtime;
 	pstat->st_ctime = pjstat.ctime;
 
-	return( psys_out->rc );
+	return ret;
 }
-
Index: my-base-quilt/libgloss/spu/syscalls.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/syscalls.c
+++ my-base-quilt/libgloss/spu/syscalls.c
@@ -32,7 +32,7 @@ Author: Andreas Neukoetter (ti95neuk@de.
 #include <errno.h>
 #include "jsre.h"
 
-void
+int
 __send_to_ppe (unsigned int signalcode, unsigned int opcode, void *data)
 {
 
@@ -49,5 +49,10 @@ __send_to_ppe (unsigned int signalcode, 
         asm ("sync");
         f ();
         errno = ((unsigned int *) data)[3];
+
+        /*
+         * Return the rc code stored in slot 0.
+         */
+        return ((unsigned int *) data)[0];
 }
 
Index: my-base-quilt/libgloss/spu/unlink.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/unlink.c
+++ my-base-quilt/libgloss/spu/unlink.c
@@ -35,13 +35,8 @@ Author: Andreas Neukoetter (ti95neuk@de.
 int
 unlink (const char *pathname)
 {
-        syscall_unlink_t sys ;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
+        syscall_unlink_t sys;
 
 	sys.pathname = ( unsigned int )pathname;
-
-        __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_UNLINK, &sys);
-
-        return ( psys_out->rc);
+        return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_UNLINK, &sys);
 }
-
Index: my-base-quilt/libgloss/spu/write.c
===================================================================
--- my-base-quilt.orig/libgloss/spu/write.c
+++ my-base-quilt/libgloss/spu/write.c
@@ -37,14 +37,9 @@ int
 write (int file, const void *ptr, size_t len)
 {
         syscall_write_t sys;
-	syscall_out_t	*psys_out = ( syscall_out_t* )&sys;
 
 	sys.file = file;
 	sys.ptr = ( unsigned int )ptr;
 	sys.len = len;
-
-	__send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_WRITE, &sys);
-
-        return ( psys_out->rc);
+	return __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_WRITE, &sys);
 }
-
Index: my-base-quilt/newlib/libc/machine/spu/fclose.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fclose.c
+++ my-base-quilt/newlib/libc/machine/spu/fclose.c
@@ -46,7 +46,7 @@ _DEFUN (fclose, (fp),
 
   ret = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FCLOSE, &ret);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FCLOSE, &ret);
 
   __sfp_free(fp);
 
Index: my-base-quilt/newlib/libc/machine/spu/feof.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/feof.c
+++ my-base-quilt/newlib/libc/machine/spu/feof.c
@@ -46,9 +46,6 @@ _DEFUN (feof, (fp),
 
   result = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FEOF, &result);
-
-
-  return result;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FEOF, &result);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/ferror.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/ferror.c
+++ my-base-quilt/newlib/libc/machine/spu/ferror.c
@@ -46,9 +46,6 @@ _DEFUN (ferror, (fp),
 
   result = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FERROR, &result);
-
-
-  return result;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FERROR, &result);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fflush.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fflush.c
+++ my-base-quilt/newlib/libc/machine/spu/fflush.c
@@ -45,9 +45,6 @@ _DEFUN (fflush, (fp),
 
   result = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FFLUSH, &result);
-
-
-  return result;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FFLUSH, &result);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fgetc.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fgetc.c
+++ my-base-quilt/newlib/libc/machine/spu/fgetc.c
@@ -46,8 +46,6 @@ _DEFUN (fgetc, (fp),
 
   result = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETC, &result);
-
-  return result;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETC, &result);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fgetpos.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fgetpos.c
+++ my-base-quilt/newlib/libc/machine/spu/fgetpos.c
@@ -49,18 +49,12 @@ _DEFUN (fgetpos, (fp, pos),
 	_fpos_t * pos)
 {
   c99_fgetpos_t arg;
-  int* result;
 
   CHECK_INIT(_REENT);
 
-  result = (int*)&arg;
-
   arg.fp = fp->_fp;
   arg.pos = pos;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETPOS, &arg);
-
-
-  return *result;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETPOS, &arg);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fgets.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fgets.c
+++ my-base-quilt/newlib/libc/machine/spu/fgets.c
@@ -51,7 +51,6 @@ _DEFUN (fgets, (buf, n, fp),
 	int n _AND
 	FILE * fp)
 {
-  char** ret;
   c99_fgets_t args;
 
   CHECK_INIT(_REENT);
@@ -59,10 +58,7 @@ _DEFUN (fgets, (buf, n, fp),
   args.buf = buf;
   args.n = n;
   args.fp = fp->_fp;
-  ret = (char**) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETS, &args);
-
-  return *ret;
+  return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FGETS, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fileno.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fileno.c
+++ my-base-quilt/newlib/libc/machine/spu/fileno.c
@@ -47,8 +47,6 @@ _DEFUN (fileno, (fp),
 
   ret = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FILENO, &ret);
-
-  return ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FILENO, &ret);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fopen.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fopen.c
+++ my-base-quilt/newlib/libc/machine/spu/fopen.c
@@ -49,7 +49,7 @@ _DEFUN (fopen, (file, mode),
 	_CONST char *file _AND
 	_CONST char *mode)
 {
-  int *ret;
+  int ret;
   c99_fopen_t args;
   FILE *fp;
   struct _reent *ptr = _REENT;
@@ -63,12 +63,11 @@ _DEFUN (fopen, (file, mode),
 
   args.file = file;
   args.mode = mode;
-  ret = (int *) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FOPEN, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FOPEN, &args);
 
-  if (*ret) {
-    fp->_fp = *ret;
+  if (ret) {
+    fp->_fp = ret;
     return fp;
   }
   else {
Index: my-base-quilt/newlib/libc/machine/spu/fprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/fprintf.c
@@ -59,13 +59,11 @@ typedef struct
 int
 fprintf(FILE * fp, _CONST char *fmt,...)
 {
-  int* ret;
+  int ret;
   c99_fprintf_t args;
 
   CHECK_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fp = fp->_fp;
   args.fmt = (char*) fmt;
 
@@ -75,9 +73,9 @@ fprintf(FILE * fp, _CONST char *fmt,...)
   va_start (args.ap);
 #endif
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
+  ret =__send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fputc.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fputc.c
+++ my-base-quilt/newlib/libc/machine/spu/fputc.c
@@ -50,17 +50,13 @@ fputc (c, fp)
      int c;
      register FILE *fp;
 {
-  int* ret;
   c99_fputc_t args;
 
   CHECK_INIT(_REENT);
 
   args.ch = c;
   args.fp = fp->_fp;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTC, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTC, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fputs.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fputs.c
+++ my-base-quilt/newlib/libc/machine/spu/fputs.c
@@ -50,17 +50,13 @@ _DEFUN (fputs, (s, fp),
 	char _CONST * s _AND
 	FILE * fp)
 {
-  int* ret;
   c99_fputs_t args;
 
   CHECK_INIT(_REENT);
 
   args.s = s;
   args.fp = fp->_fp;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTS, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FPUTS, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fread.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fread.c
+++ my-base-quilt/newlib/libc/machine/spu/fread.c
@@ -55,7 +55,6 @@ _DEFUN (fread, (buf, size, count, fp),
 	size_t count _AND
 	FILE * fp)
 {
-  size_t* ret;
   c99_fread_t args;
 
   CHECK_INIT(_REENT);
@@ -64,10 +63,7 @@ _DEFUN (fread, (buf, size, count, fp),
   args.size = size;
   args.count = count;
   args.fp = fp->_fp;
-  ret = (size_t*) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREAD, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREAD, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/freopen.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/freopen.c
+++ my-base-quilt/newlib/libc/machine/spu/freopen.c
@@ -52,7 +52,7 @@ _DEFUN (freopen, (file, mode, fp),
 	const char *mode _AND
 	FILE *fp)
 {
-  int *ret;
+  int ret;
   c99_freopen_t args;
 
   CHECK_INIT(_REENT);
@@ -60,12 +60,11 @@ _DEFUN (freopen, (file, mode, fp),
   args.file = file;
   args.mode = mode;
   args.fp = fp->_fp;
-  ret = (int *) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREOPEN, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FREOPEN, &args);
 
-  if (*ret) {
-    fp->_fp = *ret;
+  if (ret) {
+    fp->_fp = ret;
     return fp;
   }
   else {
Index: my-base-quilt/newlib/libc/machine/spu/fscanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fscanf.c
+++ my-base-quilt/newlib/libc/machine/spu/fscanf.c
@@ -58,13 +58,11 @@ typedef struct
 
 fscanf(FILE *fp, _CONST char *fmt, ...)
 {
-  int* ret;
+  int ret;
   c99_vfscanf_t args;
 
   CHECK_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fp = fp->_fp;
   args.fmt = (char*) fmt;
 #ifdef _HAVE_STDC
@@ -74,9 +72,9 @@ fscanf(FILE *fp, _CONST char *fmt, ...)
 #endif
 
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fseek.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fseek.c
+++ my-base-quilt/newlib/libc/machine/spu/fseek.c
@@ -52,7 +52,6 @@ _DEFUN (fseek, (fp, offset, whence),
      long offset _AND
      int whence)
 {
-  int* ret;
   c99_fseek_t args;
 
   CHECK_INIT(_REENT);
@@ -60,10 +59,7 @@ _DEFUN (fseek, (fp, offset, whence),
   args.fp = fp->_fp;
   args.offset = offset;
   args.whence = whence;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSEEK, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSEEK, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fsetpos.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fsetpos.c
+++ my-base-quilt/newlib/libc/machine/spu/fsetpos.c
@@ -49,17 +49,13 @@ _DEFUN (fsetpos, (iop, pos),
 	FILE * iop _AND
 	_CONST _fpos_t * pos)
 {
-  int* ret;
   c99_fsetpos_t args;
 
   CHECK_INIT(_REENT);
 
   args.fp = iop->_fp;
   args.pos = pos;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSETPOS, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FSETPOS, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/ftell.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/ftell.c
+++ my-base-quilt/newlib/libc/machine/spu/ftell.c
@@ -47,8 +47,6 @@ _DEFUN (ftell, (fp),
 
   ret = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FTELL, &ret);
-
-  return ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FTELL, &ret);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/fwrite.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/fwrite.c
+++ my-base-quilt/newlib/libc/machine/spu/fwrite.c
@@ -55,7 +55,6 @@ _DEFUN (fwrite, (buf, size, count, fp),
 	size_t count _AND
 	FILE * fp)
 {
-  size_t* ret;
   c99_fwrite_t args;
 
   CHECK_INIT(_REENT);
@@ -64,10 +63,7 @@ _DEFUN (fwrite, (buf, size, count, fp),
   args.size = size;
   args.count = count;
   args.fp = fp->_fp;
-  ret = (size_t*) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FWRITE, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_FWRITE, &args);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/getc.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/getc.c
+++ my-base-quilt/newlib/libc/machine/spu/getc.c
@@ -49,8 +49,6 @@ getc (fp)
 
   ret = fp->_fp;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETC, &ret);
-
-  return ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETC, &ret);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/getchar.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/getchar.c
+++ my-base-quilt/newlib/libc/machine/spu/getchar.c
@@ -45,8 +45,6 @@ getchar ()
 
   CHECK_STD_INIT(_REENT);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETCHAR, &ret);
-
-  return ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETCHAR, &ret);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/gets.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/gets.c
+++ my-base-quilt/newlib/libc/machine/spu/gets.c
@@ -44,8 +44,6 @@ gets (buf)
 
   /* The return value gets written over buf
    */
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETS, &buf);
-
-  return buf;
+  return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_GETS, &buf);
 }
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/printf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/printf.c
+++ my-base-quilt/newlib/libc/machine/spu/printf.c
@@ -35,13 +35,11 @@ printf (fmt, va_alist)
      va_dcl
 #endif
 {
-  int* ret;
+  int ret;
   c99_printf_t args;
 
   CHECK_STD_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fmt = fmt;
 #ifdef _HAVE_STDC
   va_start (args.ap, fmt);
@@ -49,10 +47,10 @@ printf (fmt, va_alist)
   va_start (args.ap);
 #endif
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/putc.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/putc.c
+++ my-base-quilt/newlib/libc/machine/spu/putc.c
@@ -50,18 +50,14 @@ putc (c, fp)
      int c;
      register FILE *fp;
 {
-  int* ret;
   c99_putc_t args;
 
   CHECK_INIT(_REENT);
 
   args.ch = c;
   args.fp = fp->_fp;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTC, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTC, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/putchar.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/putchar.c
+++ my-base-quilt/newlib/libc/machine/spu/putchar.c
@@ -14,9 +14,7 @@ putchar (c)
 
   /* c gets overwritten before return */
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTCHAR, &c);
-
-  return c;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTCHAR, &c);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/puts.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/puts.c
+++ my-base-quilt/newlib/libc/machine/spu/puts.c
@@ -12,9 +12,7 @@ _DEFUN (puts, (s),
 
   /* The return value gets written over s
    */
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTS, &s);
-
-  return (int)s;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PUTS, &s);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/remove.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/remove.c
+++ my-base-quilt/newlib/libc/machine/spu/remove.c
@@ -41,8 +41,6 @@ remove (filename)
 
   /* The return value gets written over buf
    */
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_REMOVE, &filename);
-
-  return (int)filename;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_REMOVE, &filename);
 }
 
Index: my-base-quilt/newlib/libc/machine/spu/rename.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/rename.c
+++ my-base-quilt/newlib/libc/machine/spu/rename.c
@@ -48,13 +48,9 @@ rename (old, new)
      _CONST char *old;
      _CONST char *new;
 {
-  int *ret;
   c99_rename_t args;
   args.old = old;
   args.new = new;
-  ret = (int*) &args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_RENAME, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_RENAME, &args);
 }
Index: my-base-quilt/newlib/libc/machine/spu/scanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/scanf.c
+++ my-base-quilt/newlib/libc/machine/spu/scanf.c
@@ -56,13 +56,11 @@ typedef struct
 
 scanf(_CONST char *fmt, ...)
 {
-  int* ret;
+  int ret;
   c99_vscanf_t args;
 
   CHECK_STD_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fmt = (char*) fmt;
 #ifdef _HAVE_STDC
   va_start (args.ap, fmt);
@@ -71,10 +69,10 @@ scanf(_CONST char *fmt, ...)
 #endif
 
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/setvbuf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/setvbuf.c
+++ my-base-quilt/newlib/libc/machine/spu/setvbuf.c
@@ -56,7 +56,6 @@ _DEFUN (setvbuf, (fp, buf, mode, size),
 	int mode _AND
 	size_t size)
 {
-  int* ret;
   c99_setvbuf_t args;
 
   CHECK_INIT(_REENT);
@@ -65,11 +64,8 @@ _DEFUN (setvbuf, (fp, buf, mode, size),
   args.buf = buf;
   args.mode = mode;
   args.size = size;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_SETVBUF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_SETVBUF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/snprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/snprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/snprintf.c
@@ -63,13 +63,11 @@ _DEFUN(snprintf, (str, size, fmt),
        size_t size _AND
        _CONST char *fmt _DOTS)
 {
-  int* ret;
+  int ret;
   c99_snprintf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.size = size;
   args.fmt = fmt;
@@ -79,10 +77,10 @@ _DEFUN(snprintf, (str, size, fmt),
   va_start (args.ap);
 #endif
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/sprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/sprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/sprintf.c
@@ -60,13 +60,11 @@ _DEFUN(sprintf, (str, fmt),
        char *str _AND
        _CONST char *fmt _DOTS)
 {
-  int* ret;
+  int ret;
   c99_sprintf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.fmt = fmt;
 #ifdef _HAVE_STDC
@@ -75,10 +73,10 @@ _DEFUN(sprintf, (str, fmt),
   va_start (args.ap);
 #endif
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/sscanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/sscanf.c
+++ my-base-quilt/newlib/libc/machine/spu/sscanf.c
@@ -61,13 +61,11 @@ _DEFUN(sscanf, (str, fmt),
        _CONST char *str _AND
        _CONST char *fmt _DOTS)
 {
-  int* ret;
+  int ret;
   c99_sscanf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.fmt = fmt;
 #ifdef _HAVE_STDC
@@ -76,10 +74,10 @@ _DEFUN(sscanf, (str, fmt),
   va_start (args.ap);
 #endif
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
 
   va_end (args.ap);
-  return *ret;
+  return ret;
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/tmpfile.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/tmpfile.c
+++ my-base-quilt/newlib/libc/machine/spu/tmpfile.c
@@ -50,7 +50,7 @@ _DEFUN_VOID (tmpfile)
     return NULL;
   }
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPFILE, &ret);
+  ret = __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPFILE, &ret);
 
   if (ret) {
     fp->_fp = ret;
Index: my-base-quilt/newlib/libc/machine/spu/tmpnam.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/tmpnam.c
+++ my-base-quilt/newlib/libc/machine/spu/tmpnam.c
@@ -38,10 +38,7 @@ char *
 _DEFUN (tmpnam, (s),
 	char *s)
 {
-  char **ret = &s;
   /* The return value gets written over buf
    */
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPNAM, &s);
-
-  return *ret;
+  return (char*) __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_TMPNAM, &s);
 }
Index: my-base-quilt/newlib/libc/machine/spu/ungetc.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/ungetc.c
+++ my-base-quilt/newlib/libc/machine/spu/ungetc.c
@@ -50,18 +50,14 @@ ungetc (c, fp)
      int c;
      register FILE *fp;
 {
-  int* ret;
   c99_ungetc_t args;
 
   CHECK_INIT(_REENT);
 
   args.c = c;
   args.fp = fp->_fp;
-  ret = (int*)&args;
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_UNGETC, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_UNGETC, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vfprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vfprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/vfprintf.c
@@ -62,20 +62,15 @@ _DEFUN (vfprintf, (fp, fmt0, ap),
 	_CONST char *fmt0 _AND
 	va_list ap)
 {
-  int* ret;
   c99_vfprintf_t args;
 
   CHECK_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fp = fp->_fp;
   args.fmt = (char*) fmt0;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vfscanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vfscanf.c
+++ my-base-quilt/newlib/libc/machine/spu/vfscanf.c
@@ -62,20 +62,15 @@ _DEFUN (vfscanf, (fp, fmt, ap),
     _CONST char *fmt _AND
     va_list ap)
 {
-  int* ret;
   c99_vfscanf_t args;
 
   CHECK_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fp = fp->_fp;
   args.fmt = (char*) fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/vprintf.c
@@ -27,19 +27,14 @@ _DEFUN (vprintf, (fmt, ap),
      _CONST char *fmt _AND
      va_list ap)
 {
-  int* ret;
   c99_vprintf_t args;
 
   CHECK_STD_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fmt = fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vscanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vscanf.c
+++ my-base-quilt/newlib/libc/machine/spu/vscanf.c
@@ -59,19 +59,14 @@ _DEFUN (vscanf, (fmt, ap),
      _CONST char *fmt _AND
      va_list ap)
 {
-  int* ret;
   c99_vscanf_t args;
 
   CHECK_STD_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.fmt = (char*) fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vsnprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vsnprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/vsnprintf.c
@@ -33,21 +33,16 @@ _DEFUN (vsnprintf, (str, size, fmt, ap),
      _CONST char *fmt _AND
      va_list ap)
 {
-  int* ret;
   c99_vsnprintf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.size = size;
   args.fmt = fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vsprintf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vsprintf.c
+++ my-base-quilt/newlib/libc/machine/spu/vsprintf.c
@@ -31,20 +31,15 @@ _DEFUN (vsprintf, (str, fmt, ap),
      _CONST char *fmt _AND
      va_list ap)
 {
-  int* ret;
   c99_vsprintf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.fmt = (char*) fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/vsscanf.c
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/vsscanf.c
+++ my-base-quilt/newlib/libc/machine/spu/vsscanf.c
@@ -62,20 +62,15 @@ _DEFUN (vsscanf, (str, fmt, ap),
     _CONST char *fmt _AND
     va_list ap)
 {
-  int* ret;
   c99_vsscanf_t args;
 
   CHECK_STR_INIT(_REENT);
 
-  ret = (int*) &args;
-
   args.str = str;
   args.fmt = (char*) fmt;
   va_copy(args.ap,ap);
 
-  __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
-
-  return *ret;
+  return __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
 }
 
 #endif /* ! _REENT_ONLY */
Index: my-base-quilt/newlib/libc/machine/spu/sys/syscall.h
===================================================================
--- my-base-quilt.orig/newlib/libc/machine/spu/sys/syscall.h
+++ my-base-quilt/newlib/libc/machine/spu/sys/syscall.h
@@ -1,4 +1,4 @@
 #ifndef _SYS_SYSCALL_H
 #define _SYS_SYSCALL_H
-void __send_to_ppe(unsigned int signalcode, unsigned int opcode, void *data);
+int __send_to_ppe(unsigned int signalcode, unsigned int opcode, void *data);
 #endif
Index: my-base-quilt/libgloss/spu/jsre.h
===================================================================
--- my-base-quilt.orig/libgloss/spu/jsre.h
+++ my-base-quilt/libgloss/spu/jsre.h
@@ -165,13 +165,6 @@ typedef struct
         unsigned int    pad1[ 3 ];
 } syscall_stat_t;
 
-typedef struct
-{
-	unsigned int	rc;
-	unsigned int	pad0[ 2 ];
-	unsigned int	err;
-} syscall_out_t;
-
 typedef struct {
     unsigned int dev;
     unsigned int ino;


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