about summary refs log tree commit diff stats
path: root/apps
Commit message (Collapse)AuthorAgeFilesLines
* 6650 - bit-shift operations really workingKartik Agaram2020-07-142-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
* 6649Kartik Agaram2020-07-142-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 MuKartik Agaram2020-07-142-0/+138
| | | | I'm not happy with the names.
* 6647Kartik Agaram2020-07-141-4/+4
|
* 6645 - heap allocations in MuKartik Agaram2020-07-132-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.
* 6644Kartik Agaram2020-07-132-99/+99
|
* 6641Kartik Agaram2020-07-121-3/+4
|
* 6638 - require '0x' prefix on multi-digit literalsKartik Agaram2020-07-112-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.
* 6637Kartik Agaram2020-07-112-0/+9
| | | | Be more consistent about what we interpret as integer literals.
* 6636Kartik Agaram2020-07-112-0/+2
|
* 6635 - bugfixKartik Agaram2020-07-112-3/+47
|
* 6630 - define type signatures for SubX functionsKartik Agaram2020-07-102-10/+340
| | | | This was easier than I'd feared.
* 6629Kartik Agaram2020-07-101-16/+17
|
* 6628Kartik Agaram2020-07-102-1/+3
|
* 6626Kartik Agaram2020-07-092-5/+11
|
* 6625Kartik Agaram2020-07-091-210/+210
|
* 6624Kartik Agaram2020-07-091-12/+10
|
* 6622 - new syscalls: time and ntimeKartik Agaram2020-07-0826-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 docsKartik Agaram2020-07-065-25/+12
|
* 6607 - new prototype dir for spreadsheet ideasKartik Agaram2020-07-051-69/+0
|
* 6606Kartik Agaram2020-07-021-0/+9
|
* 6604 - new appKartik Agaram2020-07-0128-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.
* 6603Kartik Agaram2020-06-302-4/+4
|
* 6602Kartik Agaram2020-06-301-1/+1
|
* 6601Kartik Agaram2020-06-292-12/+12
|
* 6600Kartik Agaram2020-06-292-3/+3
|
* 6599Kartik Agaram2020-06-295-14/+14
|
* 6597Kartik Agaram2020-06-2916-11/+11
|
* 6596Kartik Agaram2020-06-2915-6/+6
|
* 6595Kartik Agaram2020-06-2920-130/+130
|
* 6594 - start standardizing the meaning of 'print'Kartik Agaram2020-06-2913-0/+0
|
* 6592 - error-checking for integer stmts feels doneKartik Agaram2020-06-282-1/+50
|
* 6591Kartik Agaram2020-06-282-1/+32
|
* 6590Kartik Agaram2020-06-282-1/+189
|
* 6589Kartik Agaram2020-06-282-12/+5
|
* 6588Kartik Agaram2020-06-282-0/+165
|
* 6587Kartik Agaram2020-06-282-0/+166
|
* 6586 - error-checking for 'get' stmts feels doneKartik Agaram2020-06-282-1/+111
|
* 6585Kartik Agaram2020-06-282-10/+97
|
* 6584Kartik Agaram2020-06-282-0/+55
|
* 6583Kartik Agaram2020-06-282-1/+61
|
* 6582Kartik Agaram2020-06-282-2/+69
|
* 6581Kartik Agaram2020-06-282-6/+259
|
* 6580Kartik Agaram2020-06-281-4/+4
|
* 6579Kartik Agaram2020-06-282-5/+143
|
* 6578 - redo error if 'get' on unknown fieldKartik Agaram2020-06-272-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.
* 6577Kartik Agaram2020-06-272-12/+12
|
* 6576Kartik Agaram2020-06-272-8/+56
|
* 6575Kartik Agaram2020-06-272-220/+253
|
* 6574Kartik Agaram2020-06-271-4/+6
|