summary refs log tree commit diff
path: root/lisc/parse.c
AgeCommit message (Collapse)Author
2015-09-15implement smarter compare+branchQuentin Carbonneaux
2015-09-15split cmp in two sizesQuentin Carbonneaux
2015-09-15get rid of the iteration macroQuentin Carbonneaux
2015-09-15fix two bugs in iselQuentin Carbonneaux
2015-09-15quick fix for comparisons with constantsQuentin Carbonneaux
2015-09-15start work on comparisonsQuentin Carbonneaux
There are two things I overlooked so far. 1. Binary instructions like cmp that do not have a result in registers need the size suffix sometimes, for example when comparing a spill location with a constant. 2. The register allocator needs to be adapted to support the comparison instruction: it is not possible to compare two spill locations without using a register.
2015-09-15print registers with numbersQuentin Carbonneaux
2015-09-15use a new Ref type for registersQuentin Carbonneaux
This might not be a good idea, the problem was that many spurious registers would be added to the Bits data-structures during compilation (and would always remain 0). However, doing the above modification de-uniformizes the handling of temps and regs, this makes the code longer and not really nicer. Also, additional Bits structures are required to track the registers independently. Overall this might be a bad idea to revert.
2015-09-15avoid name conflicts in enumsQuentin Carbonneaux
2015-09-15start change of representation for registersQuentin Carbonneaux
2015-09-15start work on word/long handlingQuentin Carbonneaux
2015-09-15replace IA with X for x64 instructionsQuentin Carbonneaux
2015-09-15avoid keyword clash by using cons for constantsQuentin Carbonneaux
2015-09-15cosmetic modifications to parse.cQuentin Carbonneaux
2015-09-15clean the commutativity + fix bug in emitQuentin Carbonneaux
The commutativity information only makes sense for arithmetic expressions. To account for that, I introduced a new tri-valued boolean type B3. Memory operations, for example, will receive an undefined commutativity trit. The code emitter was buggy when rega emitted instructions like 'rax = add 1, rax', this is now fixed using the commutativity information (we rewrite it in 'rax = add rax, 1').
2015-09-15cosmeticsQuentin Carbonneaux
2015-09-15compress parsref code a littleQuentin Carbonneaux
2015-09-15start improving constants supportQuentin Carbonneaux
2015-09-15silence clang warningQuentin Carbonneaux
2015-09-15add crippled dce to the allocatorQuentin Carbonneaux
2015-09-15complete a crude register allocatorQuentin Carbonneaux
2015-09-15finish spiller, now needs testing!Quentin Carbonneaux
2015-09-15add more printing supportQuentin Carbonneaux
2015-09-15add slot addressing and some more spillingQuentin Carbonneaux
2015-09-15define curi as a global tooQuentin Carbonneaux
2015-09-15export error functionsQuentin Carbonneaux
2015-09-15rename mod to remQuentin Carbonneaux
2015-09-15move main function out of parse.cQuentin Carbonneaux
2015-09-15fix phi handling in livenessQuentin Carbonneaux
2015-09-15add rpo test and some liveness codeQuentin Carbonneaux
2015-09-15simplify block handlingQuentin Carbonneaux
2015-09-15use argument array for all instructionsQuentin Carbonneaux
2015-09-15change Ref to a structQuentin Carbonneaux
2015-09-15fix some more parsing bugsQuentin Carbonneaux
2015-09-15fix some parsing bug of phi nodesQuentin Carbonneaux
2015-09-15add pretty printing functionQuentin Carbonneaux
2015-09-15change phi nodes representationQuentin Carbonneaux
2015-09-15give blocks an idQuentin Carbonneaux
2015-09-15fix namingQuentin Carbonneaux
2015-09-15add rpo information to functionsQuentin Carbonneaux
2015-09-15add predecessor computationQuentin Carbonneaux
2015-09-15fix multiple block definition checkQuentin Carbonneaux
2015-09-15cosmeticsQuentin Carbonneaux
2015-09-15forward decls of enums are not allowed in iso cQuentin Carbonneaux
2015-09-15factoring? in the lexerQuentin Carbonneaux
2015-09-15remove useless errstrQuentin Carbonneaux
2015-09-15rename branching cnd to jezQuentin Carbonneaux
2015-09-15fix commentQuentin Carbonneaux
2015-09-15add commentsQuentin Carbonneaux
2015-09-15trivial bugsQuentin Carbonneaux