From 36bff75b1511adaadcb3b0e4b06ef94c80501f77 Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Wed, 26 Aug 2009 19:35:56 +0000 Subject: [PATCH] more work --- WEGA/src/lib/libc/TODO | 4 ---- WEGA/src/lib/libc/TODO.done | 4 ++++ WEGA/src/lib/libc/crt/Makefile | 8 ++++++++ WEGA/src/lib/libc/crt/cerror.s | 15 +++++++++++++++ WEGA/src/lib/libc/crt/mcount.s | 30 ++++++++++++++++++++++++++++++ WEGA/src/lib/libc/csu/crt0.s | 2 ++ WEGA/src/lib/libc/gen/Makefile | 8 ++++++++ WEGA/src/lib/libc/gen/cuexit.s | 14 ++++++++++++++ WEGA/src/lib/libc/gen/fakcu.s | 8 ++++++++ 9 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 WEGA/src/lib/libc/crt/Makefile create mode 100644 WEGA/src/lib/libc/crt/cerror.s create mode 100644 WEGA/src/lib/libc/crt/mcount.s create mode 100644 WEGA/src/lib/libc/gen/Makefile create mode 100644 WEGA/src/lib/libc/gen/cuexit.s create mode 100644 WEGA/src/lib/libc/gen/fakcu.s diff --git a/WEGA/src/lib/libc/TODO b/WEGA/src/lib/libc/TODO index 935011a..7c047cf 100644 --- a/WEGA/src/lib/libc/TODO +++ b/WEGA/src/lib/libc/TODO @@ -5,14 +5,12 @@ atof.o atof.s ASM atoi.o atoi.c C atol.o atol.c C bsearch.o bsearch.c C -cerror.o cerror.s ASM clrerr.o clrerr.c C cnvt.o cnvt.c C crypt.o crypt.c C ctermid.o ctermid.c C ctime.o ctime.c C ctype_.o ctype_.c C -cuexit.o cuexit.s ASM cuserid.o cuserid.c C data.o data.c C decimal.o decimal.s ASM @@ -22,7 +20,6 @@ ecvt.o ecvt.s ASM endopen.o endopen.c C errlst.o errlst.c C execvp.o execvp.c C -fakcu.o fakcu.s ASM fdopen.o fdopen.c C ffltioc.o ffltioc.c C fgetc.o fgetc.c C @@ -59,7 +56,6 @@ l64a.o l64a.c C length.o length.c C lsearch.o lsearch.c C malloc.o malloc.c C -mcount.o mcount.s ASM mktemp.o mktemp.c C mon.o mon.c C mpx.o mpx.c C diff --git a/WEGA/src/lib/libc/TODO.done b/WEGA/src/lib/libc/TODO.done index f2690c4..1bbfef7 100644 --- a/WEGA/src/lib/libc/TODO.done +++ b/WEGA/src/lib/libc/TODO.done @@ -66,3 +66,7 @@ lock.o lock.s ASM mdmctl.o mdmctl.s ASM sptrace.o sptrace.s ASM unlk.o unlk.s ASM +cerror.o cerror.s ASM +cuexit.o cuexit.s ASM +fakcu.o fakcu.s ASM +mcount.o mcount.s ASM diff --git a/WEGA/src/lib/libc/crt/Makefile b/WEGA/src/lib/libc/crt/Makefile new file mode 100644 index 0000000..cbe3fdb --- /dev/null +++ b/WEGA/src/lib/libc/crt/Makefile @@ -0,0 +1,8 @@ +AS= as +ASFLAGS= +OBJ= cerror.o mcount.o + +all: $(OBJ) + +clean: + rm -f $(OBJ) diff --git a/WEGA/src/lib/libc/crt/cerror.s b/WEGA/src/lib/libc/crt/cerror.s new file mode 100644 index 0000000..e63078c --- /dev/null +++ b/WEGA/src/lib/libc/crt/cerror.s @@ -0,0 +1,15 @@ +cerror module + + global + _errno + WORD + _deverr + WORD + cerror procedure + entry + ld _errno,r2 + ld _deverr,r5 + ldl rr2,#%ffffffff + ret + end cerror +end cerror diff --git a/WEGA/src/lib/libc/crt/mcount.s b/WEGA/src/lib/libc/crt/mcount.s new file mode 100644 index 0000000..11acf56 --- /dev/null +++ b/WEGA/src/lib/libc/crt/mcount.s @@ -0,0 +1,30 @@ +mcount_s module + + external + countbase + WORD + + global + mcount procedure + entry + ld r1,%0002(r15) + ld r0,@r1 + test r0 + jr nz,havestruct + ld r1,countbase + test r1 + ret z + inc countbase,#6 + ld r0,@r15 + ld @r1,r0 + lda r0,%0002(r1) + ld r1,%0002(r15) + ld @r1,r0 +havestruct: + ld r1,r0 + inc %0002(r1),#1 + ret nz + inc @r1,#1 + ret + end mcount +end mcount_s diff --git a/WEGA/src/lib/libc/csu/crt0.s b/WEGA/src/lib/libc/csu/crt0.s index 2d0d825..5b7b4e6 100644 --- a/WEGA/src/lib/libc/csu/crt0.s +++ b/WEGA/src/lib/libc/csu/crt0.s @@ -4,6 +4,8 @@ ! @[$] crt0.s Rev : 3.2 09/12/83 00:05:03 ! +! @[$] crt0.s Rev : 3.2 09/12/83 00:05:03 ! + crt0 module internal diff --git a/WEGA/src/lib/libc/gen/Makefile b/WEGA/src/lib/libc/gen/Makefile new file mode 100644 index 0000000..2223c3a --- /dev/null +++ b/WEGA/src/lib/libc/gen/Makefile @@ -0,0 +1,8 @@ +AS= as +ASFLAGS= +OBJ= abort.s cuexit.s stty.c tell.c + +all: $(OBJ) + +clean: + rm -f $(OBJ) diff --git a/WEGA/src/lib/libc/gen/cuexit.s b/WEGA/src/lib/libc/gen/cuexit.s new file mode 100644 index 0000000..50470d2 --- /dev/null +++ b/WEGA/src/lib/libc/gen/cuexit.s @@ -0,0 +1,14 @@ +exit_s module + + external + __cleanup procedure + + global + _exit procedure + entry + ld r8,r7 + call __cleanup + ld r0,r8 + sc #1 + end _exit +end exit_s diff --git a/WEGA/src/lib/libc/gen/fakcu.s b/WEGA/src/lib/libc/gen/fakcu.s new file mode 100644 index 0000000..2a5a60d --- /dev/null +++ b/WEGA/src/lib/libc/gen/fakcu.s @@ -0,0 +1,8 @@ +cleanup__s module + + global + __cleanup procedure + entry + ret + end __cleanup +end cleanup__s