Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 6947 - change exponent separator since 'e' is hex | Kartik Agaram | 2020-10-04 | 1 | -3/+3 |
| | |||||
* | 6946 - print floats somewhat intuitively in hex | Kartik Agaram | 2020-10-04 | 18 | -44/+314 |
| | |||||
* | 6945 | Kartik Agaram | 2020-10-04 | 1 | -2/+2 |
| | |||||
* | 6944 | Kartik Agaram | 2020-10-04 | 2 | -0/+7 |
| | |||||
* | 6943 | Kartik Agaram | 2020-10-04 | 4 | -97/+71 |
| | | | | | | | | Move some implementation around for floating-point. I originally thought I wouldn't bother supporting sigils like %xmm0. But it turns out I need them to pass floats into SubX function calls. And it turns out the sigils work fine for free. | ||||
* | 6942 | Kartik Agaram | 2020-10-04 | 2 | -0/+20 |
| | |||||
* | 6941 - detective story for the day | Kartik Agaram | 2020-10-03 | 2 | -0/+119 |
| | |||||
* | 6940 | Kartik Agaram | 2020-10-03 | 1 | -10/+10 |
| | |||||
* | 6939 | Kartik Agaram | 2020-10-03 | 1 | -0/+6 |
| | |||||
* | 6938 - start colorizing floating-point registers | Kartik Agaram | 2020-10-03 | 2 | -7/+7 |
| | |||||
* | 6937 | Kartik Agaram | 2020-10-03 | 2 | -36/+42 |
| | |||||
* | 6936 | Kartik Agaram | 2020-10-03 | 1 | -0/+146 |
| | |||||
* | 6935 - raytracing using floats | Kartik Agaram | 2020-10-03 | 4 | -0/+65691 |
| | |||||
* | 6934 | Kartik Agaram | 2020-10-03 | 2 | -0/+26 |
| | |||||
* | 6933 | Kartik Agaram | 2020-10-03 | 1 | -10/+11 |
| | |||||
* | 6932 - another bug related to floats | Kartik Agaram | 2020-10-03 | 2 | -0/+70 |
| | | | | | | | For most of Mu's history we've selected between primitives based on types just by checking whether a type is a literal or not. Now we've started checking if it's a float as well. However, floats need one additional check: the call site may have an (addr float) that is dereferenced. | ||||
* | 6931 - support fp registers in variable lookup | Kartik Agaram | 2020-10-03 | 2 | -4/+82 |
| | |||||
* | 6930 | Kartik Agaram | 2020-10-03 | 2 | -4/+2 |
| | |||||
* | 6929 | Kartik Agaram | 2020-10-03 | 1 | -22/+32 |
| | |||||
* | 6928 | Kartik Agaram | 2020-10-03 | 1 | -0/+1 |
| | |||||
* | 6927 - working on a raytracing tutorial | Kartik Agaram | 2020-10-03 | 7 | -0/+65702 |
| | | | | https://raytracing.github.io/books/RayTracingInOneWeekend.html | ||||
* | 6926 | Kartik Agaram | 2020-10-02 | 1 | -0/+4 |
| | |||||
* | 6925 - tile: don't try to print escape sequences | Kartik Agaram | 2020-10-01 | 3 | -1/+50 |
| | |||||
* | 6924 | Kartik Agaram | 2020-10-01 | 3 | -14/+13 |
| | |||||
* | 6923 | Kartik Agaram | 2020-10-01 | 83 | -24543/+0 |
| | |||||
* | 6922 | Kartik Agaram | 2020-10-01 | 2 | -2/+60 |
| | |||||
* | 6921 | Kartik Agaram | 2020-10-01 | 1 | -1/+1 |
| | |||||
* | 6920 | Kartik Agaram | 2020-10-01 | 2 | -2/+2 |
| | |||||
* | 6919 | Kartik Agaram | 2020-10-01 | 1 | -6/+98 |
| | |||||
* | 6918 | Kartik Agaram | 2020-10-01 | 1 | -0/+0 |
| | | | | Fix CI. | ||||
* | 6917 | Kartik Agaram | 2020-09-30 | 1 | -4/+4 |
| | |||||
* | 6916 | Kartik Agaram | 2020-09-30 | 1 | -22849/+24621 |
| | |||||
* | 6915 - a new family of Mu branch instructions | Kartik Agaram | 2020-09-30 | 3 | -2/+432 |
| | | | | | | The realization of commit 6916 means that we should be using jump-if-addr* after comparing floats. Which is super ugly. Let's create aliases to them called jump-if-float*. | ||||
* | 6914 | Kartik Agaram | 2020-09-30 | 1 | -13/+13 |
| | |||||
* | 6913 - copying floats around | Kartik Agaram | 2020-09-30 | 2 | -0/+77 |
| | |||||
* | 6912 | Kartik Agaram | 2020-09-30 | 2 | -12/+12 |
| | |||||
* | 6911 - comparing floats | Kartik Agaram | 2020-09-30 | 5 | -23/+63 |
| | | | | | | | It turns out floating-point operations set different flags than most instructions. We have to branch on them using unsigned jumps. https://stackoverflow.com/questions/7057501/x86-assembler-floating-point-compare/7057771#7057771 | ||||
* | 6910 - emulate most floating-point operations | Kartik Agaram | 2020-09-30 | 2 | -4/+311 |
| | |||||
* | 6909 | Kartik Agaram | 2020-09-30 | 1 | -6/+5 |
| | |||||
* | 6908 - compiling all floating-point operations | Kartik Agaram | 2020-09-30 | 17 | -47/+843 |
| | | | | | We don't yet support emulating these instructions in `bootstrap`. But generated binaries containing them run natively just fine. | ||||
* | 6907 - converting to and from floating-point | Kartik Agaram | 2020-09-29 | 2 | -9/+163 |
| | | | | Some bugfixes to the previous commit. | ||||
* | 6906 | Kartik Agaram | 2020-09-29 | 2 | -4/+4 |
| | |||||
* | 6905 - first floating-point instruction compiling | Kartik Agaram | 2020-09-29 | 2 | -2/+275 |
| | | | | (Though the generated code doesn't work yet.) | ||||
* | 6904 | Kartik Agaram | 2020-09-29 | 2 | -133/+266 |
| | | | | | New fields for primitives to support code-generation for floating-point primitives. | ||||
* | 6903 | Kartik Agaram | 2020-09-29 | 2 | -0/+29 |
| | | | | | | | | | | | | | | | | | | | Make a few tests more self-contained. I'd prefer to just run a function called `setup` first thing on startup and move this portion of convert-mu to it: # initialize global data structures c7 0/subop/copy *Next-block-index 1/imm32 8b/-> *Primitive-type-ids 0/r32/eax 89/<- *Type-id 0/r32/eax # stream-write c7 0/subop/copy *_Program-functions 0/imm32 c7 0/subop/copy *_Program-functions->payload 0/imm32 c7 0/subop/copy *_Program-types 0/imm32 c7 0/subop/copy *_Program-types->payload 0/imm32 c7 0/subop/copy *_Program-signatures 0/imm32 c7 0/subop/copy *_Program-signatures->payload 0/imm32 However, this approach doesn't fix my run_one_test tooling. | ||||
* | 6902 | Kartik Agaram | 2020-09-29 | 6 | -34/+92 |
| | |||||
* | 6901 | Kartik Agaram | 2020-09-29 | 2 | -8/+32 |
| | |||||
* | 6900 - mu.subx: new primitive type 'float' | Kartik Agaram | 2020-09-29 | 2 | -7/+29 |
| | | | | Using it will currently emit incorrect programs. | ||||
* | 6899 | Kartik Agaram | 2020-09-29 | 2 | -2/+2 |
| | |||||
* | 6898 - names for floating-point xmm* registers | Kartik Agaram | 2020-09-29 | 5 | -2/+60 |
| |