Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-09-11 | Fix indentation. | Ori Bernstein | |
GCC has silly warnings. | |||
2017-09-10 | Emit rotl/rotr instructions. | Ori Bernstein | |
2017-09-10 | Format whitespace. | Ori Bernstein | |
2017-07-09 | Style(9)-ify. | Ori Bernstein | |
2017-03-20 | Step by line in gdb. | Ori Bernstein | |
I guess it's a good idea. | |||
2017-01-02 | Fix clang warnings. | Ori Bernstein | |
Apparently enums getting promoted to ints in va_start() is undefined behavior. This is stupid. | |||
2016-02-22 | Extract util functions into separate dir from parse/ | Ori Bernstein | |
2016-02-20 | Start refactoring | Ori Bernstein | |
Split flattening and lowering. | |||
2016-02-13 | Eliminate special case instructions. | Ori Bernstein | |
They're used rarely, and are clunky. If your types are big enough that you need to blit them regularly, just use memops code. | |||
2016-02-13 | Same treatment for 'repstosb' | Ori Bernstein | |
2016-02-13 | And correctly null terminate arg lists. | Ori Bernstein | |
2016-02-13 | Save regs correctly around rep movs | Ori Bernstein | |
2016-01-26 | Remove the '$' shorthand for end of array. | Ori Bernstein | |
2015-12-28 | Fix union alignment. | Ori Bernstein | |
2015-12-28 | Remove leftover debugging cruft. | Ori Bernstein | |
2015-12-28 | Fix alignment in argument passing. | Ori Bernstein | |
The alignment of a compound type is equal to the maximum alignment of its members, so your array shouldn't be aligned. When setting up arguments, though, I was accidentally using the size of the type instead of the alignment. Fixes #30 | |||
2015-12-15 | Don't die on zero sized structs. | Ori Bernstein | |
2015-12-15 | More fixes to void values. | Ori Bernstein | |
We now unbreak varargs, and compare them correctly. | |||
2015-12-14 | Fix void arguments in argument lists. | Ori Bernstein | |
'void' isn't a bloody integer. | |||
2015-12-14 | Initial support for void as an expression. | Ori Bernstein | |
2015-11-17 | MEGAPATCH: Tabification. | Ori Bernstein | |
Tabs > spaces. By 4 spaces, to be precise. Let's use them. | |||
2015-11-06 | Add support for '$' operator. | Ori Bernstein | |
2015-10-19 | Work towards better match statements. | Ori Bernstein | |
Generate decision trees from mi/match.c. Still slightly broken, so not enabled. | |||
2015-09-27 | Don't index directly off of %rax. | Ori Bernstein | |
We use it for function returns. We also use it for environment of called closures. This means we clobbered it. Oops. | |||
2015-09-27 | Working closures. | Ori Bernstein | |
2015-09-27 | Add indirect call operator. | Ori Bernstein | |
This should allow us to split up direct calls and environment calls. Currently, it doesn't actually do anything. | |||
2015-09-26 | Separate out the concepts of code and func ptrs. | Ori Bernstein | |
In order to pass around functions with environments for closures, we need to refer to the type of a function pointer, as well as the type of code. This is ugly. When I rewrite the backend I should change it. | |||
2015-09-26 | Fix up constant initialization a bit. | Ori Bernstein | |
2015-09-25 | Refer to captured vars through env ptr | Ori Bernstein | |
The other half to populate an env pointer isn't there, so we haven't enabled this. | |||
2015-09-19 | Store function args into the right place. | Ori Bernstein | |
This probably means a register, but possibly a stack slot. Let loc() figure it out. | |||
2015-09-14 | Fix alignment of function args. | Ori Bernstein | |
2015-08-24 | Revert "Generates 'rol' instructions." | Ori Bernstein | |
This reverts commit 6a921aa5b2045b172370c1677c1e3f75b8c3cfc4. This broke sha1 hashing. | |||
2015-08-23 | Generates 'rol' instructions. | Ori Bernstein | |
This doesn't seem to have the performance effect I was hoping for with the sha1 calculaton, but it still improves code gen time, since there are fewer dumb, wasteful instructions. | |||
2015-08-23 | Merge branch 'peephole-opt' | Ori Bernstein | |
2015-08-20 | Update Plan 9 build for new ABI. | Ori Bernstein | |
2015-08-21 | Get closer to the C ABI | Ori Bernstein | |
2015-08-19 | Start using mostly caller save ABI. | Ori Bernstein | |
2015-07-24 | Replace snprintf with a variant that asserts when out of buffer. | Ori Bernstein | |
Let's not happy silent truncate. | |||
2015-07-16 | Remove janky return register crud for stack types. | Ori Bernstein | |
We don't return in a register. Why are we trying to pick one? | |||
2015-07-05 | Add proper support for a 'gap' variable. | Ori Bernstein | |
'_' is now a reserved token. | |||
2015-07-05 | Improve error messages. | Ori Bernstein | |
2015-05-08 | Use before def checking is closer to working. | Ori Bernstein | |
Reduce spurious errors. | |||
2015-05-07 | Add 'undef' operator. | Ori Bernstein | |
Marks values as undefined, useful for reaching defn dummy analysis. | |||
2015-05-06 | Compile error on reaching end of func without return. | Ori Bernstein | |
2015-02-09 | Fix int->float conversion. | Ori Bernstein | |
2015-02-07 | Put the rhs of the multiplication operator into a reg. | Ori Bernstein | |
This needs to happen to avoid errors in code gen. | |||
2015-01-25 | Clear structs. | Ori Bernstein | |
When creating stack structs, clear them. TODO: only clear uninitialized values. | |||
2015-01-06 | Improve error messages. | Ori Bernstein | |
This involved lots of table changes. | |||
2014-12-26 | Fix a few typos. | Ori Bernstein | |
2014-12-26 | Sign extend byte regs for signed division. | Ori Bernstein | |