sd:runtime_library_notes
This is an old revision of the document! —-
Table of Contents
Runtime Library Notes
Directory Structure
sd8516/ project root
runtime/
crt0.sda startup stub -- CALL main
librt/ runtime functions
divhi3.c
modhi3.c
divsi3.c
muldi3.c
...
softfloat/ the SF/DF families
include/ freestanding headers (mine & what clang supplies)
tests/ tests with checks
Prep Work
- Helper scripts were created this time:
c2sda,c2ll,ll2sdaandruntests. - Next I had to modify VC-4 to take .sda files at the command line (to speed the dev cycle).
- Next I created the above directory.
- I will have to modify vc4 to look in ~/.vc4 if the files it needs are not in the pwd.
Fleshing it out
Many standard implementations reveal deficiencies in instrinfo and iseltargetlowering.
Test Suite
I collected all the tests into one file.
Roadmap
- putchar.sda (the only assembly only file so far – similar to tinyc v1)
- print_str
- print_dec
- lib1 (stuff for missing instructions)
- libctype
- libstr
- libstdlib
then
- stdint.h, limits.h, stddef.h, stdbool.h
- stdalign/stdnoreturn/iso646
- finish string.h (memchr, strncat, strpbrk, strspn, strcspn, strtok)
- safe-string extras (strlcpy/strlcat, strcasecmp/strncasecmp, memmem),
- div/ldiv, rand/srand, qsort/bsearch, assert.h
- official puts/getchar.
Roadmap which requires additional development:
- malloc/free/calloc/realloc
- then strdup/strndup
Phase III
- stdarg.h for varargs and formatted output. very high value target (enables printf)
- printf/sprintf/snprintf/vsnprintf and sscanf.
Later:
- compiler-facing primitives LEA, MOVSX, CMOV, get CASETAB to emit.
- 64-bit integers. muldi3, udivdi3/umoddi3, divdi3/moddi3.
Floating Point Roadmap:
- Start writing math.h and see what happens.
- strtod/atof, %f for printf.
File IO Roadmap:
- fopen/fread/fwrite/fseek/fclose and FILE* streams wrapping *(see INT 15h/OPFS/FCB)
Other:
- time.h, calendar math, binding time() to the hardware clock
- Graphics and Sound libraries
- access to PPU and ASU
sd/runtime_library_notes.1781536942.txt.gz · Last modified: by appledog
