- 02 Aug, 2015 1 commit
-
-
Christoph Mallon authored
arm, be, ia32, sparc: Do not go on with peephole optimization of IncSP, when be_peephole_IncSP_IncSP() succeeded. The current IncSP was removed in this case and we now would operate on its predecessor IncSP. This is wrong, e.g. when asking for currently free registers. This corrects backend/incsp_pop.c, which was broken on ia32. It was wrongly assumed that a certain register was free and could be used to turn an IncSP into a Pop.
-
- 31 Jul, 2015 3 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 29 Jul, 2015 11 commits
-
-
Christoph Mallon authored
Otherwise the frontend has to do this after asking the backend for its parameters, which is quite awkward.
-
Christoph Mallon authored
Duplicate Projs are a problem when CSE is off, e.g. -O0.
-
Christoph Mallon authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
PC relative relocations need %rip as base register so we cannot match anything else for base.
-
Matthias Braun authored
Calls+Jumps really use PC relative addresses even if they look the same in the assembler. Create an immediate kind for that, this allows a slightly simpler bemit_entity().
-
Matthias Braun authored
-
Matthias Braun authored
-
- 28 Jul, 2015 11 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
The following be_peephole_exchange() has a stricter check, i.e. same mode instead of only not mode_T.
-
Christoph Mallon authored
It is like new_r_Proj(), but the mode is determined automatically from the out requirement of the predecessor. This probably resolves some mode mismatches in untested code paths -- AMD64 backend and SPARC hard float, I'm looking at you!
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 27 Jul, 2015 13 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
Now register requirements always have have a register class. This is more consistent and removes some null pointer checks.
-
Christoph Mallon authored
Nodes without requirements are never operands of a {Copy,}Keep.
-
Christoph Mallon authored
match_requirement() cannot be called with a requirement without a register class.
-
Christoph Mallon authored
Now we can use things, which get initialized for the middle end, e.g. modes.
-
Christoph Mallon authored
-
Christoph Mallon authored
The caller of be_opt_register() calls it, too.
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 26 Jul, 2015 1 commit
-
-
Christoph Mallon authored
-