1. 17 Oct, 2018 2 commits
  2. 16 Oct, 2018 1 commit
  3. 15 Oct, 2018 1 commit
    • Predrag Rudic's avatar
      MIPS: Port [turbofan] Use relative calls/jumps on arm for builtins · a1974d49
      Predrag Rudic authored
      Port commit 23dbb81d.
      
      Original CL message:
      
      >This CL uses pc-relative jumps and calls (B/BL) for calls from embedded
      >builtins to embedded builtins. To make this work, the code range size is
      >limited to 32MB on arm during mksnapshot, which ensures that all builtin
      >to builtin offsets for jumps/calls fit into the B/BL immediate. At code
      >generation time, we put a placeholder into the instruction offset which
      >we resolve to the right code object when the code is copied to the heap.
      >We use a new relocation mode RELATIVE_CODE_TARGET for these relative jumps.
      >The relocation mode RELATIVE_CODE_TARGET should never appear after
      >generating the snapshot.
      >
      >We modify the target_address/set_target_address methods of RelocInfo
      >such that they return the absolute target addresses for pc-relative B/BL
      >instructions. This ensures that the GC can treat RELATIVE_CODE_TARGET in
      >the same way as code targets. This, however, only matters during
      >snapshot creation time, and production code never contains
      >RELATIVE_CODE_TARGET relocations.
      >
      >Bug: v8:6666
      >Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      >Change-Id: If7eab83ad588859ca87c654a5ddc3e37caea884c
      >Reviewed-on: https://chromium-review.googlesource.com/1117181
      >Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      >Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      >Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      >Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      >Cr-Commit-Position: refs/heads/master@{#54320}
      
      This CL is completed Miran's draft without MIPS64 port.
      (https://chromium-review.googlesource.com/c/v8/v8/+/1136640/3).
      
      Change-Id: I979378ac445548641755968d890f7f4a82dc7986
      Reviewed-on: https://chromium-review.googlesource.com/c/1221313
      Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56640}
      a1974d49
  4. 10 Oct, 2018 3 commits
  5. 04 Oct, 2018 1 commit
  6. 01 Oct, 2018 1 commit
  7. 28 Sep, 2018 1 commit
  8. 20 Sep, 2018 2 commits
  9. 15 Sep, 2018 1 commit
  10. 11 Sep, 2018 1 commit
  11. 06 Sep, 2018 1 commit
  12. 03 Sep, 2018 1 commit
    • jgruber's avatar
      Remove isolate parameter from RecordWrite builtin · 62766423
      jgruber authored
      The isolate can be efficiently loaded through other means: either as a
      root-relative load (if embedded builtins are enabled), or as an embedded
      external reference (i.e. the absolute pointer is included in the
      instruction stream) otherwise.
      
      The generated code should be at least as fast as previously. On x64
      (with embedded builtins):
      
      Before:
       // Register moves in prologue:
       0x7f47a6b4860a     a  488955e0       REX.W movq [rbp-0x20],rdx
       // And the load from a stack slot at each use-site.
       0x7f47a6b486f2    f2  488b7de0       REX.W movq rdi,[rbp-0x20]
      
      After:
       // Each use-site just loads a root-relative offset.
       0x7f1645fcc6ce    ee  498dbd38ffffff REX.W leaq rdi,[r13-0xc8]
      
      On ia32 (no embedded builtins), before:
       0x5c608930    10  8955f0         mov [ebp-0x10],edx
       0x5c6089fb    db  891424         mov [esp],edx
      
      After:
       0x41d0898d    8d  b80033b156     mov eax,0x56b13300
      
      Removal reduces register pressure, and frees up ebx as the root register
      on ia32.
      
      Note that the set of allocatable registers was only reduced on ia32 to
      exclude the root register.
      
      Bug: v8:6666
      Change-Id: I14e401e2823c82042c76acae10c3c935b9982993
      Reviewed-on: https://chromium-review.googlesource.com/1201586
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55587}
      62766423
  13. 31 Aug, 2018 1 commit
  14. 29 Aug, 2018 1 commit
  15. 28 Aug, 2018 1 commit
  16. 24 Aug, 2018 1 commit
  17. 23 Aug, 2018 3 commits
  18. 22 Aug, 2018 2 commits
  19. 17 Aug, 2018 1 commit
  20. 13 Aug, 2018 1 commit
  21. 08 Aug, 2018 5 commits
  22. 07 Aug, 2018 1 commit
  23. 03 Aug, 2018 1 commit
  24. 02 Aug, 2018 1 commit
  25. 26 Jul, 2018 3 commits
  26. 25 Jul, 2018 2 commits