about summary refs log tree commit diff stats
path: root/mu-init.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-05-24 20:36:31 -0700
committerKartik Agaram <vc@akkartik.com>2020-05-24 20:36:31 -0700
commit4d14c3fefd8362512e8e75d5051f7a7b709b483f (patch)
treee885a00f14fd15eb3116398d645bcfab6a0c5510 /mu-init.subx
parent27b1e19ebec31eca1d29c4b8f18408b02c172578 (diff)
downloadmu-4d14c3fefd8362512e8e75d5051f7a7b709b483f.tar.gz
6393 - start running .mu apps in CI
Diffstat (limited to 'mu-init.subx')
-rw-r--r--mu-init.subx12
1 files changed, 7 insertions, 5 deletions
diff --git a/mu-init.subx b/mu-init.subx
index 74d90b7a..984e4ff7 100644
--- a/mu-init.subx
+++ b/mu-init.subx
@@ -27,13 +27,14 @@ $Entry:initialize-args:
     8b/-> *esi 2/r32/edx
     # argc is in words; convert it to bytes
     c1/shift 4/subop/left %edx 2/imm8
-    # var tmp/eax: handle
+    # var tmp/ebx: handle
     68/push 0/imm32
     68/push 0/imm32
-    89/<- %eax 4/r32/esp
+    89/<- %ebx 4/r32/esp
     # var args/edi: (addr array (addr array byte))
-    (allocate-array Heap %edx %eax)
-    8b/-> *(eax+4) 7/r32/edi
+    (allocate-array Heap %edx %ebx)
+    (lookup *ebx *(ebx+4))  # => eax
+    89/<- %edi 0/r32/eax
     # var curr/ecx: (addr kernel-string) = argv
     8d/copy-address *(esi+4) 1/r32/ecx
     # var max/edx: (addr kernel-string) = argv+4+argc
@@ -45,7 +46,8 @@ $Entry:initialize-args:
       39/compare %ecx 2/r32/edx
       73/jump-if-addr>= break/disp8
       # *dest = kernel-string-to-string(*curr)
-      (kernel-string-to-string Heap *ecx)  # => eax
+      (kernel-string-to-string Heap *ecx %ebx)
+      (lookup *ebx *(ebx+4))  # => eax
       89/<- *esi 0/r32/eax
       # curr += 4
       81 0/subop/add %ecx 4/imm32