From 86625b1166bd39e28b4dd4995ed6cd88c0bdde7e Mon Sep 17 00:00:00 2001 From: lemon Date: Tue, 6 Jun 2023 15:08:46 +0200 Subject: codegen skeleton --- obj.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 obj.c (limited to 'obj.c') diff --git a/obj.c b/obj.c new file mode 100644 index 0000000..78aab14 --- /dev/null +++ b/obj.c @@ -0,0 +1,27 @@ +#include "obj.h" +#include "common.h" + +struct objfile objout; + +void +objini(const char *file) +{ + enum { NTEXT = 4<<20 /* 4MiB */ }; + assert(!objout.file); + objout.file = file; + objout.code = objout.textbegin = mapzeros(NTEXT); + objout.textend = objout.textbegin + NTEXT; +} + +void +objfini(void) +{ + void *popen(char *, char *), pclose(void *); + long fwrite(void *, size_t, size_t, void *); + void *cmd = popen("ndisasm -b64 -", "w"); + ioflush(&bstderr); ioflush(&bstdout); + fwrite(objout.textbegin, 1, objout.code - objout.textbegin, cmd); + pclose(cmd); +} + +/* vim:set ts=3 sw=3 expandtab: */ -- cgit v1.2.3