1. 15 Nov, 2017 1 commit
  2. 07 Nov, 2017 1 commit
  3. 06 Nov, 2017 1 commit
  4. 13 Oct, 2017 2 commits
  5. 13 Sep, 2017 1 commit
  6. 06 Sep, 2017 1 commit
    • Clemens Hammacher's avatar
      [assembler] Make Register et al. real classes · 9e995e12
      Clemens Hammacher authored
      Up to now, each architecture defined all Register types as structs,
      with lots of redundancy. An often found comment noted that they cannot
      be classes due to initialization order problems. As these problems are
      gone with C++11 constexpr constants, I now tried making Registers
      classes again.
      All register types now inherit from RegisterBase, which provides a
      default set of methods and named constructors (like ::from_code,
      code(), bit(), is_valid(), ...).
      This design allows to guarantee an interesting property: Each register
      is either valid, or it's the no_reg register. There are no other
      invalid registers. This is guaranteed statically by the constexpr
      constructor, and dynamically by ::from_code.
      
      I decided to disallow the default constructor completely, so instead of
      "Register reg;" you now need "Register reg = no_reg;". This makes
      explicit how the Register is initialized.
      
      I did this change to the x64, ia32, arm, arm64, mips and mips64 ports.
      Overall, code got much more compact and more safe. In theory, it should
      also increase performance (since the is_valid() check is simpler), but
      this is probably not measurable.
      
      R=mstarzinger@chromium.org
      
      Change-Id: I5ccfa4050daf4e146a557970e9d37fd3d2788d4a
      Reviewed-on: https://chromium-review.googlesource.com/650927Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47847}
      9e995e12
  7. 14 Aug, 2017 1 commit
  8. 03 Aug, 2017 1 commit
  9. 28 Feb, 2017 1 commit
  10. 12 Jan, 2017 1 commit
  11. 27 Dec, 2016 1 commit
  12. 25 Nov, 2015 1 commit
  13. 30 Sep, 2015 1 commit
  14. 11 Sep, 2015 1 commit
  15. 12 Aug, 2015 1 commit
  16. 20 Apr, 2015 1 commit
  17. 12 Dec, 2014 1 commit
  18. 10 Nov, 2014 1 commit
  19. 11 Sep, 2014 1 commit
  20. 10 Sep, 2014 1 commit
  21. 05 Sep, 2014 2 commits
  22. 04 Sep, 2014 1 commit
  23. 03 Sep, 2014 3 commits
  24. 29 Aug, 2014 1 commit
  25. 25 Aug, 2014 1 commit
  26. 22 Aug, 2014 1 commit
  27. 04 Aug, 2014 1 commit
  28. 17 Jul, 2014 1 commit
  29. 03 Jul, 2014 1 commit
  30. 30 Jun, 2014 1 commit
  31. 25 Jun, 2014 1 commit
  32. 11 Jun, 2014 1 commit
  33. 03 Jun, 2014 1 commit
  34. 29 Apr, 2014 1 commit
  35. 24 Apr, 2014 1 commit
    • svenpanne@chromium.org's avatar
      CodeStubs contain their corresponding Isolate* now. (part 1) · dd30db90
      svenpanne@chromium.org authored
      This is a purely mechanical change, adding an Isolate* to the CodeStub
      constructor and a corresponding field plus a getter. A few methods in
      CodeStub and its subclasses can be simplified now, but this is done in
      a separate CL.
      
      The underlying reason apart from simplicity is that deep down in the
      call chain we need to detect if the serializer is active or not. This
      information will be part of the Isolate, not a global variable with
      funky synchronization primitives around it (which is fundamentally
      wrong and the underlying cause for race conditions and a catch-22
      during initialization).
      
      BUG=359977
      LOG=y
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/246643014
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      dd30db90
  36. 03 Mar, 2014 1 commit