summaryrefslogtreecommitdiff
path: root/tnslc/compile/isa_x86.tnsl
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2022-09-14 14:05:03 -0400
committerKyle Gunger <kgunger12@gmail.com>2022-09-14 14:05:03 -0400
commit4e2e269fab3f5facedc6ec0131f132bd66c0aac4 (patch)
treedab2c175c4c81c3665703c800d07bb1d775821e0 /tnslc/compile/isa_x86.tnsl
parent37d1e9fa02b27d1a6c56b4c95d31e6d2b9eab9ee (diff)
Focus on ASM generation instead of raw binary
Diffstat (limited to 'tnslc/compile/isa_x86.tnsl')
-rw-r--r--tnslc/compile/isa_x86.tnsl48
1 files changed, 48 insertions, 0 deletions
diff --git a/tnslc/compile/isa_x86.tnsl b/tnslc/compile/isa_x86.tnsl
new file mode 100644
index 0000000..1df9902
--- /dev/null
+++ b/tnslc/compile/isa_x86.tnsl
@@ -0,0 +1,48 @@
+/##
+ Copyright 2021 Kyle Gunger
+
+ This file is licensed under the CDDL 1.0 (the License)
+ and may only be used in accordance with the License.
+ You should have received a copy of the License with this
+ software/source code. If you did not, a copy can be found
+ at the following URL:
+
+ https://opensource.org/licenses/CDDL-1.0
+
+ THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO
+ WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE
+ EXPRESS OR IMPLIED
+#/
+
+/; gen_x86 (~Node program, {}charp out)
+ ;tnsl.io.File o = tnsl.io.writeFile(out)
+
+ ;{}uint8 current = gen_head(program)
+ /; loop (int i = 0; i < len current) [i++]
+ ;o.write(current{i})
+ ;/
+
+ ;{}uint8 current = gen_data(program)
+ /; loop (int i = 0; i < len current) [i++]
+ ;o.write(current{i})
+ ;/
+
+ ;{}uint8 current = gen_text(program)
+ /; loop (int i = 0; i < len current) [i++]
+ ;o.write(current{i})
+ ;/
+
+ ;o.close()
+;/
+
+/; gen_data (~Node program) [{}charp]
+
+;/
+
+/; gen_text (~Node program) [{}charp]
+
+;/
+
+/; gen_head (~Node program) [{}charp]
+
+;/