| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Start using data segments in scenarios.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Return to the usual whitespace-skipping istreams. No need to go beyond
word-based parsing.
This exercise reinforces the amount of duplication between
load_program() and transform_immediate().
|
| |
|
| |
|
|
|
|
| |
Fix CI.
|
|
|
|
| |
Fix a warning in CI.
|
|
|
|
|
|
| |
Minimize memory footprint while running subx ELF binaries. We don't use
memory before address 0x08048000, so we don't need to allocate space for
it.
|
|
|
|
| |
Fix CI.
|
|
|
|
|
|
|
|
| |
ex4 now writes to the (global) data segment, rather than trying to write
to the code segment.
We still need to specify the other segments in the generated ELF,
though.
|
|
|
|
|
|
|
|
| |
Drop a safety net; we now assume that Memory is large enough for any
addresses we may encounter.
Dropping all comparisons with Mem.size() now makes our Memory_offset
indirection airtight.
|
|
|
|
| |
Insert an indirection to avoid over-allocating memory for RAM.
|
|
|
|
| |
Encapsulate RAM management.
|
|
|
|
|
| |
Currently only runs in emulated mode. Likely a paging issue, writing
data to code page. I'm not checking the return value.
|
| |
|
|
|
|
| |
Result has to be small enough to fit in AL so exit() can return it.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Modify helpers to run either external examples in the subx/teensy/
directory, or my own examples in subx/ directory.
Now I have to say `run test5` instead of `run 5`, and so on.
|
|
|
|
| |
Fix a few more typos in example programs.
|
| |
|
|
|
|
|
|
|
|
| |
Simpler.
Now it's clear that what commit 4291 got wrong was an
alignment-violating address for both the entrypoint and the start of the
segment.
|
| |
|
|
|
|
|
|
| |
Second attempt at commit 4291. We'll now not copy the headers into
memory, but we'll still allocate space for them. Still some security
benefits, and I'm gaining confidence that I understand the ELF format.
|
| |
|
| |
|
|
|
|
| |
I'm getting sick of hitting the <Tab> key.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Learning to use the data segment.
Currently, subx can only run the teensy files generated from flat
assembler:
test4
test5
test7
This is not a priority to fix. These files are just useful references to
have around.
|
|
|
|
| |
Temporarily do all prints in hex.
|
|
|
|
| |
Simplify a couple of test programs.
|
|
|
|
|
|
|
| |
Undo 4291; turns out the generated ELF binary was no longer running
natively on 32-bit Linux. Even with p_align set to 0.
Agh, not worth my time.
|
|
|
|
| |
Undo 4306.
|
|
|
|
|
|
|
| |
Doesn't compile.
I'm still not sure how to represent types and global variables.
Types won't be in the final binary.
But globals will. Perhaps I should first figure out what that looks like.
|
| |
|
| |
|
|
|
|
| |
We'll see if this is useful. Mostly just stretching our legs.
|
|
|
|
| |
Starting to work out the skeleton every phase needs to have.
|
|
|
|
| |
All tests continue to pass after a trivial translation phase.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|