1. 23 Apr, 2013 1 commit
  2. 04 Apr, 2013 1 commit
    • yb9976's avatar
      Added a new builtin for saturated increment. · b7cb5592
      yb9976 authored
      The builtin can be used to generate fast code for unsigned division by constant.
      
      Code generation is supported for the IA32 and the SPARC backend.
      Since our ARM backend currently has no Add with Carry instruction,
      the builtin is currently not supported on Arm.
      The same holds for the AMD64 backend, which does not support a division yet.
      b7cb5592
  3. 11 Mar, 2013 1 commit
  4. 23 Jan, 2013 1 commit
  5. 05 Jan, 2013 1 commit
  6. 21 Dec, 2012 1 commit
  7. 12 Dec, 2012 1 commit
  8. 04 Dec, 2012 1 commit
  9. 03 Dec, 2012 1 commit
  10. 27 Nov, 2012 1 commit
  11. 25 Nov, 2012 1 commit
  12. 24 Nov, 2012 1 commit
  13. 29 Oct, 2012 1 commit
  14. 02 Aug, 2012 1 commit
  15. 19 Jul, 2012 1 commit
  16. 13 Jul, 2012 1 commit
  17. 26 Apr, 2012 1 commit
    • Matthias Braun's avatar
      dwarf: initial support for callframe and params · cc9d3be2
      Matthias Braun authored
      - We now always output dwarf3 so we can use DW_OP_call_frame_cfa and avoid
        construction location lists, but just reuse the callframe info lists.
      - Backends have to emit debug info as callframe calculation changes:
        The ia32 backend has a preliminary implementation which assumes esp
        offset of frame_type_size at the beginning of a block (currently
        always true), the no-omit-fp mode assumes ebp relative addressing
        (which is correct except for the prolog/epilogue insns)
      cc9d3be2
  18. 06 Dec, 2011 1 commit
  19. 10 Nov, 2011 1 commit
  20. 02 Nov, 2011 2 commits
    • Matthias Braun's avatar
      introduce Switch node · 1c89dc2a
      Matthias Braun authored
      This is the new way of handling switch-jumps. The node contains a table
      which maps (ranges of) input values to proj numbers. Compared to a
      Cond-node this results in a clean consecutive sequence of Proj numbers
      (no searching for a free number for the default_pn anymore) and allows
      factoring multiple cases jumping to the same block in a single Proj
      (though we still need the optimisation in cfopt for that).
      1c89dc2a
    • Matthias Braun's avatar
      generate irdump proj-number lookup tables · 1e799c3b
      Matthias Braun authored
      1e799c3b
  21. 27 Oct, 2011 1 commit
    • Matthias Braun's avatar
      ir_mode: simplify interface, improve float-mode handling · e3b765fc
      Matthias Braun authored
      The main change here is splitting new_ir_mode into new_int_mode,
      new_reference_mode and new_float_mode. You can now specify
      mantissa+exponent size in new_float_mode. This also changes:
      
      - x86 80bit-FP mode is NOT a ieee754 don't put "ieee754" into functions
        names that can also handle x86 80bit fps
      - Move ieee_descriptor_t from tarval module into ir_mode struct
        (and rename to float_descriptor_t)
      - Introduce mode_Q which represents binary128 from ieee754
      - You can ask float modes for mantissa/exponent sizes now
      - Fix endianess when emitting big float values in begnuas
      - A bunch of long double fixes in ia32: the mode there has 10bytes
        (80bit) but the variables typically are 12 or 16 byte big
      - This fixes some problems of sparc binary128 handling
      e3b765fc
  22. 27 Sep, 2011 1 commit
  23. 17 Aug, 2011 1 commit
  24. 15 Aug, 2011 1 commit
    • Matthias Braun's avatar
      big refactoring of arch_XXX functions · 41dc42af
      Matthias Braun authored
      This tries to get the names in a consistent format. We basically have 2
      views on register allocation/constraints now:
      
      1) Register Requirements and Assigments are per-instruction. Each
         instruction has requirements on its inputs and outputs, register get
         assigned for outputs of an instruction (assignment is an attribute of
         an instruction, not of the Proj-nodes).
         The internal datastructures model this form!
      
         The functions here have the form:
           arch_get_irn_register_req_in(node, input_nr)
           arch_get_irn_register_in(node, input_nr)
           arch_get_irn_register_req_out(node, output_nr)
           arch_set_irn_register_out(node, output_nr, register)
      
      2) Register Requirements and Assignments are on firm-values. This view
         allows to query/assign requirements and registers at the Proj nodes
         instead of the repsective predecessors.
         This is a convenience interface modeled on top of the other!
      
         The functions have the form:
           arch_get_irn_register_req(node)
           arch_get_irn_register(node)
           arch_set_irn_register(node, register)
      41dc42af
  25. 10 Aug, 2011 1 commit
  26. 08 Aug, 2011 1 commit
    • Matthias Braun's avatar
      Directly create Start/Return node in sparc backend · f62bf2f3
      Matthias Braun authored
      Since we have no complicated barrier/prolog stuff in the transform phase
      anymore we can move away from beabihelper now and create the nodes
      directly which will be necessary when modeling special constraints like
      wide aligned registers.
      f62bf2f3
  27. 05 Aug, 2011 1 commit
    • Matthias Braun's avatar
      rework taking of parameter addresses · 00aca724
      Matthias Braun authored
      Use a special kind of entity on the frame type instead of a value_type
      struct inside a method type. This makes replacement of function types
      slightly easier (it's still a complex operation though) and handling in
      the backend a bit more consistent since it's more or less a normal stack
      access (with special offsets).
      00aca724
  28. 21 Jun, 2011 1 commit
  29. 01 Jun, 2011 1 commit
  30. 27 May, 2011 1 commit
  31. 23 May, 2011 1 commit
  32. 06 May, 2011 1 commit
  33. 13 Apr, 2011 1 commit
  34. 08 Apr, 2011 2 commits
  35. 30 Mar, 2011 3 commits
  36. 07 Mar, 2011 1 commit