summaryrefslogtreecommitdiffstats
path: root/libgloss/rs6000/simulator.S
diff options
context:
space:
mode:
authorRanjith Kumaran <ranjith@cygnus.com>2000-03-17 22:48:54 +0000
committerRanjith Kumaran <ranjith@cygnus.com>2000-03-17 22:48:54 +0000
commit03261851a10dd2d6900a0a00a7515a0a46fb5d76 (patch)
tree7c22ac6cbbc99fd5cd1b5426853be8d4fd7bfcf1 /libgloss/rs6000/simulator.S
parentfae4c299f14fc23e2829c8656992eba21f79242a (diff)
downloadcygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.tar.gz
cygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.tar.bz2
cygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.zip
20000317 sourceware import
Diffstat (limited to 'libgloss/rs6000/simulator.S')
-rw-r--r--libgloss/rs6000/simulator.S79
1 files changed, 79 insertions, 0 deletions
diff --git a/libgloss/rs6000/simulator.S b/libgloss/rs6000/simulator.S
new file mode 100644
index 000000000..1e925e02c
--- /dev/null
+++ b/libgloss/rs6000/simulator.S
@@ -0,0 +1,79 @@
+/*
+ * simulator.S -- PowerPC simulator system calls.
+ *
+ * Copyright (c) 1995 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(_exit)
+ li r0, 1
+ sc
+
+/*
+ * Insure that the debugger tells the client that the PC is in _exit,
+ * not whatever function happens to follow this function.
+ */
+
+0: trap
+ b 0b /* we never should return, but... */
+
+FUNC_END(_exit)
+
+FUNC_START(read)
+ li r0,3
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(read)
+
+FUNC_START(write)
+ li r0,4
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(write)
+
+FUNC_START(open)
+ li r0,5
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(open)
+
+FUNC_START(close)
+ li r0,6
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(close)
+
+FUNC_START(brk)
+ li r0,17
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(brk)
+
+FUNC_START(lseek)
+ li r0,199
+ sc
+ bns+ 0f
+ b FUNC_NAME(_cerror)
+0: blr
+FUNC_END(lseek)