- 17 Nov, 2014 14 commits
-
-
Christoph Mallon authored
* Provide a function for a full Immediate (entity + constant) and one for just a constant * Place all immediates in the start block * This slightly reduces the inconsistency, that some constant-only Immediates had no_pic_adjust set
-
Christoph Mallon authored
-
Christoph Mallon authored
l_{Shl,Shr,Sar}Dep are long gone. So there are no shift operations with a third input (dependency) anymore.
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
It only worked, if a single value, which was at TOS, should be popped.
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 16 Nov, 2014 17 commits
-
-
Christoph Mallon authored
ia32: Merge the attributes use_frame, need_stackent, need_32bit_stackent and need_64bit_stackent into one attribute. * Out of the 16 possible combinations of these four boolean attributes, only four are sensible. * This correct the latent bug, that not all of these attributes were compared in ia32_attrs_equal_().
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
- 15 Nov, 2014 9 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Christoph Mallon authored
Consider a function with frame pointer relative addressing, where the only users of the stack are the Returns. Still space for values might be allocated on the stack. To prevent this, during prologue construction the IncSP was kept, if it had at most one user. If there are multiple returns, then there was more than one user, so the IncSP is not kept. Then during epilogue construction these uses are replaced by movl %ebp, %esp/leave. This renders the allocation of the frame unused and it vanishes. So memory below the stack pointer is accessed. Now first construct the epilogues. Then, when the prologue is constructed afterwards, we know whether the IncSP is unused and needs to be kept. Still this is a hack. The correct solution would be, that IncSP produces memory, so memory operations accessing stack slots use this memory.
-
Christoph Mallon authored
It pops a value from the stack, so this memory access should be represented in the graph.
-
Christoph Mallon authored
-