path: root/6
AgeCommit message (Collapse)Author
2015-12-15Fix matching void union args.Ori Bernstein
We no longer segfault! Whee!
2015-12-15More fixes to void values.Ori Bernstein
We now unbreak varargs, and compare them correctly.
2015-12-14Don't eliminate side effects on void assign.Ori Bernstein
The last changes would drop void assignments as they could have no side effects. Unfortunately, this also meant that the side effects of the arguments would be dropped.
2015-12-14Fix void arguments in argument lists.Ori Bernstein
'void' isn't a bloody integer.
2015-12-14Initial support for void as an expression.Ori Bernstein
2015-12-11Fix code to disallow use before definition.Ori Bernstein
At least in some cases.
2015-11-18Fix BSS on OSX.Ori Bernstein
Our alignment was too big, and we really didn't need to leading '_'. In fact, we didn't even need zero blobs.
2015-11-17Put empty symbols in bss, and use .fill directives.Ori Bernstein
We don't need to put zero bytes into the binary, and we don't need to generate thousands of .byte directives.
2015-11-17MEGAPATCH: Tabification.Ori Bernstein
Tabs > spaces. By 4 spaces, to be precise. Let's use them.
2015-11-06Add support for '$' operator.Ori Bernstein
2015-11-06Rewrite pattern matching code.Ori Bernstein
Much cleaner, and more efficient.
2015-11-06Shuffle around functions.Ori Bernstein
Move some code into the frontend so the middle end can call it.
2015-11-06Working pattern matching.Ori Bernstein
2015-11-06Pass the basic tests. we still fail complex ones.Ori Bernstein
2015-11-06Fix decision trees for structs.Ori Bernstein
2015-10-19Make improved pattern matching work for unions.Ori Bernstein
2015-10-19Work towards better match statements.Ori Bernstein
Generate decision trees from mi/match.c. Still slightly broken, so not enabled.
2015-10-02Propagate extra libraries through the system.Ori Bernstein
2015-09-30Fix typo.Ori Bernstein
2015-09-17Fix SSE instruction formats on Amd64Ori Bernstein
2015-09-29Fix cast checks.Ori Bernstein
We used some casting slices to intptrs when we implemented syscalls.
2015-09-29Implement casting functions to pointers.Ori Bernstein
Useful for interfacing with C ABIs.
2015-09-16Tycode fix for plan9.Ori Bernstein
We moved from Tyfunc to Tycode, but forgot to update the definition of the oob abort for plan9. Fixed.
2015-09-27Don'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-27Bump ABI version. Also, improve errors about it.Ori Bernstein
We now say which version we got, which version we expected, and only warn in mbld. This means that we can probably build newer usefiles with older mblds.
2015-09-27Working closures.Ori Bernstein
2015-09-27Add 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-26Separate 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-26Create a new call node instead of mutating.Ori Bernstein
This should make indirect calls easier.
2015-09-26Factor out simplifying calls.Ori Bernstein
2015-09-26Fix up constant initialization a bit.Ori Bernstein
2015-09-25Capture environment for closures on creation.Ori Bernstein
2015-09-25Refer to captured vars through env ptrOri Bernstein
The other half to populate an env pointer isn't there, so we haven't enabled this.
2015-09-24Error out correctly with closures.Ori Bernstein
2015-09-24Put the closure at the function level.Ori Bernstein
2015-09-19Store 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-16Update Plan 9 myrddin build.Ori Bernstein
2015-09-18Remove 'long' type.Ori Bernstein
It wasn't ever actually used.
2015-09-16Add futex op constants.Ori Bernstein
Needed for Linux libthread.
2015-09-14Fix alignment of function args.Ori Bernstein
2015-08-24Revert "Generates 'rol' instructions."Ori Bernstein
This reverts commit 6a921aa5b2045b172370c1677c1e3f75b8c3cfc4. This broke sha1 hashing.
2015-08-24Useless, noisy debug trace dropped.Ori Bernstein
2015-08-23Clean up remapping code.Ori Bernstein
2015-08-23Refactor the substituition of the early coalesces.Ori Bernstein
2015-08-23Generates '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-23Merge branch 'peephole-opt'Ori Bernstein
2015-08-23Remove dead code.Ori Bernstein
2015-08-20Update Plan 9 build for new ABI.Ori Bernstein
2015-08-22qsort_r isn't portable.Ori Bernstein
2015-08-22Do slightly better code gen.Ori Bernstein
Remove some spurious spills.