Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-02-22 | simplify emit table | Quentin Carbonneaux | |
2016-02-18 | stop using OXxx1 and use new OLoad | Quentin Carbonneaux | |
2016-02-15 | fix comments in emit | Quentin Carbonneaux | |
2016-02-15 | quickly patch emit (fp load and store) | Quentin Carbonneaux | |
2016-02-15 | collect and emit fp constants | Quentin Carbonneaux | |
2016-02-11 | fp cmp fixes (highly untested) | Quentin Carbonneaux | |
2016-02-04 | fix indent in emit | Quentin Carbonneaux | |
2016-02-04 | more mac os compatibility in emit | Quentin Carbonneaux | |
2016-02-04 | cheap rip relative hack | Quentin Carbonneaux | |
2016-02-04 | fix emit bugs for binops | Quentin Carbonneaux | |
2016-02-04 | fix typo in emit tables | Quentin Carbonneaux | |
2016-02-03 | fix call emission | Quentin Carbonneaux | |
2016-02-03 | finish emit lifting, seems ok now | Quentin Carbonneaux | |
2016-02-03 | more revamp in emit | Quentin Carbonneaux | |
2016-02-02 | document emit format | Quentin Carbonneaux | |
2016-01-29 | start emit simplification | Quentin Carbonneaux | |
2015-11-30 | stores becomes storeh | Quentin Carbonneaux | |
2015-10-30 | this test optimization is sometimes incorrect | Quentin Carbonneaux | |
2015-10-30 | small fix in memory refs emission | Quentin Carbonneaux | |
2015-10-30 | add support for RAMem in emit | Quentin Carbonneaux | |
2015-10-30 | start integrating RAMem references | Quentin Carbonneaux | |
2015-10-30 | emit code for extensions, move slots into RAlt | Quentin Carbonneaux | |
2015-10-19 | uniformize sign extension and mem loads | Quentin Carbonneaux | |
2015-10-08 | allow multiple functions in file | Quentin Carbonneaux | |
2015-10-08 | emit alignment directives properly | Quentin Carbonneaux | |
2015-10-07 | finish implementing data parsing | Quentin Carbonneaux | |
2015-10-01 | support negative frame offsets in emit | Quentin Carbonneaux | |
They are used to access function parameters passed on the stack. | |||
2015-09-30 | uniformize alignment code in framesz() | Quentin Carbonneaux | |
2015-09-29 | wip on new stack slots (emit, spill) | Quentin Carbonneaux | |
2015-09-22 | parse return types of functions | Quentin Carbonneaux | |
2015-09-21 | emit syntactically valid calls | Quentin Carbonneaux | |
2015-09-20 | factor formatting inside emitf | Quentin Carbonneaux | |
2015-09-20 | simplify two loops with a pointer | Quentin Carbonneaux | |
2015-09-20 | save callee-save registers | Quentin Carbonneaux | |
2015-09-17 | add hack in emit to support stack arguments | Quentin Carbonneaux | |
The number stored in the .val field of SLOTs has to be sign extended, so we can reach into the caller's frame when necessary (arguments passed on the stack). | |||
2015-09-17 | start work on fuction parameters | Quentin Carbonneaux | |
2015-09-15 | hack to enable proper regalloc on calls | Quentin Carbonneaux | |
I add the dual to dummy uses: dummy defs. They are compiled to nothing, but help preserving the invariants I had when writing the register allocator. Clearly, there should be a better way. | |||
2015-09-15 | implement aggregate passing in regs | Quentin Carbonneaux | |
2015-09-15 | start function call lowering (wip) | Quentin Carbonneaux | |
2015-09-15 | start work on aggregate types | Quentin Carbonneaux | |
The parser now has some code to parse the description of structured types. I tried to be even less specific than LLVM "type" by creating just enough abstraction so that I can deal with both AARCH64 and x64. The base types used in the definition of an aggregate are really just syntactic sugar to give a structure a size and an alignment. Only the location of float components matters for the compilation. In particular this means that the front-ends have to know how the ABI works to pass/return small integer types. This also means that the font-end has to be aware of the layout of structures. Chris Lattner has a proposition [1] for LLVM that is still pending and goes in the direction of giving more control of the ABI the front-end. [1]: http://www.nondot.org/sabre/LLVMNotes/ExtendedIntegerResults.txt | |||
2015-09-15 | split some long calls | Quentin Carbonneaux | |
2015-09-15 | fix two bugs in new emit | Quentin Carbonneaux | |
2015-09-15 | update emit to the new setting | Quentin Carbonneaux | |
2015-09-15 | fix invalid test in emit | Quentin Carbonneaux | |
It could be that the destination of the copy is a spill location, so we have to check the type of i.to first. | |||
2015-09-15 | output labels only when necessary | Quentin Carbonneaux | |
2015-09-15 | change cmp $0, %reg, to test %reg, %reg | Quentin Carbonneaux | |
2015-09-15 | fix emit(OCopy) and use pointers in max.ssa | Quentin Carbonneaux | |
2015-09-15 | remove non-critical diagnostics | Quentin Carbonneaux | |
2015-09-15 | add truncation operation | Quentin Carbonneaux | |
It would be nicer to have some kind of subtyping where a l variable can be used in place of a w variable but it is more complications than a truncation insutruction. In some cases, it might be less efficient than the above solution by requiring two registers instead of one. (I.e when both the truncated variable and the long variable live together.) We have to see what are the usage patterns. | |||
2015-09-15 | new NAlign constant and fix frame size computation | Quentin Carbonneaux | |