1. 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
  2. 09 Aug, 2015 1 commit
    • Christoph Mallon's avatar
      be: Reintroduce be_Start. · 36de1849
      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.
      36de1849
  3. 07 Aug, 2015 1 commit
  4. 05 Aug, 2015 1 commit
  5. 04 Aug, 2015 1 commit
  6. 29 Jul, 2015 1 commit
    • Matthias Braun's avatar
      ia32: Introduce X86_IMM_PCREL · 672a3898
      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().
      672a3898
  7. 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
  8. 27 Jul, 2015 1 commit
  9. 23 Jul, 2015 1 commit
  10. 22 Jul, 2015 5 commits
  11. 20 Jul, 2015 2 commits
    • Matthias Braun's avatar
      ia32: Introduce pic_styles enum+switch · f856bce3
      Matthias Braun authored
      Only IA32_PIC_NONE and IA32_PIC_MACHO so far, but more will come.
      f856bce3
    • Matthias Braun's avatar
      ia32: Introduce FRAMEOFFSET immediate type · 5796136e
      Matthias Braun authored
      This way we don't need a separate frame_entity field in the attribute
      struct anymore. We can also use the immediate type to determine whether
      we need to assign a fresh stackentity to a node.
      This commit does not change the frame_use field, which is now a
      duplicate way to indicate whether we need to assign a stackentity. This
      currently requires a lot of asserts to ensure the two stay in sync. In
      the future I'd like to use frame_use only for the special case when a
      32bit or 64bit entity needs to be forced.
      5796136e
  12. 19 Jul, 2015 8 commits
  13. 17 Jul, 2015 1 commit
  14. 15 Jul, 2015 2 commits
  15. 09 Jul, 2015 1 commit
  16. 08 Jul, 2015 2 commits
  17. 01 Jul, 2015 3 commits
  18. 26 Jun, 2015 2 commits
  19. 05 Jun, 2015 1 commit
  20. 07 May, 2015 1 commit
  21. 27 Apr, 2015 1 commit
  22. 19 Apr, 2015 2 commits