1. 15 Oct, 2015 3 commits
  2. 12 Oct, 2015 1 commit
  3. 05 Oct, 2015 1 commit
    • mbrandy's avatar
      PPC: [Interpreter] Add CallRuntime support to the interpreter. · f3f940f4
      mbrandy authored
      Port 75f6ad74
      
      Original commit message:
          Adds support for calling runtime functions from the interpreter. Adds the
          CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
          and the arguments in sequential registers. Adds a InterpreterCEntry builtin
          to enable the interpreter to enter C++ code based on the functionId.
      
          Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
          and groups all the interpreter builtins together.
      
      R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1384483004
      
      Cr-Commit-Position: refs/heads/master@{#31098}
      f3f940f4
  4. 30 Sep, 2015 1 commit
    • mbrandy's avatar
      PPC: [turbofan] Call ArgumentsAccessStub to materialize arguments. · 8de7235c
      mbrandy authored
      Port 9b12ec9a
      
      Original commit message:
          This lowers JSCreateArgument nodes to call the ArgumentsAccessStub for
          help with materializing arguments objects when possible. Along the way
          this changes the calling convention of said stub to take parameters in
          registers instead of on the stack.
      
      R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1376303002
      
      Cr-Commit-Position: refs/heads/master@{#31033}
      8de7235c
  5. 18 Sep, 2015 1 commit
    • mbrandy's avatar
      PPC: [stubs] Refactor StringCompareStub and use it for HStringCompareAndBranch. · d4d2ea7b
      mbrandy authored
      Port 8016547c
      
      Original commit message:
          The StringCompareStub used to take its parameters on the (JavaScript)
          stack, which made it impossible to use in TurboFan. Actually
          StringCompareStub was currently completely unused. This changes the
          calling convention to something TurboFan compatible and introduces a
          CallInterfaceDescriptor for StringCompareStub. It also changes
          HStringCompareAndBranch to use the StringCompareStub instead of using
          the full blown CompareICStub for a stupid string comparison.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1358553002
      
      Cr-Commit-Position: refs/heads/master@{#30837}
      d4d2ea7b
  6. 14 Sep, 2015 1 commit
    • mbrandy's avatar
      PPC: [Interpreter] Add support for JS calls. · b6f67398
      mbrandy authored
      Port e7fb2339
      
      Original commit message:
          Adds support for JS calls to the interpreter. In order to support
          calls from the interpreter, the PushArgsAndCall builtin is added
          which pushes a sequence of arguments onto the stack and calls
          builtin::Call.
      
          Adds the Call bytecode.
      
      R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1345543002
      
      Cr-Commit-Position: refs/heads/master@{#30721}
      b6f67398
  7. 09 Sep, 2015 1 commit
    • mbrandy's avatar
      PPC: [runtime] Replace many buggy uses of %_CallFunction with %_Call. · 50c6b031
      mbrandy authored
      Port db2ba190
      
      Original commit message:
          The semantics of the %_CallFunction intrinsic seem to be very unclear,
          which resulted in a lot of bugs. Especially the combination with
          %IsSloppyModeFunction is always a bug, because the receiver would be
          wrapped in the wrong context. So the %IsSloppyModeFunction helper is
          gone now, and many of the buggy uses of %_CallFunction are also
          eliminated.
      
          If you ever need to call something with a different receiver, then
          %_Call is your friend now. It does what you want and implements the
          call sequence fully (and correct).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1310303008
      
      Cr-Commit-Position: refs/heads/master@{#30655}
      50c6b031
  8. 28 Aug, 2015 1 commit
  9. 27 Aug, 2015 1 commit
    • mbrandy's avatar
      PPC: Correctify instanceof and make it optimizable. · 448a3c0f
      mbrandy authored
      Port 5d875a57
      
      Original commit message:
          The previous hack with HInstanceOfKnownGlobal was not only slower,
          but also very brittle and required a lot of weird hacks to support it. And
          what's even more important it wasn't even correct (because a map check
          on the lhs is never enough for instanceof).
      
          The new implementation provides a sane runtime implementation
          for InstanceOf plus a fast case in the InstanceOfStub, combined with
          a proper specialization in the case of a known global in CrankShaft,
          which does only the prototype chain walk (coupled with a code
          dependency on the known global).
      
          As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
          implementation.
      
      R=bmeurer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
      BUG=v8:4376
      LOG=n
      
      Review URL: https://codereview.chromium.org/1314263002
      
      Cr-Commit-Position: refs/heads/master@{#30419}
      448a3c0f
  10. 26 Aug, 2015 1 commit
  11. 17 Aug, 2015 1 commit
  12. 31 Jul, 2015 1 commit
    • bmeurer's avatar
      [stubs] Unify (and optimize) implementation of ToObject. · 4fc6f547
      bmeurer authored
      This is the initial (big) step towards a more uniform implementation of
      the ToObject abstract operation (ES6 7.1.13), where we have a fallback
      implementation in JSReceiver::ToObject() and a fast (hydrogen) CodeStub
      to deal with the fast case (we should be able to do more cleanup on this
      in a followup CL).  For natives we expose the abstract operation via a
      %_ToObject intrinsic, also exposed via a macro TO_OBJECT, that unifies
      the previous confusion with TO_OBJECT_INLINE, ToObject, TO_OBJECT,
      $toObject and %$toObject.  Now the whole implementation of the abstract
      operation is context independent, meaning we don't need any magic in the
      builtins object nor the native context.
      
      R=mvstanton@chromium.org,yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1266013006
      
      Cr-Commit-Position: refs/heads/master@{#29953}
      4fc6f547
  13. 30 Jul, 2015 1 commit
  14. 27 Jul, 2015 1 commit
  15. 23 Jul, 2015 2 commits
  16. 16 Jul, 2015 1 commit
    • mbrandy's avatar
      PPC: Switch CallConstructStub to take new.target in register. · a02f7e6f
      mbrandy authored
      Port 1d9d8957
      
      Original commit message:
          This changes the calling convention of the CallConstructStub to take
          the original constructor (i.e. new.target in JS-speak) in a register
          instead of magically via the operand stack. For optimizing compilers
          the operand stack doesn't exist, hence cannot be peeked into.
      
      R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1230103004
      
      Cr-Commit-Position: refs/heads/master@{#29702}
      a02f7e6f
  17. 13 Jul, 2015 2 commits
  18. 08 Jul, 2015 1 commit
    • mbrandy's avatar
      PPC: Add unoptimized/optimized variants of MathFloor TF code stub · 0640e295
      mbrandy authored
      Port 8f13b655
      
      Original commit message:
          - Add a TurboFanIC class, derived from TurboFanCodeStub, that
            automatically distinguishes between versions of the IC called from
            optimized and unoptimized code.
          - Add appropriate InterfaceDescriptors for both the versions of the
            stub called from unoptimized and optimized code
          - Change the MathFloor TF stub generator to output either the
            for-optimized or for-unoptimized version based on the minor_key
            parameter.
      
      R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1207253003
      
      Cr-Commit-Position: refs/heads/master@{#29542}
      0640e295
  19. 01 Jul, 2015 1 commit
    • mbrandy's avatar
      PPC: Make context register implicit for CallInterfaceDescriptors · f4eb08f4
      mbrandy authored
      Port 7015fd20
      
      Original commit message:
          Up until now the context register was listed explicitly in each stub's
          CallInterfaceDescriptor. This was problematic, because it was listed
          first in the list of register parameters--which is fine for Crankshaft,
          which is more or less built to handle the context as the first
          parameter-- but not ideal for TurboFan, which adds the context at
          the end of all function parameters. Now the context register is no
          longer in the register list and can be handled appropriately by both
          compilers. Specifically, this allows the FunctionType specified for
          each CallInterfaceDescriptor to exactly match the parameter register
          list.
      
      R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1218463004
      
      Cr-Commit-Position: refs/heads/master@{#29421}
      f4eb08f4
  20. 24 Jun, 2015 1 commit
    • mbrandy's avatar
      PPC: Use big-boy Types to annotate interface descriptor parameters · 5989a374
      mbrandy authored
      Port c019d7f4
      
      Original commit message:
      - Thread Type::FunctionType through stubs and the TF pipeline.
      - Augment Typer to decorate parameter nodes with types from
        a Type::FunctionType associated with interface descriptors.
      - Factor interface descriptors into platform-specific and
        platform-independent components so that all descriptors share
        a common Type::FunctionType for all platforms.
      
      R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1206893002
      
      Cr-Commit-Position: refs/heads/master@{#29257}
      5989a374
  21. 01 Jun, 2015 1 commit
  22. 26 May, 2015 1 commit
  23. 20 May, 2015 1 commit
  24. 12 May, 2015 1 commit
  25. 11 May, 2015 1 commit
    • mbrandy's avatar
      PPC: Add a MathFloor stub generated with TurboFan · 58c40db2
      mbrandy authored
      Port abc35080
      
      Original commit message:
      This stub will be used as the basis of a Math.floor-specific CallIC to
      detect and track calls to floor that return -0.
      
      Along the way:
      - Create a TurboFanCodeStub super class from which the StringLength and
      MathRound TF stubs derive.
      - Fix the ugly hack that passes the first stub parameter as the "this"
      pointer in the the TF-compiled JS function.
      - Fix bugs in the ia32/x64 disassembler.
      
      R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1137033002
      
      Cr-Commit-Position: refs/heads/master@{#28341}
      58c40db2
  26. 06 May, 2015 1 commit
  27. 30 Apr, 2015 1 commit
  28. 19 Mar, 2015 1 commit
  29. 05 Feb, 2015 1 commit
    • michael_dawson's avatar
      Contribution of PowerPC port (continuation of 422063005) - PPC dir update · 308d913a
      michael_dawson authored
      Contribution of PowerPC port (continuation of 422063005, 817143002 and 866843003)
      This patch brings the ppc directories up to date with our repo. We have
      removed 5 individual optimizations which require changes in both the ppc and common
      directories so they can be more easily reviewed on their own in subsequent patches.
      
      Subsequent patches will cover:
      - individual optimizations for PPC (5)
      - remaining AIX changes not resolved by 4.8 compiler (4.8 is only recently available
      for AIX)
      - incremental updates required to ppc directories due to platform specific changes
      made in google repos while we complete the above steps.
      
      With the update there are still some timeouts seen when run in simulated mode which
      may be a result of the missing optimizations.  Once we have the optimizations in
      we will review the simulation results and address/exclude tests as necessary so that
      the simulated runs are clean.
      
      	new file:   src/compiler/ppc/code-generator-ppc.cc
      	new file:   src/compiler/ppc/instruction-codes-ppc.h
      	new file:   src/compiler/ppc/instruction-selector-ppc.cc
      	new file:   src/compiler/ppc/linkage-ppc.cc
      	modified:   src/ic/ppc/handler-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-compiler-ppc.cc
      	modified:   src/ic/ppc/ic-ppc.cc
      	modified:   src/ic/ppc/stub-cache-ppc.cc
      	modified:   src/ppc/assembler-ppc.cc
      	modified:   src/ppc/assembler-ppc.h
      	modified:   src/ppc/builtins-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.cc
      	modified:   src/ppc/code-stubs-ppc.h
      	modified:   src/ppc/codegen-ppc.cc
      	modified:   src/ppc/constants-ppc.h
      	modified:   src/ppc/deoptimizer-ppc.cc
      	modified:   src/ppc/disasm-ppc.cc
      	modified:   src/ppc/full-codegen-ppc.cc
      	modified:   src/ppc/interface-descriptors-ppc.cc
      	modified:   src/ppc/lithium-codegen-ppc.cc
      	modified:   src/ppc/lithium-codegen-ppc.h
      	modified:   src/ppc/lithium-ppc.cc
      	modified:   src/ppc/lithium-ppc.h
      	modified:   src/ppc/macro-assembler-ppc.cc
      	modified:   src/ppc/macro-assembler-ppc.h
      	modified:   src/ppc/regexp-macro-assembler-ppc.cc
      	modified:   src/ppc/regexp-macro-assembler-ppc.h
      	modified:   src/ppc/simulator-ppc.cc
      	modified:   src/ppc/simulator-ppc.h
      	new file:   test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc
      
      R=danno@chromium.org, svenpanne@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/901083004
      
      Cr-Commit-Position: refs/heads/master@{#26471}
      308d913a
  30. 11 Nov, 2014 1 commit
  31. 04 Nov, 2014 1 commit
  32. 30 Sep, 2014 1 commit
  33. 29 Sep, 2014 1 commit
  34. 11 Sep, 2014 1 commit
    • balazs.kilvady@imgtec.com's avatar
      MIPS: Added CallInterfaceDescriptors to all code stubs. · 4a5001dd
      balazs.kilvady@imgtec.com authored
      Port r23854 (3870059)
      
      Original commit message:
      Added CallInterfaceDescriptors to all code stubs. A handful
      of code stubs are too complex to be described this way, and
      they are encoded with the macro
      DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR().
      
      Along the way:
      * allowed inheritance of CallInterfaceDescriptors.
      * Defined static Register methods for some of the new
        CallInterfaceDescriptors. We could go a lot further here, but
        it doesn't have to be done immediately.
      * Added Representation arrays to some CallInterfaceDescriptors,
        especially where future hydrogen versions of the stubs could
        benefit from this knowledge.
      
      BUG=
      R=dusan.milosavljevic@imgtec.com
      
      Review URL: https://codereview.chromium.org/562153002
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      4a5001dd
  35. 04 Sep, 2014 1 commit
  36. 03 Sep, 2014 1 commit