Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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)