- 04 Aug, 2015 5 commits
-
-
Christoph Mallon authored
They only have one result. This also resolves the harmless typo, that they used each others Proj enums.
-
Christoph Mallon authored
It pops a value from the stack, so this memory access should be represented in the graph.
-
Christoph Mallon authored
-
Christoph Mallon authored
The node must use the mode of the floating point register class, irrespective of the mode of the loaded constant.
-
Christoph Mallon authored
-
- 02 Aug, 2015 2 commits
-
-
Christoph Mallon authored
IncSP can only have %esp assigned.
-
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 8 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.
-