| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Support immediate operands in the data segment in all the ways we support
them in the code segment.
|
|
|
|
| |
Improve error checking to warn on unexpected displacements as well.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
A debugging aid: 'subx --map translate' dumps a mapping from functions
to addresses to a file called "map", and 'subx --map run' loads the mapping
in "map", augmenting debug traces.
Let's see how much this helps. Debugging machine code has been pretty painful
lately.
|
| |
|
| |
|
|
|
|
|
| |
Make segment management a little more consistent between initial segments
and add-on segments (using `mmap`).
|
| |
|
|
|
|
|
|
|
|
|
| |
It was broken since I added support for global variables, back on Sep 1.
One other subtle thing I've improved is the name `looks_like_hex_int`.
We can now distinguish in the pack-operands transform between ignoring
'foo' because it doesn't look like a number, and immediately flagging '0xfoo'
as an error because it *should* be a number.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Attempt #3 at fixing CI.
In the process the feature gets a lot less half-baked.
Ridiculously misleading that we had `has_metadata()` was special-cased
to one specific transform. I suck.
|
|
|
|
|
|
|
| |
Really fix CI.
Also realized we don't need to worry about function pointers. They won't
be in /disp32 fields.
|
|
|
|
| |
Fix CI (`subx translate examples/ex6.subx examples/ex6`)
|
|
|