1. 20 Apr, 2018 1 commit
  2. 21 Feb, 2018 1 commit
    • jgruber's avatar
      [builtins] Add builtins constants list to roots · ad74be52
      jgruber authored
      This is a step towards off-heap (and eventually isolate-independent)
      builtins.
      
      Off-heap code cannot use the standard CallStub/CallRuntime mechanisms,
      since they directly embed the callee code object pointer within the
      caller.  There are two main issues with that: 1. the callee may be
      moved by GC, and 2. the pc-relative addressing we currently use breaks
      (i.e. ends up pointing to a random spot on the heap) when moving the
      caller off-heap.
      
      This CL addresses that by introducing a constants list stored on the
      roots array.  Instead of embedding code targets, we now have the option
      of loading them from constants list. The code sequence is:
      
      REX.W movq rax,[r13+0x4a0]  // Load the constants cache.
      REX.W movq rdx,[rax+0xf]    // From there, load the code target.
      ...
      REX.W addq rdx,0x5f         // Add instruction_start.
      call rdx
      
      There's no visible performance impact on the web tooling benchmark.
      
      This list will later be extended to also contain other constants such
      as Strings.
      
      Bug: v8:6666
      Change-Id: Ifcf67d1f682804ba0b6d3d0383216e16575b6bf5
      Reviewed-on: https://chromium-review.googlesource.com/923729
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51434}
      ad74be52
  3. 05 Apr, 2017 2 commits
  4. 06 Mar, 2017 1 commit
  5. 22 Feb, 2017 3 commits
  6. 16 Feb, 2016 1 commit
  7. 02 Feb, 2016 1 commit
    • oth's avatar
      [interpreter] Move temporary register allocator into own file. · ef93854a
      oth authored
      Moves the temporary register allocator out of the bytecode array
      builder into TemporaryRegisterAllocator class and adds unittests.
      Particular must be taken around the translation window boundary
      motivating the addition of tests.
      
      Also adds a Clear() method to IdentityMap() which is called by
      the destructor. This allows classes to hold an IdentityMap if
      they are zone allocated. Classes must call Clear() before the zone
      is re-cycled or face v8 heap corruption.
      
      BUG=v8:4280,v8:4675
      LOG=N
      
      Review URL: https://codereview.chromium.org/1651133002
      
      Cr-Commit-Position: refs/heads/master@{#33686}
      ef93854a
  8. 23 Oct, 2015 1 commit
    • yangguo's avatar
      Simplify IdentityMap. · 05a60095
      yangguo authored
      This removes the requirement for handles as arguments, but also removes
      concurrency support, which is not being used at the moment.
      
      Supporting concurrency could be done by introducing a sibling class to
      IdentityMap that includes RelocationLock on method calls.
      
      R=bmeurer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1419563004
      
      Cr-Commit-Position: refs/heads/master@{#31510}
      05a60095
  9. 30 Sep, 2015 1 commit
  10. 28 Aug, 2015 1 commit
  11. 17 Aug, 2015 1 commit
  12. 06 May, 2015 1 commit