Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-02-17 | add rv64 backend | Michael Forney | |
It is mostly complete, but still has a few ABI bugs when passing floats in structs, or when structs are passed partly in register, and partly on stack. | |||
2019-04-26 | Fix config.h dependency when OBJDIR != obj | Michael Forney | |
2019-04-24 | Fix default config.h for arm64 | Michael Forney | |
2017-04-08 | add handy src target to the Makefile | Quentin Carbonneaux | |
Intended usage: c_count `make src` (or similar). | |||
2017-04-08 | enable arm64 tests | Quentin Carbonneaux | |
The vararg tests had to be changed because va_list is 32-bit wide on arm. The astute reader will notice that the way we pass va_list values is wrong, we should be using the ':valist' type as defined below instead of 'l'. But eh, that works for now, because of the ABI. type :valist = align 8 { 32 } | |||
2017-04-08 | add cross testing for arm64 | Quentin Carbonneaux | |
2017-04-08 | new arm64 backend, yeepee | Quentin Carbonneaux | |
2017-04-08 | prepare for multi-target | Quentin Carbonneaux | |
This big diff does multiple changes to allow the addition of new targets to qbe. The changes are listed below in decreasing order of impact. 1. Add a new Target structure. To add support for a given target, one has to implement all the members of the Target structure. All the source files where changed to use this interface where needed. 2. Single out amd64-specific code. In this commit, the amd64 target T_amd64_sysv is the only target available, it is implemented in the amd64/ directory. All the non-static items in this directory are prefixed with either amd64_ or amd64_sysv (for items that are specific to the System V ABI). 3. Centralize Ops information. There is now a file 'ops.h' that must be used to store all the available operations together with their metadata. The various targets will only select what they need; but it is beneficial that there is only *one* place to change to add a new instruction. One good side effect of this change is that any operation 'xyz' in the IL now as a corresponding 'Oxyz' in the code. 4. Misc fixes. One notable change is that instruction selection now generates generic comparison operations and the lowering to the target's comparisons is done in the emitter. GAS directives for data are the same for many targets, so data emission was extracted in a file 'gas.c'. 5. Modularize the Makefile. The Makefile now has a list of C files that are target-independent (SRC), and one list of C files per target. Each target can also use its own 'all.h' header (for example to define registers). | |||
2017-02-27 | make install/uninstall phonies | Quentin Carbonneaux | |
2017-02-27 | add install and uninstall targets to Makefile | Quentin Rameau | |
2017-02-25 | do sign/zero extensions removal in copy.c | Quentin Carbonneaux | |
2017-02-24 | start a new simplification pass | Quentin Carbonneaux | |
2016-12-12 | implement a simple load elimination pass | Quentin Carbonneaux | |
2016-12-12 | implement a simple alias analysis | Quentin Carbonneaux | |
2016-12-12 | create cfg.c for cfg-related functions | Quentin Carbonneaux | |
2016-04-13 | add funny 80 target | Quentin Carbonneaux | |
2016-04-09 | enable constant folding | Quentin Carbonneaux | |
2016-04-05 | default to gnu gas format | Quentin Carbonneaux | |
2016-04-05 | yay, support freebsd | Quentin Carbonneaux | |
2016-03-31 | respect the order of the passes | Quentin Carbonneaux | |
2016-03-31 | move abi code in a new file | Quentin Carbonneaux | |
2016-03-29 | do not echo compilation commands if verbose | Quentin Carbonneaux | |
2016-03-29 | new layout, put LICENSE in root | Quentin Carbonneaux | |
2016-03-27 | move check rule into src/ | Quentin Carbonneaux | |
2016-03-27 | move paper synchronization to top makefile | Quentin Carbonneaux | |
2016-03-27 | add centralized all and clean targets | Quentin Carbonneaux | |
2016-03-27 | use make variable for extensibility | Quentin Carbonneaux | |
2016-03-27 | extract tests out of src | Quentin Carbonneaux | |
2015-09-15 | move ml prototype in a subdir | Quentin Carbonneaux | |
2015-09-15 | do not remove t subdir while cleaning | Quentin Carbonneaux | |
2015-09-15 | change name of test file | Quentin Carbonneaux | |
2015-09-15 | more cleaning | Quentin Carbonneaux | |
2015-09-15 | compile tmain with optimizations | Quentin Carbonneaux | |
2015-09-15 | quiet | Quentin Carbonneaux | |
2015-09-15 | cosmetics | Quentin Carbonneaux | |
2015-09-15 | fix spill code | Quentin Carbonneaux | |
2015-09-15 | add simple Makefile | Quentin Carbonneaux | |