1. 11 Jul, 2016 2 commits
  2. 22 May, 2016 1 commit
  3. 15 Mar, 2016 1 commit
  4. 14 Mar, 2016 1 commit
  5. 15 Feb, 2016 1 commit
  6. 30 Jan, 2016 1 commit
  7. 30 Dec, 2015 1 commit
  8. 07 Dec, 2015 1 commit
  9. 14 Aug, 2015 1 commit
    • Andreas Fried's avatar
      Implement vararg handling in a more portable way (for now only for IA32). · f833aa25
      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.
      f833aa25
  10. 04 Aug, 2015 1 commit
  11. 28 Jul, 2015 1 commit
    • Christoph Mallon's avatar
      be: Add and use be_new_Proj(). · 9a6b8525
      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!
      9a6b8525
  12. 20 Jul, 2015 1 commit
  13. 01 Jul, 2015 1 commit
    • Matthias Braun's avatar
      Remove produces_sp register constraint · 58b0168a
      Matthias Braun authored
      We can easily identify the outputs producing a stack pointer by looking
      if the stack pointer register is assigned. Unfortunately this also
      needed a new mechanism to tell the verifier that some registers are not
      in SSA form (all the time) which needs a few extra lines in each
      backend.
      58b0168a
  14. 19 Jun, 2015 2 commits
  15. 24 May, 2015 1 commit
    • Matthias Braun's avatar
      be: Move main backend loop into backends. · 3e79d08e
      Matthias Braun authored
      Instead of having a generaic main loop in be_main with several callbacks
      into the targets, split the code in be_main up into a set of convenience
      functions and let the targets implement the main loop itself. This is
      nicer because:
      
      - The control flow into and out of the functions in the target becomes
        obvious as no external party is using callbacks anymore.
      - Targets can insert custom code at any place between the generic
        passes.
      - In the future we can parameterize the generic backend passes directly
        instead of stuffing info into generic isa_if structures.
      3e79d08e
  16. 18 Jan, 2015 4 commits
  17. 31 Dec, 2014 1 commit
  18. 29 Dec, 2014 2 commits
  19. 25 Dec, 2014 1 commit
  20. 25 Nov, 2014 2 commits
  21. 22 Nov, 2014 1 commit
  22. 13 Nov, 2014 2 commits
  23. 22 Oct, 2014 1 commit
  24. 18 Oct, 2014 2 commits
  25. 07 Oct, 2014 1 commit
    • Matthias Braun's avatar
      API change+fix for IncSP alignment · b719d82d
      Matthias Braun authored
      - alignment is set on each single IncSP now instead of a global arch_env
        setting
      - fixed ia32 not requesting any alignment anymore (even on darwin where
        we need it)
      - fixed amd64 creating IncSP nodes without flag_modifies_flags set
      b719d82d
  26. 02 Oct, 2014 1 commit
    • Matthias Braun's avatar
      cleanup/normalize be_add_missing_keeps usage · 6e9dd15b
      Matthias Braun authored
      We now add missing keeps exactly before register allocation where we
      actually need them (so that unused outputs which still need registers
      assigned are not missed by the register allocation).
      6e9dd15b
  27. 30 Sep, 2014 4 commits
  28. 19 Sep, 2014 1 commit