| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Update the syntax documentation.
|
| |
|
|
|
|
| |
Check for duplicate docstrings.
|
|
|
|
|
|
|
|
| |
Add the standard mnemonic for each opcode.
We aren't ever going to have complete docs of the subset of the x86 ISA
we support, so we need to help readers cross-correlate with the complete
docs.
|
|
|
|
|
|
| |
It now includes details for 8-bit registers. And we'll just use the classic
names for the registers so that the relationships between 8- and 32-bit
versions are more obvious.
|
|
|
|
| |
All tests now once again run the same natively and on VM.
|
|
|
|
|
|
|
| |
Fix a major discrepancy between the SubX VM and real x86 processors. This
was responsible for the breakage identified in commit 4684. We now have
failing tests, but at least they are identical running natively and on
SubX.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Turns out the tests for 'trace' have been broken in native mode since the
original commit (4674). Dangers of running my tests on Darwin, where I
can't run them natively.
The test failures didn't get flagged on CI because I'd forgotten to update
the exit code of the factorial app in commit 4664. At least that's fixed
in this commit.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Maps have definitely helped with debugging. Even having just the top of
the call stack is very helpful.
We're soon gonna need setup/teardown for tests. I'm not sure how compiling
run-tests will work then.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
On second thoughts, let's not use Mu's "null is real hardware" convention
for traces. There's no real difference between a real and fake trace stream,
so we'll just always explicitly pass in *Trace-stream in production code.
|
| |
|
|
|
|
| |
subx: append to trace
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Standardize on hyphens in all names.
And we'll use colons for namespacing labels in functions.
|
| |
|
|
|
|
|
| |
Some syscalls expect null-terminated strings while others get lengths.
Be clear about this distinction.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Make segment management a little more consistent between initial segments
and add-on segments (using `mmap`).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Generated 32-bit binaries are different on 64-bit.
So let's compare them only on a 32-bit platform.
And let's start also verifying their run-time behavior on Linux.
|