5426
This commit is contained in:
parent
c37b575a04
commit
47a9d22a05
BIN
subx/apps/assort
BIN
subx/apps/assort
Binary file not shown.
|
@ -25,10 +25,10 @@
|
|||
|
||||
Entry:
|
||||
# initialize heap
|
||||
# . Heap = new-segment(1MB)
|
||||
# . Heap = new-segment(Heap-size)
|
||||
# . . push args
|
||||
68/push Heap/imm32
|
||||
68/push 0x100000/imm32/1MB
|
||||
68/push Heap-size/imm32
|
||||
# . . call
|
||||
e8/call new-segment/disp32
|
||||
# . . discard args
|
||||
|
@ -836,9 +836,4 @@ $write-segments:end:
|
|||
5d/pop-to-EBP
|
||||
c3/return
|
||||
|
||||
== data
|
||||
|
||||
Segment-size:
|
||||
0x8000/imm32/4KB
|
||||
|
||||
# . . vim:nowrap:textwidth=0
|
||||
|
|
Binary file not shown.
|
@ -21,10 +21,10 @@
|
|||
|
||||
Entry:
|
||||
# initialize heap
|
||||
# . Heap = new-segment(1MB)
|
||||
# . Heap = new-segment(Heap-size)
|
||||
# . . push args
|
||||
68/push Heap/imm32
|
||||
68/push 0x100000/imm32/1MB
|
||||
68/push Heap-size/imm32
|
||||
# . . call
|
||||
e8/call new-segment/disp32
|
||||
# . . discard args
|
||||
|
@ -2638,9 +2638,6 @@ test-string-length-at-start-of-slice-escaped:
|
|||
|
||||
== data
|
||||
|
||||
Segment-size:
|
||||
0x8000/imm32/32KB
|
||||
|
||||
Next-string-literal: # tracks the next auto-generated variable name
|
||||
1/imm32
|
||||
|
||||
|
|
BIN
subx/apps/pack
BIN
subx/apps/pack
Binary file not shown.
|
@ -1,5 +1,20 @@
|
|||
# some common helpers shared by phases of the SubX converter
|
||||
|
||||
# - buffer sizes shared by all phases
|
||||
== data
|
||||
|
||||
# maximum memory available for allocation
|
||||
Heap-size:
|
||||
0x100000/imm32/1MB
|
||||
|
||||
# maximum size of a single segment
|
||||
Segment-size:
|
||||
0x8000/imm32/32KB
|
||||
|
||||
# maximum size of input textual stream (spanning all segments)
|
||||
Input-size:
|
||||
0x10000/imm32/64KB # should be enough for everyone
|
||||
|
||||
== code
|
||||
# instruction effective address register displacement immediate
|
||||
# . op subop mod rm32 base index scale r32
|
||||
|
|
BIN
subx/apps/survey
BIN
subx/apps/survey
Binary file not shown.
|
@ -42,10 +42,10 @@
|
|||
# . 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:
|
||||
# Heap = new-segment(1MB)
|
||||
# Heap = new-segment(Heap-size)
|
||||
# . . push args
|
||||
68/push Heap/imm32
|
||||
68/push 0x100000/imm32/1MB
|
||||
68/push Heap-size/imm32
|
||||
# . . call
|
||||
e8/call new-segment/disp32
|
||||
# . . discard args
|
||||
|
@ -142,9 +142,9 @@ convert: # infile : (address buffered-file), out : (address buffered-file) -> <
|
|||
68/push 0/imm32/read
|
||||
68/push 0/imm32/write
|
||||
89/copy 3/mod/direct 2/rm32/EDX . . . 4/r32/ESP . . # copy ESP to EDX
|
||||
# var in/ESI = stream(16384 * 1)
|
||||
# var in/ESI = stream(Input-size * 1)
|
||||
81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 0x4000/imm32 # subtract from ESP
|
||||
68/push 0x4000/imm32/length
|
||||
68/push Input-size/imm32
|
||||
68/push 0/imm32/read
|
||||
68/push 0/imm32/write
|
||||
89/copy 3/mod/direct 6/rm32/ESI . . . 4/r32/ESP . . # copy ESP to ESI
|
||||
|
@ -4503,9 +4503,6 @@ test-num-bytes-handles-imm32:
|
|||
|
||||
== data
|
||||
|
||||
Segment-size:
|
||||
0x8000/imm32/4KB
|
||||
|
||||
# This block of bytes gets copied to the start of the output ELF file, with
|
||||
# some fields filled in.
|
||||
# http://www.sco.com/developers/gabi/latest/ch4.eheader.html
|
||||
|
|
Loading…
Reference in New Issue