77 lines
2.4 KiB
Text
77 lines
2.4 KiB
Text
~ cat labels.e constants-freebsd.e elf.e transform.e execution.e evoke.e | ./evoke > evoke2
|
|
|
|
: read-inputs
|
|
here @ dup
|
|
s" core.e" pack-file-contents
|
|
s" constants-freebsd.e" pack-file-contents
|
|
s" syscall-abi-freebsd.e" pack-file-contents
|
|
s" unix-like-syscalls.e" pack-file-contents
|
|
s" output.e" pack-file-contents
|
|
s" amd64.e" pack-file-contents
|
|
s" execution-support.e" pack-file-contents
|
|
s" log-load.e" pack-file-contents
|
|
0 pack16 8 packalign here !
|
|
s" source-to-precompile" variable
|
|
|
|
here @ dup
|
|
s" core.e" pack-file-contents
|
|
s" constants-freebsd.e" pack-file-contents
|
|
s" syscall-abi-freebsd.e" pack-file-contents
|
|
s" unix-like-syscalls.e" pack-file-contents
|
|
s" output.e" pack-file-contents
|
|
s" amd64.e" pack-file-contents
|
|
s" execution-support.e" pack-file-contents
|
|
s" log-load.e" pack-file-contents
|
|
s" dynamic.e" pack-file-contents
|
|
s" input.e" pack-file-contents
|
|
s" interpret.e" pack-file-contents
|
|
s" flow-control.e" pack-file-contents
|
|
~ Not yet implemented for FreeBSD
|
|
~ s" linux-dynamic.e" pack-file-contents
|
|
s" files.e" pack-file-contents
|
|
0 pack16 8 packalign here !
|
|
s" source-to-copy-to-log" variable ;
|
|
read-inputs
|
|
|
|
|
|
~ (output memory start, current output point
|
|
~ -- output memory start, current output point)
|
|
~
|
|
~ Everything directly called by all-contents has this same interface.
|
|
~
|
|
: all-contents
|
|
~ : This particular program is 'evoke', the compiler. If you already have
|
|
~ : a binary copy of 'hex', run this file through it and you'll have a
|
|
~ : working compiler. Pretty sweet, right?
|
|
~ :
|
|
~ : If you're auditing this by hand, first off, thank you for doing that.
|
|
~ : You may wish to pull up the source code side-by-side with the hex dump;
|
|
~ : there's a lot of structural stuff in the actual source that aids in
|
|
~ : readability but isn't easily reproduced in this form, though every
|
|
~ : effort has been made.
|
|
~ : blank-line
|
|
0x08000000 L!' origin
|
|
|
|
elf-file-header
|
|
elf-program-header
|
|
|
|
output-cold-start
|
|
source-to-copy-to-log output-warm-start
|
|
source-to-precompile label-transform
|
|
|
|
~ If we wanted words in the log to be able to call statically-linked
|
|
~ words, we could set this to something nonzero. We don't, so we leave it
|
|
~ alone.
|
|
0 L!' final-word-name
|
|
|
|
current-offset L!' total-size
|
|
0 L!' :
|
|
0 L!' ;
|
|
0 L!' ;asm
|
|
~ : blank-line
|
|
~ : This is the end of the hex dump. Thanks for reading!
|
|
;
|
|
|
|
' all-contents entry-to-execution-token label-loop
|
|
1 3unroll sys-write bye
|
|
|