summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-13 20:51:39 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-13 20:51:39 +0000
commita690c003e0f103041f49c065243d651821897605 (patch)
tree4753b371c8f1254c367a43f7a4ceebe7ff827a41 /c/src/lib/libbsp/mips/shared/liblnk/lnklib.S
parent2010-05-13 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-a690c003e0f103041f49c065243d651821897605.tar.bz2
2010-05-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* shared/liblnk/lnklib.S, shared/liblnk/pmon.S, shared/liblnk/regs.h, shared/startup/idtmem.S, shared/startup/idttlb.S: New files.
Diffstat (limited to 'c/src/lib/libbsp/mips/shared/liblnk/lnklib.S')
-rw-r--r--c/src/lib/libbsp/mips/shared/liblnk/lnklib.S62
1 files changed, 62 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S b/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S
new file mode 100644
index 0000000000..0800e25078
--- /dev/null
+++ b/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S
@@ -0,0 +1,62 @@
+/*
+ * lnklib.S,v 1.4 1999/03/31 23:21:19 joel Exp
+ */
+
+#include <rtems/mips/iregdef.h>
+#include <rtems/mips/idtcpu.h>
+
+#define FRAME(name,frm_reg,offset,ret_reg) \
+ .globl name; \
+ .ent name; \
+name:; \
+ .frame frm_reg,offset,ret_reg
+
+#define ENDFRAME(name) \
+ .end name
+
+#define PROM_LINK(name,entry) \
+ .globl name; \
+ .ent name; \
+name: la $2,+entry; \
+ j $2; \
+ .end name
+
+#define PROM_ENTRY(x) (0xbfc00000+((x)*8))
+
+#define PROM_RESET PROM_ENTRY(0)
+#define PROM_NOT_IMP PROM_ENTRY(1)
+#define PROM_RESTART PROM_ENTRY(2)
+#define PROM_REINIT PROM_ENTRY(3)
+#define PROM_GETCHAR PROM_ENTRY(11)
+#define PROM_PUTCHAR PROM_ENTRY(12)
+#define PROM_SHOWCHAR PROM_ENTRY(13)
+#define PROM_PRINTF PROM_ENTRY(16)
+#define PROM_RETURN PROM_ENTRY(17)
+
+#define PROM_RGETS PROM_ENTRY(25)
+#define PROM_FLUSHCACHE PROM_ENTRY(28)
+#define PROM_CLEARCACHE PROM_ENTRY(29)
+#define PROM_SETJMP PROM_ENTRY(30)
+#define PROM_LONGJMP PROM_ENTRY(31)
+
+ .text
+
+PROM_LINK(idtsim_putchar, PROM_PUTCHAR)
+PROM_LINK(idtsim_getchar, PROM_GETCHAR)
+PROM_LINK(idtsim_showchar, PROM_SHOWCHAR)
+PROM_LINK(idtsim__exit, PROM_RETURN)
+PROM_LINK(idtsim_reinit, PROM_REINIT)
+PROM_LINK(idtsim_restart, PROM_RESTART)
+PROM_LINK(idtsim_reset, PROM_RESET)
+PROM_LINK(idtsim_promexit, PROM_RETURN)
+PROM_LINK(idtsim_setjmp, PROM_SETJMP)
+PROM_LINK(idtsim_longjmp, PROM_LONGJMP)
+
+FRAME(idtsim_init_sbrk,sp,0,ra)
+ j ra
+ENDFRAME(idtsim_init_sbrk)
+
+FRAME(idtsim_init_file,sp,0,ra)
+ j ra
+ENDFRAME(idtsim_init_file)
+