summary refs log tree commit diff
path: root/to-consider.e
diff options
context:
space:
mode:
Diffstat (limited to 'to-consider.e')
-rw-r--r--to-consider.e38
1 files changed, 38 insertions, 0 deletions
diff --git a/to-consider.e b/to-consider.e
new file mode 100644
index 0000000..109464b
--- /dev/null
+++ b/to-consider.e
@@ -0,0 +1,38 @@
+~   This file is for stuff that should probably be deleted after flatassembler
+~ is removed, but is being kept here temporarily so that those decisions can
+~ be made in an organized fashion.
+
+
+~   In the interests of reducing our executable's size, since a lot of it goes
+~ to pack* invocations, we define words that combine lit with pack*. This
+~ shaves roughly 700 bytes as of when it was added.
+~
+~ TODO are these really used anymore? also, they're the only thing beforenext
+~ is used for. note that they can't go in core.e because ' is not compatible
+~ with the label transform.
+~
+~ (output point, value -- output point)
+: litpack64
+  [ here @
+    lods64
+    :rax push-reg64
+    ' pack64 entry-to-execution-token pack-beforenext
+    here ! ] ;asm
+: litpack32
+  [ here @
+    lods64
+    :rax push-reg64
+    ' pack32 entry-to-execution-token pack-beforenext
+    here ! ] ;asm
+: litpack16
+  [ here @
+    lods64
+    :rax push-reg64
+    ' pack16 entry-to-execution-token pack-beforenext
+    here ! ] ;asm
+: litpack8
+  [ here @
+    lods64
+    :rax push-reg64
+    ' pack8 entry-to-execution-token pack-beforenext
+    here ! ] ;asm