Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 6660 | Kartik Agaram | 2020-07-20 | 2 | -2/+2 |
| | |||||
* | 6650 - bit-shift operations really working | Kartik Agaram | 2020-07-14 | 2 | -13/+266 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test input: fn foo { var y/edx: int <- copy 0 y <- shift-left 2 y <- shift-right 2 y <- shift-right-signed 2 var x: int shift-left x, 2 shift-right x, 2 shift-right-signed x, 2 } output: foo: # . prologue 55/push-ebp 89/<- %ebp 4/r32/esp { $foo:0x00000001:loop: ff 6/subop/push %edx ba/copy-to-edx 0/imm32 c1/shift 4/subop/left %edx 2/imm8 c1/shift 5/subop/right-padding-zeroes %edx 2/imm8 c1/shift 7/subop/right-preserving-sign %edx 2/imm8 68/push 0/imm32 c1/shift 4/subop/left *(ebp+0xfffffff8) 2/imm8 c1/shift 5/subop/right-padding-zeroes *(ebp+0xfffffff8) 2/imm8 c1/shift 7/subop/right-preserving-sign *(ebp+0xfffffff8) 2/imm8 81 0/subop/add %esp 0x00000004/imm32 8f 0/subop/pop %edx } $foo:0x00000001:break: # . epilogue 89/<- %esp 5/r32/ebp 5d/pop-to-ebp c3/return test input 2: $ cat x.mu fn main -> o/ebx: int { o <- copy 3 o <- shift-left 2 } output 2: $ ./translate_mu x.mu $ ./a.elf $ echo $? 12 | ||||
* | 6649 | Kartik Agaram | 2020-07-14 | 2 | -7/+137 |
| | | | | | | Bit-shifts aren't quite right yet. We need to emit /imm8 rather than /imm32. This commit introduces the field, though we don't use it yet. | ||||
* | 6648 - bit-shift instructions in Mu | Kartik Agaram | 2020-07-14 | 2 | -0/+138 |
| | | | | I'm not happy with the names. | ||||
* | 6647 | Kartik Agaram | 2020-07-14 | 1 | -4/+4 |
| | |||||
* | 6645 - heap allocations in Mu | Kartik Agaram | 2020-07-13 | 2 | -2/+303 |
| | | | | | | | | - allocate var - populate var, n Both rely on the type of `var` to compute the size of the allocation. No need to repeat the name of the type like in C, C++ or Java. | ||||
* | 6644 | Kartik Agaram | 2020-07-13 | 2 | -99/+99 |
| | |||||
* | 6641 | Kartik Agaram | 2020-07-12 | 1 | -3/+4 |
| | |||||
* | 6638 - require '0x' prefix on multi-digit literals | Kartik Agaram | 2020-07-11 | 2 | -1/+135 |
| | | | | | | Mu exclusively uses hex everywhere for a consistent programming experience from machine code up. But we all still tend to say '10' when we mean 'ten'. Catch that early. | ||||
* | 6637 | Kartik Agaram | 2020-07-11 | 2 | -0/+9 |
| | | | | Be more consistent about what we interpret as integer literals. | ||||
* | 6636 | Kartik Agaram | 2020-07-11 | 2 | -0/+2 |
| | |||||
* | 6635 - bugfix | Kartik Agaram | 2020-07-11 | 2 | -3/+47 |
| | |||||
* | 6630 - define type signatures for SubX functions | Kartik Agaram | 2020-07-10 | 2 | -10/+340 |
| | | | | This was easier than I'd feared. | ||||
* | 6629 | Kartik Agaram | 2020-07-10 | 1 | -16/+17 |
| | |||||
* | 6628 | Kartik Agaram | 2020-07-10 | 2 | -1/+3 |
| | |||||
* | 6626 | Kartik Agaram | 2020-07-09 | 2 | -5/+11 |
| | |||||
* | 6625 | Kartik Agaram | 2020-07-09 | 1 | -210/+210 |
| | |||||
* | 6624 | Kartik Agaram | 2020-07-09 | 1 | -12/+10 |
| | |||||
* | 6622 - new syscalls: time and ntime | Kartik Agaram | 2020-07-08 | 26 | -0/+0 |
| | | | | | As a side-effect I find that my Linode can print ~100k chars/s. At 50 rows and 200 columns per screen, it's 10 frames/s. | ||||
* | 6618 - new docs | Kartik Agaram | 2020-07-06 | 5 | -25/+12 |
| | |||||
* | 6607 - new prototype dir for spreadsheet ideas | Kartik Agaram | 2020-07-05 | 1 | -69/+0 |
| | |||||
* | 6606 | Kartik Agaram | 2020-07-02 | 1 | -0/+9 |
| | |||||
* | 6604 - new app | Kartik Agaram | 2020-07-01 | 28 | -1/+61 |
| | | | | | | https://archive.org/details/akkartik-2min-2020-07-01 In the process I found a bug, added a new syscall, and 'emulated' it. | ||||
* | 6603 | Kartik Agaram | 2020-06-30 | 2 | -4/+4 |
| | |||||
* | 6602 | Kartik Agaram | 2020-06-30 | 1 | -1/+1 |
| | |||||
* | 6601 | Kartik Agaram | 2020-06-29 | 2 | -12/+12 |
| | |||||
* | 6600 | Kartik Agaram | 2020-06-29 | 2 | -3/+3 |
| | |||||
* | 6599 | Kartik Agaram | 2020-06-29 | 5 | -14/+14 |
| | |||||
* | 6597 | Kartik Agaram | 2020-06-29 | 16 | -11/+11 |
| | |||||
* | 6596 | Kartik Agaram | 2020-06-29 | 15 | -6/+6 |
| | |||||
* | 6595 | Kartik Agaram | 2020-06-29 | 20 | -130/+130 |
| | |||||
* | 6594 - start standardizing the meaning of 'print' | Kartik Agaram | 2020-06-29 | 13 | -0/+0 |
| | |||||
* | 6592 - error-checking for integer stmts feels done | Kartik Agaram | 2020-06-28 | 2 | -1/+50 |
| | |||||
* | 6591 | Kartik Agaram | 2020-06-28 | 2 | -1/+32 |
| | |||||
* | 6590 | Kartik Agaram | 2020-06-28 | 2 | -1/+189 |
| | |||||
* | 6589 | Kartik Agaram | 2020-06-28 | 2 | -12/+5 |
| | |||||
* | 6588 | Kartik Agaram | 2020-06-28 | 2 | -0/+165 |
| | |||||
* | 6587 | Kartik Agaram | 2020-06-28 | 2 | -0/+166 |
| | |||||
* | 6586 - error-checking for 'get' stmts feels done | Kartik Agaram | 2020-06-28 | 2 | -1/+111 |
| | |||||
* | 6585 | Kartik Agaram | 2020-06-28 | 2 | -10/+97 |
| | |||||
* | 6584 | Kartik Agaram | 2020-06-28 | 2 | -0/+55 |
| | |||||
* | 6583 | Kartik Agaram | 2020-06-28 | 2 | -1/+61 |
| | |||||
* | 6582 | Kartik Agaram | 2020-06-28 | 2 | -2/+69 |
| | |||||
* | 6581 | Kartik Agaram | 2020-06-28 | 2 | -6/+259 |
| | |||||
* | 6580 | Kartik Agaram | 2020-06-28 | 1 | -4/+4 |
| | |||||
* | 6579 | Kartik Agaram | 2020-06-28 | 2 | -5/+143 |
| | |||||
* | 6578 - redo error if 'get' on unknown field | Kartik Agaram | 2020-06-27 | 2 | -78/+117 |
| | | | | | | This commit reimplements commit 6515 to happen during type-checking rather than as early as possible. That way we naturally get a more informative error message. | ||||
* | 6577 | Kartik Agaram | 2020-06-27 | 2 | -12/+12 |
| | |||||
* | 6576 | Kartik Agaram | 2020-06-27 | 2 | -8/+56 |
| | |||||
* | 6575 | Kartik Agaram | 2020-06-27 | 2 | -220/+253 |
| |