about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* 4468Kartik Agaram2018-08-035-0/+0
|
* 4467Kartik Agaram2018-08-0310-131/+131
|
* 4466Kartik Agaram2018-08-031-6/+6
| | | | Why the heck was I using ints for OPEN/CLOSED in the first place?!
* 4465Kartik Agaram2018-07-301-2/+2
|
* 4464Kartik Agaram2018-07-301-1/+1
| | | | ModR/M instructions actually can't contain disp16.
* 4463Kartik Agaram2018-07-306-65/+0
| | | | | Also purge some unused helper scripts. Good ideas in theory, but no point if they didn't make it to muscle memory.
* 4462Kartik Agaram2018-07-3025-257/+10
| | | | The teensy/ examples have outlived their usefulness, I think.
* 4461Kartik Agaram2018-07-301-0/+0
|
* 4460Kartik Agaram2018-07-301-4/+6
| | | | Some debugging affordances.
* 4459Kartik Agaram2018-07-301-1/+1
|
* 4458Kartik Agaram2018-07-301-3/+3
| | | | Fix trace for the bugfix of comment 4456.
* 4457Kartik Agaram2018-07-302-1/+15
| | | | Port recent changes to build_and_test_until to subx/
* 4456 - example with function calls: factorialKartik Agaram2018-07-306-1/+105
| | | | | | | | | | | | I found a bug with multiply in the process; another case (after the swap of call/jump opcodes in 4453) where there's no point improving testing. Unit tests can only tell us if our instructions are internally consistent. Validating against a real machine has to be manual. I'm definitely feeling the pain of debugging machine code now, that's for sure. Going over an instruction trace, comparing the state of registers line by line.
* 4455 - support displacement in ModR/MKartik Agaram2018-07-302-11/+48
| | | | Really ugly solution.
* 4454Kartik Agaram2018-07-301-2/+2
|
* 4453Kartik Agaram2018-07-301-2/+2
| | | | Got a couple of instructions mixed up.
* 4452Kartik Agaram2018-07-301-2/+5
| | | | Keep a few macros more tightly scoped to just the transform they're used in.
* 4451Kartik Agaram2018-07-301-3/+2
|
* 4450Kartik Agaram2018-07-302-0/+31
|
* 4449Kartik Agaram2018-07-284-19/+14
|
* 4448Kartik Agaram2018-07-271-4/+56
|
* 4447Kartik Agaram2018-07-27137-16727/+22050
|
* 4446Kartik Agaram2018-07-277-49/+55
|
* 4445 - support labelsKartik Agaram2018-07-274-31/+102
|
* 4444Kartik Agaram2018-07-276-29/+40
| | | | More tracing reorg.
* 4443Kartik Agaram2018-07-271-5/+9
|
* 4442Kartik Agaram2018-07-2711-93/+93
| | | | Clean up trace levels everywhere in SubX.
* 4441Kartik Agaram2018-07-271-4/+4
|
* 4440Kartik Agaram2018-07-271-0/+2
|
* 4439Kartik Agaram2018-07-271-8/+5
|
* 4438Kartik Agaram2018-07-271-1/+1
|
* 4437 - support for labels is half-doneKartik Agaram2018-07-272-0/+97
|
* 4436Kartik Agaram2018-07-271-2/+8
|
* 4435 - make instruction packing less strictKartik Agaram2018-07-272-1/+26
| | | | | | Now it will pass labels straight through. But we may get more confusing error messages in later passes in some situations.
* 4434Kartik Agaram2018-07-2711-197/+209
| | | | | | | | Key core data structures by hex bytes in text rather than opcode numbers. Saves us round trips of having to parse and reparse strings, and also allows us to more easily ignore unexpected non-hex words in each transform. We'll use this ability next when we start inserting labels.
* 4433Kartik Agaram2018-07-271-3/+3
|
* 4432Kartik Agaram2018-07-263-9/+9
| | | | | Good idea from @tekknolagi: make more explicit that the first segment is code.
* 4431 - operate exclusively in hexKartik Agaram2018-07-267-15/+13
| | | | | | | | | Was confusing having numbers without an explicit base sometimes be hex and sometimes not, based on their metadata. By convention I don't bother with the '0x' for instructions, or for single-digit numbers that are equal to their decimal representation. But I could and it would still work.
* 4430Kartik Agaram2018-07-263-26/+26
|
* 4429 - syntax checking for multi-byte opcodesKartik Agaram2018-07-261-2/+49
| | | | We don't have any supported 3-byte opcodes at the moment.
* 4428Kartik Agaram2018-07-261-0/+2
| | | | Fix CI :(
* 4427 - support for '--trace' argvKartik Agaram2018-07-263-13/+49
| | | | This ports commit 4421 to the subx/ program.
* 4426 - error on unrecognized sub-commandsKartik Agaram2018-07-264-2/+13
|
* 4425Kartik Agaram2018-07-261-1/+4
| | | | Better name for a layer.
* 4424Kartik Agaram2018-07-267-71/+70
| | | | Clean up format of example programs.
* Merge pull request #17 from tekknolagi/masterKartik Agaram2018-07-261-14/+28
|\ | | | | Use semicolons instead of commas for sequencing
| * Use semicolons instead of commas for sequencingMaxwell Bernstein2018-07-261-14/+28
|/
* 4423Kartik Agaram2018-07-261-8/+5
| | | | Silence some messages to the console. Fixes #12.
* 4422Kartik Agaram2018-07-262-8/+5
|
* 4421Kartik Agaram2018-07-265-41/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up the rat's nest that all my trace management globals had gradually turned into. a) Get rid of 'Start_tracing'. Horryibly named, I don't know how I missed that until now. b) Never use START_TRACING_UNTIL_END_OF_SCOPE in main(). It's confusing to combine it with atexit(delete Trace_stream), because the atexit() never has to run. Instead we'll just manually initialize Trace_stream and let atexit() clean up. c) If we run tests we only want a trace for the test run itself. So delete the Trace_stream that was initialized at the top of main -- once it's clear we had no load-time errors. d) Clean up horribly "Load Recipes" waypoints, combine them with the better name, "Mu Prelude". Putting these together, we have the following manual tests: - CFLAGS=-g mu x.mu Should not create last_run. - CFLAGS=-g mu --trace x.mu Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace x.mu # when x.mu has an error Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace test copy_literal # C test Should create last_run. Should write it out exactly once. - CFLAGS=-g mu --trace test recipe_with_header # Mu test Should create last_run. Should write it out exactly once. I don't know how to automate these scenarios yet. We need a way to run our build toolchain atop our stack.