diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index 11a14634c..a377d7d7e 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,3 +1,10 @@
+2005-05-05  J"orn Rennecke <joern.rennecke@st.com>
+
+        * rs6000/sim-getrusage.S: New file, broken out of:
+        (simulator.S).
+        * rs6000/Makefile.in (SIM_OBJS): Add sim-getrusage.o.
+        (sim-getrusage.o): New rule.
+
 2005-04-28  Shaun Jackman  <sjackman@gmail.com>
 
 	* libgloss/syscalls.c (get_errno): Add an output register constraint.
diff --git a/libgloss/rs6000/Makefile.in b/libgloss/rs6000/Makefile.in
index 65c8c9ec3..920d91128 100644
--- a/libgloss/rs6000/Makefile.in
+++ b/libgloss/rs6000/Makefile.in
@@ -68,7 +68,7 @@ SIM_SCRIPTS	=
 SIM_LDFLAGS	=
 SIM_BSP		= libsim.a
 SIM_CRT0	= sim-crt0.o
-SIM_OBJS	= sim-print.o sim-inbyte.o sim-sbrk.o sim-abort.o sim-errno.o simulator.o
+SIM_OBJS	= sim-print.o sim-inbyte.o sim-sbrk.o sim-abort.o sim-errno.o simulator.o sim-getrusage.o
 SIM_TEST	= sim-test
 SIM_INSTALL	= install-sim
 
@@ -270,6 +270,7 @@ mbx-test.srec:	mbx-test.x
 crt0.o: crt0.S
 
 simulator.o: simulator.S
+sim-getrusage.o: sim-getrusage.S
 sim-crt0.o: sim-crt0.S
 mount.o: mount.S
 
diff --git a/libgloss/rs6000/sim-getrusage.S b/libgloss/rs6000/sim-getrusage.S
new file mode 100644
index 000000000..20f1c6242
--- /dev/null
+++ b/libgloss/rs6000/sim-getrusage.S
@@ -0,0 +1,25 @@
+/*
+ * sim-getrusage.S -- PowerPC simulator getrusage call.
+ *
+ * Copyright (c) 1995, 2000, 2001 Cygnus Support
+ *
+ * The authors hereby grant permission to use, copy, modify, distribute,
+ * and license this software and its documentation for any purpose, provided
+ * that existing copyright notices are retained in all copies and that this
+ * notice is included verbatim in any distributions. No written agreement,
+ * license, or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their authors
+ * and need not follow the licensing terms described here, provided that
+ * the new terms are clearly indicated on the first page of each file where
+ * they apply.
+ */
+
+#include "ppc-asm.h"
+
+FUNC_START(getrusage)
+	li	r0,117
+	sc
+	bns+	0f
+	b	FUNC_NAME(_cerror)
+0:	blr
+FUNC_END(getrusage)
diff --git a/libgloss/rs6000/simulator.S b/libgloss/rs6000/simulator.S
index 4e8becb28..914a761ab 100644
--- a/libgloss/rs6000/simulator.S
+++ b/libgloss/rs6000/simulator.S
@@ -87,14 +87,6 @@ FUNC_START(gettimeofday)
 0:	blr
 FUNC_END(gettimeofday)
 
-FUNC_START(getrusage)
-	li	r0,117
-	sc
-	bns+	0f
-	b	FUNC_NAME(_cerror)
-0:	blr
-FUNC_END(getrusage)
-
 FUNC_START(lseek)
 	li	r0,199
 	sc