about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Merge pull request #27 from akkartik/dquotes-2Kartik Agaram2019-05-041-1/+230
| |\ \ | | | | | | | | SubX in SubX: Transforming uses of string literals (prerequisite B)
| | * | * | | 5149Kartik Agaram2019-05-101-3/+8
| | | | | | | | | | | | | | | | Tests still broken.
| * | | 5148Kartik Agaram2019-05-095-47/+26
|/ / / | | | | | | | | | | | | Snapshot of incomplete work to have the memory allocator use `mmap` rather than `brk`. C tests pass, but the SubX layers are still broken.
* | | 5147Kartik Agaram2019-05-081-3/+3
| | |
* | | 5146Kartik Agaram2019-05-081-1/+1
| | |
* | | 5145Kartik Agaram2019-05-047-0/+0
| | |
* | | 5144Kartik Agaram2019-05-041-1/+7
| | | | | | | | | | | | | | | Pull in some final stylistic and debugging-friendly tweaks from my old version of commit 5132 and earlier.
* | | 5143 - add a bounds checkKartik Agaram2019-05-041-0/+10
| | | | | | | | | | | | | | | We'll just loudly abort the entire program if the output stream isn't large enough to accept all the characters we want to print.
* | | 5142Kartik Agaram2019-05-041-12/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Hoist address computation out of the loop. I'm giving in to the temptation to optimize here, and violating my own rule of minimizing local variables by introducing 'curr'. My fig leaf is that the number of instructions inside the loop goes down, and duplicating inside the loop may be distracting to readers.
* | | 5141Kartik Agaram2019-05-041-7/+7
| | | | | | | | | | | | Another minor stylistic point: I try to use EDI for destination operands.
* | | 5140 - fix an out-of-bounds bugKartik Agaram2019-05-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were writing 32-bit words when we meant to write 8-bit bytes. Most of the time this doesn't matter because: * x86 is little endian, * a write to (x, x+1, x+2, x+3) is over-written by the next to (x+1, x+2, x+3, x+4), and * the 3 higher/later bytes are always 0 so no information is lost The only place this matters is if we're close to the end of the stream.
* | | 5139Kartik Agaram2019-05-041-10/+6
| | | | | | | | | | | | | | | | | | | | | Replace the 'negative?' variable with a second read from the stack. It's not clear if this is more or less efficient (https://github.com/akkartik/mu/pull/20#issuecomment-489285130) but taking out the local variable does seem easier to read.
* | | 5138Kartik Agaram2019-05-041-11/+4
| | | | | | | | | | | | | | | | | | Drop some redundant transfers between registers. The x86 instruction set can perform most operations on all available registers, and things are more comprehensible if each conceptual variable has a single location.
* | | 5137Kartik Agaram2019-05-041-77/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few minor stylistic things that may ease reading, but not significantly enough that I care to force others to follow them: * no end-of-line comments for instructions without /rm32 * arguments either at tab stops or after 2 spaces * compare 'with' when using in asymmetric tests (greater/lesser), compare 'and' for symmetric equality checking * prefix internal labels with function name
* | | 5136 - test for a previous bugKartik Agaram2019-05-041-0/+30
| | | | | | | | | | | | Thanks Charles Saternos for the bugfix in 4a0b4344a3!
* | | 5135Kartik Agaram2019-05-047-0/+0
| | |
* | | Merge pull request #20 from akkartik/charles-l-print-int-decimalKartik Agaram2019-05-041-85/+97
|\ \ \ | | | | | | | | exercise: reimplement print-int-decimal
| * | | implemented solutionnc2019-05-031-1/+109
| | | |
| * | | Merge branch 'master' into charles-l-print-int-decimalnc2019-05-0111-59/+181
| |\ \ \ | |/ / / |/| | |
| * | | exercise: reimplement print-int-decimalKartik Agaram2019-04-261-97/+1
| | | |
| | | * dquotes - emit data segment - no escapesKartik Agaram2019-05-032-1/+138
| | | | | | | | | | | | | | | | Convert raw literal strings (no escape sequences) to the data segment.
| | | * new primitives: append-byte, append-byte-hexKartik Agaram2019-05-0210-2/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These are variants of write-byte-buffered and print-byte-buffered respectively that operate on in-memory `stream`s rather than `buffered-file`s. They don't operate on files, so we'll avoid using the prefix 'write-'.
| | | * standardize function namesKartik Agaram2019-05-0222-161/+164
| | | | | | | | | | | | | | | | | | | | Operations on buffered-file now always include the word 'buffered'. More verbose, but hopefully this highlights holes in the library.
| | | * failing tests for part 1/2 of dquotesKartik Agaram2019-04-291-1/+274
| | |/ | | | | | | | | | Converting literal strings into bytes in the data segment.
| | * new failing test in dquotes phaseKartik Agaram2019-04-282-1/+259
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | I'm switching to a more exposed working dynamic after chatting with Charles Saternos (https://github.com/akkartik/mu/pull/19). From now on I'll start a new branch for big features. Branches won't always pass all their tests. Phases have gone weeks in the past before being committed all at once. Developing in a branch gives others the opportunity to see more current progress and jump in more easily. Some 'kata' branches for new contributors to start at: * add two numbers: https://github.com/akkartik/mu/pull/21 * write a string to a byte stram: https://github.com/akkartik/mu/pull/22 * print a number in decimal to a byte stream: https://github.com/akkartik/mu/pull/20
* | 5133 - show instruction source in traceKartik Agaram2019-04-287-14/+104
| | | | | | | | | | | | | | | | | | | | It's a little hacky in some corner cases. In particular, if debug information isn't available the trace will contain duplicated lines. This is because I don't want the core trace lines all my tests rely on (introduced in the 'vm' layer) to have to know about debug info (introduced in the 'labels' and 'debug' layers). Thanks Charles Saternos for the feedback and suggestion!
* | 5132Kartik Agaram2019-04-282-16/+1
| | | | | | | | Stop hackily tracing function being called. Trying something better.
* | 5131Kartik Agaram2019-04-277-32/+37
| | | | | | | | Rename '--map' to '--debug'.
* | 5130 - only show build status of 'master' branchKartik Agaram2019-04-271-1/+1
| |
* | 5129Kartik Agaram2019-04-271-29/+32
| |
* | 5128Kartik Agaram2019-04-261-9/+48
| |
* | 5127Kartik Agaram2019-04-261-1/+1
|/
* 5126 - add a message to a silent CI failure modeKartik Agaram2019-04-261-19/+19
|
* 5125Kartik Agaram2019-04-252-8/+9
|
* 5124Kartik Agaram2019-04-234-4/+4
|
* 5123Kartik Agaram2019-04-232-967/+959
|
* 5122Kartik Agaram2019-04-232-7/+7
|
* 5121Kartik Agaram2019-04-232-2/+2
|
* 5120Kartik Agaram2019-04-231-1/+1
|
* 5119Kartik Agaram2019-04-2315-10307/+11549
|
* 5118 - convert int to stringKartik Agaram2019-04-239-0/+285
|
* 5117Kartik Agaram2019-04-231-0/+1
|
* 5116Kartik Agaram2019-04-231-0/+1
|
* 5115Kartik Agaram2019-04-222-1/+1
|