- 04 Apr, 2016 5 commits
-
-
Matthias Braun authored
This meant initializing the address mode variant all over the ia32 backend, on the other hand this will be useful if we ever switch the ia32 backend to a style without NoReg nodes (like amd64).
-
Matthias Braun authored
We only use the immediate and scale yet on ia32.
-
Matthias Braun authored
-
Matthias Braun authored
-
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.
-
- 15 Mar, 2016 1 commit
-
-
Christoph Mallon authored
-
- 15 Feb, 2016 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 14 Feb, 2016 1 commit
-
-
Matthias Braun authored
-
- 30 Jan, 2016 1 commit
-
-
yb9976 authored
In case there also was a Shrs(x, 31), CSE can be applied after instruction selection.
-
- 24 Jan, 2016 1 commit
-
-
Christoph Mallon authored
-
- 23 Jan, 2016 1 commit
-
-
Christoph Mallon authored
ia32: Simply make the fpcw caller (and callee) saved, so we do not need a special case when generating a call.
-
- 21 Jan, 2016 1 commit
-
-
Christoph Mallon authored
-
- 20 Jan, 2016 4 commits
-
-
Christoph Mallon authored
'mov $~0x80000000, %r; ror x, %r' is shorter than 'mov $0x80000000, %r; shr x, %r; not %r'.
-
Christoph Mallon authored
'Or' cannot have float mode.
-
Christoph Mallon authored
'mov $~1, %r; rol x, %r' is shorter than 'mov $1, %r; shl x, %r; not %r'.
-
Christoph Mallon authored
-
- 18 Jan, 2016 1 commit
-
-
Matthias Braun authored
At least __builtin_return_address(0) with -fomit-frame-pointer works again (the variant with frame pointer is still broken).
-
- 10 Jan, 2016 1 commit
-
-
Matthias Braun authored
-
- 21 Dec, 2015 6 commits
- 14 Dec, 2015 1 commit
-
-
Matthias Braun authored
This is done by introducing a new new_global_entity() function for constructing globals/adding a visibility argument to new_alias_entity().
-
- 03 Dec, 2015 1 commit
-
-
Christoph Mallon authored
-
- 05 Nov, 2015 2 commits
- 18 Oct, 2015 2 commits
-
-
Matthias Braun authored
We can get a proper mode for pointer-pointer from get_reference_offset_mode().
-
Matthias Braun authored
-
- 06 Oct, 2015 1 commit
-
-
Matthias Braun authored
This flag can be set on entities where the actual address isn't known/compared against other address. This also fixes a bug where we used the mach-o csrings section for global char arrays which need distinct addresses.
-
- 25 Sep, 2015 1 commit
-
-
Christoph Mallon authored
tarval_convert_to() does not return tv_unknown or null pointer.
-
- 24 Sep, 2015 1 commit
-
-
Matthias Braun authored
-
- 20 Sep, 2015 1 commit
-
-
Matthias Braun authored
-
- 15 Sep, 2015 2 commits
-
-
Andreas Fried authored
Just use the code present in the Cmp/Sub-optimization to see if it will trigger. This fixes opt/fehler304.c
-
Andreas Fried authored
-
- 09 Sep, 2015 1 commit
-
-
Christoph Mallon authored
This resolves problems with hidden dependencies during code selection, which cause dependency cycles and therefore fixes backend/scheduled.c. Also it grants the code selection slightly more freedom by not arbitrarily restricting the order by stack dependencies.
-
- 08 Sep, 2015 2 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
be: Pass the input requirements directly to the constructors of nodes, which have a variable number of arguments.
-