diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-05-25 23:47:49 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-05-25 23:47:49 -0700 |
commit | 561028444397d2722130ef3bbf4a403acf7964b4 (patch) | |
tree | 1917d966a501d5a24aa51ddf08c9d1a5c5dd2c65 /subx/apps | |
parent | bd31dbe85418b05a5f9e101525a829c48aa9bf37 (diff) | |
download | mu-561028444397d2722130ef3bbf4a403acf7964b4.tar.gz |
new primitive: parse-array-of-ints
Mostly for tests. For every new type we want to compare in a test, we're now going to start using some primitive that can parse its value from string. In this manner we can get syntax for literals in machine code. Open question: parsing aggregates of aggregates. Like an array of structs. This is the first time we allocate from the heap in standard library tests. So we now need to start initializing the heap in all our apps.
Diffstat (limited to 'subx/apps')
-rwxr-xr-x | subx/apps/assort | bin | 23253 -> 23949 bytes | |||
-rwxr-xr-x | subx/apps/crenshaw2-1 | bin | 20430 -> 21147 bytes | |||
-rw-r--r-- | subx/apps/crenshaw2-1.subx | 9 | ||||
-rwxr-xr-x | subx/apps/crenshaw2-1b | bin | 20989 -> 21706 bytes | |||
-rw-r--r-- | subx/apps/crenshaw2-1b.subx | 9 | ||||
-rwxr-xr-x | subx/apps/factorial | bin | 19346 -> 20063 bytes | |||
-rw-r--r-- | subx/apps/factorial.subx | 9 | ||||
-rwxr-xr-x | subx/apps/handle | bin | 20173 -> 20869 bytes | |||
-rwxr-xr-x | subx/apps/hex | bin | 23439 -> 24156 bytes | |||
-rw-r--r-- | subx/apps/hex.subx | 9 | ||||
-rwxr-xr-x | subx/apps/pack | bin | 38071 -> 38788 bytes | |||
-rw-r--r-- | subx/apps/pack.subx | 9 |
12 files changed, 45 insertions, 0 deletions
diff --git a/subx/apps/assort b/subx/apps/assort index 7a2c318f..dc280d0a 100755 --- a/subx/apps/assort +++ b/subx/apps/assort Binary files differdiff --git a/subx/apps/crenshaw2-1 b/subx/apps/crenshaw2-1 index 64fee587..15856474 100755 --- a/subx/apps/crenshaw2-1 +++ b/subx/apps/crenshaw2-1 Binary files differdiff --git a/subx/apps/crenshaw2-1.subx b/subx/apps/crenshaw2-1.subx index 2f1fec9e..5ec2e829 100644 --- a/subx/apps/crenshaw2-1.subx +++ b/subx/apps/crenshaw2-1.subx @@ -31,6 +31,15 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes Entry: # run tests if necessary, call 'compile' if not + # initialize heap + # . Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # for debugging: run a single test; don't bother setting status code #? e8/call test-get-num-aborts-on-non-digit-in-Look/disp32 diff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index 47dbafa0..ba29e49c 100755 --- a/subx/apps/crenshaw2-1b +++ b/subx/apps/crenshaw2-1b Binary files differdiff --git a/subx/apps/crenshaw2-1b.subx b/subx/apps/crenshaw2-1b.subx index 8dee0dbc..4f350cf4 100644 --- a/subx/apps/crenshaw2-1b.subx +++ b/subx/apps/crenshaw2-1b.subx @@ -31,6 +31,15 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes Entry: # run tests if necessary, call 'compile' if not + # initialize heap + # . Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # for debugging: run a single test; don't bother setting status code #? e8/call test-get-num-reads-single-digit/disp32 diff --git a/subx/apps/factorial b/subx/apps/factorial index 828f3064..02c3a2d4 100755 --- a/subx/apps/factorial +++ b/subx/apps/factorial Binary files differdiff --git a/subx/apps/factorial.subx b/subx/apps/factorial.subx index 20b0a4fe..a9f88363 100644 --- a/subx/apps/factorial.subx +++ b/subx/apps/factorial.subx @@ -19,6 +19,15 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes Entry: # run tests if necessary, compute `factorial(5)` if not + # initialize heap + # . Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # for debugging: run a single test; don't bother setting status code #? e8/call test-get-num-reads-single-digit/disp32 diff --git a/subx/apps/handle b/subx/apps/handle index dd8c77c6..ea47b0d4 100755 --- a/subx/apps/handle +++ b/subx/apps/handle Binary files differdiff --git a/subx/apps/hex b/subx/apps/hex index eda84c07..b70b32c6 100755 --- a/subx/apps/hex +++ b/subx/apps/hex Binary files differdiff --git a/subx/apps/hex.subx b/subx/apps/hex.subx index 3730351f..6b82a1e9 100644 --- a/subx/apps/hex.subx +++ b/subx/apps/hex.subx @@ -18,6 +18,15 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes Entry: # run tests if necessary, convert stdin if not + # initialize heap + # . Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP #? # for debugging: run a single test #? e8/call test-convert-next-octet-aborts-on-single-hex-byte/disp32 diff --git a/subx/apps/pack b/subx/apps/pack index 3bbfa65a..3c0c501e 100755 --- a/subx/apps/pack +++ b/subx/apps/pack Binary files differdiff --git a/subx/apps/pack.subx b/subx/apps/pack.subx index c035c361..74c21e88 100644 --- a/subx/apps/pack.subx +++ b/subx/apps/pack.subx @@ -19,6 +19,15 @@ # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes Entry: # run tests if necessary, convert stdin if not + # initialize heap + # . Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # for debugging: run a single test #? e8/call test-emit-non-number-with-all-hex-digits-and-metadata/disp32 |