1. 22 May, 2019 1 commit
  2. 20 May, 2019 1 commit
  3. 17 May, 2019 2 commits
  4. 28 Mar, 2019 2 commits
  5. 27 Mar, 2019 1 commit
  6. 18 Jan, 2019 1 commit
  7. 10 Dec, 2018 1 commit
  8. 05 Dec, 2018 1 commit
  9. 05 Oct, 2018 1 commit
    • Peter Marshall's avatar
      [cleanup] Don't declare inline runtime functions by default · 49420760
      Peter Marshall authored
      For each intrinsic/runtime function we define in runtime.h, an inline
      version is automatically declared. We only ever use 24 of the inline
      functions. Even though we don't call the other ones, macro magic means
      they still take up space by existing in various arrays and tables like
      kIntrinsicFunctions. They also create code in switch statements.
      
      Some drive-by cleanups:
       - Remove the switch in NameForRuntimeId() and just use the table of
         runtime functions to lookup the name directly.
       - Remove tests for IsFunction, ClassOf and StringAdd intrinsics as
         they are the last users of the inline versions of these.
       - Remove the MaxSmi inline version as it is only used in tests.
      
      Saves 64 KiB binary size.
      
      Change-Id: I4c870ddacd2655ffcffa97d93200ed8f853752f5
      Reviewed-on: https://chromium-review.googlesource.com/c/1261939
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56412}
      49420760
  10. 20 Sep, 2018 1 commit
  11. 30 Jul, 2018 1 commit
    • jgruber's avatar
      [builtins,x64] More information about root-relative accesses · 1bef7d21
      jgruber authored
      When disassembling code (in particular embedded builtins), try to
      print better information about root-relative accesses. For example:
      
       REX.W movq rdx,[r13+0x548]
       REX.W movq rax,[r13+0x10a8]
      
      turns into
      
       REX.W movq rdx,[r13+0x548] (root (0x1ff420d0ccd9 <FixedArray[1672]>))
       REX.W movq rax,[r13+0x10a8] (external reference (check_object_type))
      
      This is a band-aid solution until we come up with something better. It
      does not understand multi-instruction sequences (such as loads from
      the builtins constants table), assumes every kRootRegister-relative
      access is actually root-relative (i.e. the register is not initialized
      to some other value), and is limited to a particular instruction
      pattern.
      
      Bug: v8:6666,v8:7969
      Change-Id: I35af92e8233c9bb0f2ad6ba0e86bd0ab69177205
      Reviewed-on: https://chromium-review.googlesource.com/1146806
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54777}
      1bef7d21
  12. 18 Jul, 2018 1 commit
  13. 04 Jul, 2018 1 commit
  14. 05 Jun, 2018 1 commit
    • jgruber's avatar
      [builtins] Move builtins table to the Heap class · e3e3480b
      jgruber authored
      The builtins table is an array of pointers to builtin code objects. It
      used to be located within the Builtins class, which itself was part of
      the Isolate.
      
      To enable faster isolate-independent access to builtin code objects,
      this CL moves the builtins table into the heap, at a constant known
      offset from the roots table. With this change, builtins can be accessed
      through the root pointer with a single instruction:
      
       mov reg, [kRootPointer, <offset to builtin>]
      
      TurboAssembler::LookupConstant is also extended in this CL to
      potentially shortcut the slow-ish constants table lookup: root
      constants are loaded through the root list, and builtin constants
      through the builtins table.
      
      Bug: v8:6666
      Change-Id: I8e83c2a8783c01ebece89483274f42ab4c8872f2
      Reviewed-on: https://chromium-review.googlesource.com/1075275
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53528}
      e3e3480b
  15. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  16. 26 Mar, 2018 1 commit
  17. 22 Mar, 2018 1 commit
    • jgruber's avatar
      Reland "[builtins] Load external references from the external-reference-table" · 0031724f
      jgruber authored
      This is a reland of 9afde91b
      
      Original change's description:
      > [builtins] Load external references from the external-reference-table
      >
      > Off-heap code cannot embed external references. With this CL, we load
      > from the external reference table (reached through the root pointer)
      > instead.
      >
      > In a follow-up, the table could be stored within the isolate itself,
      > removing one more level of indirection.
      >
      > Bug: v8:6666
      > Change-Id: I4c612ad3d4112ec03c3b389f5bfb9cdc3dc8a671
      > Reviewed-on: https://chromium-review.googlesource.com/970468
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52073}
      
      TBR=mstarzinger@chromium.org
      
      Bug: v8:6666, v8:7580
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I30639fe17ea345119d38a176a29d521c4b1904cb
      Reviewed-on: https://chromium-review.googlesource.com/975241
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52141}
      0031724f
  18. 21 Mar, 2018 5 commits
  19. 20 Mar, 2018 2 commits
  20. 19 Mar, 2018 1 commit
  21. 11 Sep, 2017 1 commit
  22. 07 Sep, 2017 1 commit
  23. 06 Sep, 2017 2 commits
  24. 28 Aug, 2017 1 commit
  25. 14 Aug, 2017 1 commit
  26. 02 Aug, 2017 1 commit
    • Yang Guo's avatar
      Support circular references between generated builtins. · 266be35b
      Yang Guo authored
      Until now, when generating a builtin, it can only embed builtins
      (as call targets) that have already been generated. This is either
      achieved by reordering the builtins list, or by loading the call
      target at runtime from the builtins list (see
      MacroAssembler::TailCallBuiltin).
      
      This patch works around this issue by filling the builtins list
      with dummy code objects, which are later replaced with the completed
      actual builtins. In release mode, this adds around 3ms to 140ms we
      previously needed to populate the builtins list. 
      
      Change-Id: I7d451b3c09a1db4b9e755548102a80c7f0dfada2
      Reviewed-on: https://chromium-review.googlesource.com/586531
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47062}
      266be35b
  27. 19 Jul, 2017 1 commit
  28. 25 Apr, 2017 1 commit
  29. 04 Apr, 2017 1 commit
  30. 07 Mar, 2017 1 commit
  31. 20 Feb, 2017 1 commit
  32. 15 Nov, 2016 1 commit