1. 20 Jun, 2014 1 commit
  2. 03 Jun, 2014 1 commit
  3. 23 May, 2014 1 commit
  4. 16 May, 2014 1 commit
  5. 12 May, 2014 1 commit
    • Jacob.Bramley@arm.com's avatar
      ARM64: Fix and improve MacroAssembler::Printf. · e876dab9
      Jacob.Bramley@arm.com authored
        - W-sized values passed to Printf are now handled correctly by the
          simulator. In AAPCS64, int32_t and int64_t are passed in the same
          way, so this didn't affect non-simulator builds.
        - Since Printf now records the type and size of each argument, it is
          possible to mix argument types.
        - It is now possible to print the stack pointer. There is only one
          remaining restriction: The `csp` register cannot be printed unless
          it is the current stack pointer. This is because it is modified by
          BumpSystemStackPointer when the caller-saved registers are
          preserved.
      
      BUG=
      R=rmcilroy@chromium.org
      
      Review URL: https://codereview.chromium.org/268353005
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      e876dab9
  6. 09 May, 2014 1 commit
  7. 06 May, 2014 1 commit
  8. 29 Apr, 2014 1 commit
  9. 16 Apr, 2014 1 commit
  10. 07 Apr, 2014 1 commit
  11. 03 Apr, 2014 1 commit
  12. 24 Mar, 2014 2 commits
  13. 21 Mar, 2014 1 commit
  14. 14 Mar, 2014 1 commit
    • jacob.bramley@arm.com's avatar
      A64: Fix a few simulation inaccuracies. · cf43195d
      jacob.bramley@arm.com authored
        - Return the correct NaN when an invalid operation generates a NaN.
        - When one or more operands are NaN, handle them as the processor
          would, prioritising signalling NaNs and making them quiet.
        - Fix fmadd and related instructions:
           - Fnmadd is fma(-n, m, -a), not -fma(n, m, a).
           - Some common libc implementations incorrectly implement fma for
             zero results, so work around these cases.
        - Replace some unreliable tests.
      
      This patch also adds support for Default-NaN mode, since once all the
      other work was done, it only required a couple of lines of code.
      Default-NaN mode was used for an optimisation in ARM, and it should now
      be possible to apply the same optimisation to A64.
      
      BUG=
      R=jochen@chromium.org
      
      Review URL: https://codereview.chromium.org/199083005
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      cf43195d
  15. 13 Mar, 2014 1 commit
  16. 12 Mar, 2014 2 commits
  17. 10 Mar, 2014 1 commit
  18. 28 Feb, 2014 1 commit
  19. 26 Feb, 2014 1 commit
  20. 19 Feb, 2014 2 commits
  21. 18 Feb, 2014 1 commit
    • alexandre.rames@arm.com's avatar
      A64: Let the MacroAssembler resolve branches to distant targets. · 62116e2c
      alexandre.rames@arm.com authored
      Code generation would fail when assembling a branch to a label that is bound
      outside the immediate range of the instruction. A64 is sensitive to this, as the
      various branching instructions have different ranges, going down to +-32KB for
      TBZ/TBNZ.  The MacroAssembler is augmented to handle branches to targets that
      may exceed the immediate range of instructions.
      
      When branching backward to a label exceeding the instruction range, the
      MacroAssembler can simply tweak the generated code to use an unconditional
      branch with a longer range. For example instead of
          B(cond, &label);
      the MacroAssembler can generate:
          b(InvertCondition(cond), &done);
          b(&label);
          bind(&done);
      
      Since the target is not known when the branch is emitted, forward branches uses
      a different mechanism. The MacroAssembler keeps track of forward branches to
      unbound labels. When the code generation approaches the end of the range of a
      branch, a veneer is generated for the branch.
      
      BUG=v8:3148
      LOG=Y
      R=ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/169893002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      62116e2c
  22. 17 Feb, 2014 4 commits
  23. 12 Feb, 2014 1 commit