- 04 Apr, 2016 1 commit
-
-
Matthias Braun authored
This is a bigger rewrite of stack frame handling in the backend: - Do the stack frame type layout late, after all the spill slots have been created. This way we can avoid (and remove) the brittle frame_alloc_area(). - Standardize the meaning of stack entity offsets. After stack frame type layout they are relative to the stack pointer position at the beginning of the function. It is all in one type now, no splitting into "arg", "between" and "stack_frame" type anymore. - Generalize the stack pointer simulation code to work with a single callback. Represent stack state as current offset and align_padding number. Now that callbacks can access and modify them both we do not need custom code in the sparc backend anymore. - Remove alignment specification on IncSP, only keep a ignore_align flag used for the last IncSP that has to remove all existing sp adjustments and may end up on a misaligned SP on ia32/amd64. - Align stack by default on ia32+amd64 backends.
-
- 01 Apr, 2016 1 commit
-
-
Christoph Mallon authored
-
- 15 Mar, 2016 1 commit
-
-
Christoph Mallon authored
-
- 14 Mar, 2016 1 commit
-
-
Christoph Mallon authored
-
- 28 Feb, 2016 1 commit
-
-
Christoph Mallon authored
-
- 15 Feb, 2016 2 commits
-
-
Matthias Braun authored
They previously used be_stack_layout but that structure will be remove soon.
-
Matthias Braun authored
-
- 14 Feb, 2016 1 commit
-
-
Matthias Braun authored
-
- 07 Feb, 2016 1 commit
-
-
Matthias Braun authored
-
- 30 Jan, 2016 1 commit
-
-
Matthias Braun authored
This allows us to properly implement the OS X calling conventions.
-
- 10 Jan, 2016 1 commit
-
-
Matthias Braun authored
-
- 09 Jan, 2016 2 commits
- 30 Dec, 2015 1 commit
-
-
Matthias Braun authored
This plugs a memory leak.
-
- 21 Dec, 2015 1 commit
-
-
Matthias Braun authored
-
- 19 Dec, 2015 1 commit
-
-
Matthias Braun authored
-
- 13 Oct, 2015 2 commits
- 24 Sep, 2015 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 23 Sep, 2015 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 22 Sep, 2015 1 commit
-
-
Manuel Mohr authored
Commit d33e0668 accidentally disabled varargs support unless long double support is enabled.
-
- 20 Sep, 2015 4 commits
-
-
Matthias Braun authored
Also disable it by default for now until x87 support is more mature.
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
- 16 Sep, 2015 1 commit
-
-
Matthias Braun authored
We can see that we need a frame entity if the the immediate has a X86_IMM_FRAMEOFFSET relocation but no entity assigned yet.
-
- 10 Sep, 2015 1 commit
-
-
Matthias Braun authored
-
- 08 Sep, 2015 3 commits
-
-
Andreas Fried authored
-
Andreas Fried authored
-
Christoph Mallon authored
be: Pass the input requirements directly to the constructors of nodes, which have a variable number of arguments.
-
- 31 Aug, 2015 1 commit
-
-
Andreas Fried authored
-
- 29 Aug, 2015 2 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
-
- 14 Aug, 2015 2 commits
-
-
Andreas Fried authored
-
Andreas Fried authored
This adds two builtin kinds, ir_bk_va_start and ir_bk_va_arg. va_arg Builtins are lowered in the lower_builtins pass with a function provided by the backend, whereby most architectures can use be_default_lower_va_args. va_start Builtins are lowered in the backend. Note: This commit breaks all backends except for IA32. SPARC and AMD64 are implemented in later commits. The ARM backend previously miscompiled variadic functions, and will now throw a proper error.
-
- 09 Aug, 2015 1 commit
-
-
Christoph Mallon authored
All backends have similar empty Start nodes, which just provide registers. So having one generic backend Start node to share some infrastructure is sensible.
-
- 04 Aug, 2015 2 commits
-
-
Christoph Mallon authored
It pops a value from the stack, so this memory access should be represented in the graph.
-
Christoph Mallon authored
-