about summary refs log tree commit diff stats
path: root/subx
Commit message (Collapse)AuthorAgeFilesLines
* 4648Kartik Agaram2018-10-012-0/+9
|
* 4647 - support 64-bit Linux in CIKartik Agaram2018-10-012-16/+148
| | | | | | 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.
* 4646Kartik Agaram2018-10-011-1/+1
|
* 4645Kartik Agaram2018-10-011-0/+0
|
* 4644Kartik Agaram2018-10-0122-135/+135
|
* 4643Kartik Agaram2018-10-012-11/+11
|
* 4642Kartik Agaram2018-10-013-0/+14
|
* 4641Kartik Agaram2018-10-016-101/+129
|
* 4640 - clear error message on missing libraryKartik Agaram2018-10-013-1/+6
|
* 4639Kartik Agaram2018-10-0112-36/+36
|
* 4638 - extract some common libraries from appsKartik Agaram2018-10-0110-647/+336
| | | | | | | I'm still trying to figure out what the defaults should be. At the moment you have to explicitly pass in every file you want loaded into the output binary. Maybe that control is a good thing. The examples need no libraries so far.
* 4637 - subx: support multiple input filesKartik Agaram2018-10-014-5/+65
|
* 4636Kartik Agaram2018-10-011-0/+25
|
* 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.
* 4634Kartik Agaram2018-10-016-150/+148
|
* 4633Kartik Agaram2018-10-011-2/+6
| | | | | | | 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.
* 4632Kartik Agaram2018-10-011-3/+10
| | | | Detect overlapping segments when loading ELF binaries.
* 4631Kartik Agaram2018-10-012-4/+11
|
* 4630Kartik Agaram2018-10-011-1/+1
|
* 4629Kartik Agaram2018-10-011-8/+10
|
* 4628Kartik Agaram2018-09-301-1/+4
|
* 4627Kartik Agaram2018-09-301-4/+9
|
* 4626Kartik Agaram2018-09-301-10/+9
|
* 4625Kartik Agaram2018-09-301-2/+1
|
* 4624Kartik Agaram2018-09-3019-31/+58
| | | | | | | | Start requiring a '-o' flag to designate the output binary when translating. Things currently get funky if you pass in multiple inputs, but that's ok. This is the first step to supporting multiple input files for a single output binary.
* 4623Kartik Agaram2018-09-302-73/+89
|
* 4622Kartik Agaram2018-09-302-20/+0
| | | | | When I started SubX I imagined that being able to write machine code directly was a feature. Now it's just a hole I haven't bothered closing yet.
* 4621Kartik Agaram2018-09-301-15/+33
| | | | Error messages if we ever get segments messed up.
* 4620Kartik Agaram2018-09-301-1/+4
|
* 4619 - new syscall: mmap()Kartik Agaram2018-09-294-1/+61
|
* 4618Kartik Agaram2018-09-291-0/+5
|
* 4617Kartik Agaram2018-09-292-2/+7
|
* 4616 - fix subx/examples/ex7Kartik Agaram2018-09-295-12/+51
| | | | | | | | | 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.
* 4615Kartik Agaram2018-09-291-0/+0
|
* 4614 - redo simulated RAMKartik Agaram2018-09-299-54/+101
| | | | | | | | | | | 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.
* 4613Kartik Agaram2018-09-291-1/+1
|
* 4612Kartik Agaram2018-09-291-11/+16
|
* 4611Kartik Agaram2018-09-291-3/+4
|
* 4519Kartik Agaram2018-09-261-3/+3
|
* 4518Kartik Agaram2018-09-246-53/+158
|
* 4517Kartik Agaram2018-09-243-17/+17
|
* 4516Kartik K. Agaram2018-09-2412-98/+130
| | | | | | | More calling convention tweaks. Use EBP to get consistently at parameters and locals. Always put the first function argument closest to EBP.
* 4515Kartik K. Agaram2018-09-241-1/+9
| | | | | New '--dump' commandline arg to incrementally print trace lines to stderr as they're emitted.
* 4514Kartik Agaram2018-09-242-3/+11
| | | | Get the calling convention right, per http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
* 4513Kartik Agaram2018-09-242-8/+0
|
* 4511Kartik Agaram2018-09-231-0/+0
|
* 4510Kartik Agaram2018-09-232-4/+270
| | | | | Add the test harness to the crenshaw compiler. Though we aren't calling it yet. But that's because we aren't actually doing anything useful yet.
* 4509Kartik Agaram2018-09-231-19/+4
| | | | Back to the Crenshaw compiler. Start by using string literals.
* 4508Kartik Agaram2018-09-232-20/+184
| | | | Upgrade the test harness for the factorial "app" from ex11.
* 4507Kartik Agaram2018-09-232-0/+304
| | | | | | | | New helper: compare a null-terminated string (from argv) with a length-prefixed string (anywhere else). As long as ex11 continues to pass we can copy the function and its tests to other programs.