| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Detect overlapping segments when loading SubX source code.
This will start to become more of a risk as we start loading multiple files,
juggling multiple segments, etc.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Now simulated 'Memory' isn't just a single flat array. Instead it knows
about segments and VMAs.
The code segment will always be first, and the data/heap segment will always
be second. The brk() syscall knows about the data segment.
One nice side-effect is that I no longer need to mess with Memory initialization
regardless of where I place my segments.
|
|
|
|
|
|
|
|
|
|
| |
Doesn't de-duplicate in the data segment, though. If you use the literal
"foo" a hundred times in your code segment you're gonna spend a hundred
times the space you need to.
We can now simplify our test harness a bit in the factorial app, but we
still have to put in commandline args to compare with manually. We only
support length-prefixed strings, not null-terminated ones.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As we climb the ladder of abstraction we'll gradually pull the ladder up
behind ourselves.
|
| |
|
|
|
|
|
| |
It would be confusing to use negative numbers in raw hex. But we'll rely
on programmer taste there.
|
|
|
|
|
|
| |
Hacky test. I'm creating a helper to run tests just for this layer. But
I won't be able to do this when I want to selectively run just
transforms below some level.
|
| |
|
|
|
|
| |
More tracing reorg.
|
|
|
|
| |
Clean up trace levels everywhere in SubX.
|
|
|
|
|
|
|
|
| |
Key core data structures by hex bytes in text rather than opcode
numbers. Saves us round trips of having to parse and reparse strings,
and also allows us to more easily ignore unexpected non-hex words in
each transform. We'll use this ability next when we start inserting
labels.
|
|
Better name for a layer.
|