about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 4714Kartik Agaram2018-10-231-1/+21
| | | | Improve error-checking for unnecessary displacement operands.
* 4713Kartik Agaram2018-10-214-1/+137
| | | | | | | | Initial sketch of a dependency-injected wrapper around the exit() syscall. I don't have the primitives yet, just a sketch of how they should work -- and a passing test for non-local jumps without support for passing the exit status to the caller.
* 4712Kartik Agaram2018-10-211-89/+92
|
* 4711Kartik Agaram2018-10-174-165/+122
| | | | | | | Extract a helper for appending strings to raw buffers. I'd been resisting this idea, but it actually turns out to be a pretty clean abstraction in the end.
* 4710Kartik Agaram2018-10-174-9/+9
| | | | | Start using write() instead of _write().. and we promptly find a typo when dealing with real file descriptors.
* 4709Kartik Agaram2018-10-17108-5449/+6703
|
* 4708Kartik Agaram2018-10-172-4/+4
|
* 4707 - subx: dependency-injected write() primitiveKartik Agaram2018-10-163-0/+251
|
* 4706Kartik Agaram2018-10-161-2/+2
|
* 4705Kartik Agaram2018-10-164-6/+6
|
* 4704Kartik Agaram2018-10-161-29/+41
|
* 4703Kartik Agaram2018-10-161-4/+4
|
* 4702Kartik Agaram2018-10-162-0/+4
|
* 4701Kartik Agaram2018-10-161-0/+0
|
* 4700Kartik Agaram2018-10-161-2/+2
|
* 4699Kartik Agaram2018-10-145-61/+38
|
* 4698Kartik Agaram2018-10-1410-36/+36
|
* 4697Kartik Agaram2018-10-145-18/+28
|
* 4696Kartik Agaram2018-10-141-14/+14
| | | | Update the syntax documentation.
* 4695Kartik Agaram2018-10-1411-158/+158
|
* 4694Kartik Agaram2018-10-1314-108/+113
| | | | Check for duplicate docstrings.
* 4693Kartik Agaram2018-10-139-91/+89
| | | | | | | | 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.
* 4692 - update online help for subxKartik Agaram2018-10-137-75/+113
| | | | | | 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.
* 4691Kartik Agaram2018-10-133-21/+21
| | | | All tests now once again run the same natively and on VM.
* 4690Kartik Agaram2018-10-131-15/+68
| | | | | | | 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.
* 4689Kartik Agaram2018-10-122-64/+63
|
* 4688Kartik Agaram2018-10-127-100/+100
|
* 4687Kartik Agaram2018-10-122-19/+19
|
* 4686Kartik Agaram2018-10-122-10/+10
|
* 4685Kartik Agaram2018-10-121-1/+1
|
* 4684Kartik Agaram2018-10-115-4/+11
| | | | | | | | | | 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.
* 4683Kartik Agaram2018-10-101-1/+1
|
* 4682 - subx: start testing all layers of 'library'Kartik Agaram2018-10-105-0/+27
|
* 4681Kartik Agaram2018-10-101-1/+33
|
* 4680Kartik Agaram2018-10-101-2/+89
| | | | | | | | 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.
* 4679Kartik Agaram2018-10-101-1/+1
|
* 4678Kartik Agaram2018-10-105-4/+41
| | | | | | | | | 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.
* 4677Kartik Agaram2018-10-101-2/+2
|
* 4676Kartik Agaram2018-10-081-32/+2
| | | | | | 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.
* 4675Kartik Agaram2018-10-081-2/+1
|
* 4674Kartik Agaram2018-10-084-5/+219
| | | | subx: append to trace
* 4673Kartik Agaram2018-10-071-2/+2
| | | | | To search for instructions in .subx files, just run `:G 8b.*copy` inside Vim without any quotes.
* 4672Kartik Agaram2018-10-071-0/+8
|
* 4671Kartik Agaram2018-10-071-0/+1
|
* 4670Kartik Agaram2018-10-051-1/+1
|
* 4669Kartik Agaram2018-10-055-50/+40
|
* 4668Kartik Agaram2018-10-0524-162/+132
|
* 4667Kartik Agaram2018-10-0517-246/+251
| | | | | Standardize on hyphens in all names. And we'll use colons for namespacing labels in functions.
* 4666Kartik Agaram2018-10-051-1/+1
|
* 4665Kartik Agaram2018-10-052-12/+19
| | | | | Some syscalls expect null-terminated strings while others get lengths. Be clear about this distinction.