about summary refs log tree commit diff stats
path: root/subx/010---vm.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4761Kartik Agaram2018-11-231-6/+5
| | | | | Bugfix: I forgot about ELF segment offsets when implementing VMAs. Eventually segments grew large enough that I started seeing overlaps.
* 4750Kartik Agaram2018-11-181-0/+4
| | | | | There can be situations where a run is striding through a segment. Reduce the number of reallocations that reallocations that requires.
* 4749 - speed up testsKartik Agaram2018-11-181-8/+14
| | | | | | | When we implemented 'read' our apps went over 0x1000 bytes, so I grew the initial segment size. But that slowed down emulation because each test was reallocating all segments. Now we allocate small segments at the start, and grow them gradually as needed.
* 4747 - subx: 'read' primitiveKartik Agaram2018-11-181-1/+1
|
* 4723Kartik Agaram2018-10-241-10/+1
| | | | Fix CI.
* 4719 - testable interface wrapping around exit()Kartik Agaram2018-10-241-0/+10
|
* 4695Kartik Agaram2018-10-141-10/+10
|
* 4694Kartik Agaram2018-10-131-1/+1
| | | | Check for duplicate docstrings.
* 4693Kartik Agaram2018-10-131-2/+3
| | | | | | | | 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-131-8/+32
| | | | | | 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.
* 4678Kartik Agaram2018-10-101-0/+1
| | | | | | | | | 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.
* 4674Kartik Agaram2018-10-081-5/+5
| | | | subx: append to trace
* 4666Kartik Agaram2018-10-051-1/+1
|
* 4665Kartik Agaram2018-10-051-1/+8
| | | | | Some syscalls expect null-terminated strings while others get lengths. Be clear about this distinction.
* 4658 - subx: string_equalKartik Agaram2018-10-021-2/+4
|
* 4635Kartik Agaram2018-10-011-3/+20
| | | | | | | | | | | Another sanity check. We don't really have a clear big picture yet. But I've now slapped on checks for all the issues I was worrying about. A more rigorous solution would be some sort of interval tree. We'd also need to track segments generated at translation time. We don't do that so far.
* 4621Kartik Agaram2018-09-301-15/+33
| | | | Error messages if we ever get segments messed up.
* 4617Kartik Agaram2018-09-291-2/+5
|
* 4614 - redo simulated RAMKartik Agaram2018-09-291-10/+74
| | | | | | | | | | | 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.
* 4612Kartik Agaram2018-09-291-11/+16
|
* 4611Kartik Agaram2018-09-291-3/+4
|
* 4520 - several syscalls for filesKartik Agaram2018-08-131-0/+3
|
* 4498Kartik Agaram2018-08-091-0/+18
|
* 4482Kartik Agaram2018-08-041-0/+242