1. 20 Nov, 2015 1 commit
  2. 17 Nov, 2015 1 commit
    • oth's avatar
      [Interpreter] Add support for Call bytecode to bytecode graph builder. · e8ae8b34
      oth authored
      Adds support for visiting the Call bytecode to the bytecode graph builder.
      This change also adds the call type feedback slot to the Call bytecode.
      This is not currently used by the interpreter, but is used by the
      graph builder.
      
      Also adds a CallWide varient of the Call bytecode, and adds the kCount16
      operand type.
      
      Landed on behalf of rmcilroy.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1456453002
      
      Cr-Commit-Position: refs/heads/master@{#32033}
      e8ae8b34
  3. 04 Nov, 2015 1 commit
  4. 03 Nov, 2015 1 commit
  5. 30 Oct, 2015 1 commit
  6. 29 Oct, 2015 1 commit
    • oth's avatar
      [Interpreter] Add support for for..in. · dcf757a1
      oth authored
      For..in introduces 3 new bytecodes ForInPrepare, ForInNext, and
      ForInDone to start a for..in loop, get the next element, and check if
      the loop is done.
      
      For..in builds upon new LoopBuilder constructs for conditionally
      breaking and continuing during iteration: BreakIf{Null|Undefined}
      and ContinueIf{Null|Undefined}. New conditional jump bytecodes
      support this succinctly: JumpIfNull and JumpIfUndefined.
      
      Add missing check to BytecodeLabel that could allow multiple
      forward referencess to the same label which is not supported.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1422033002
      
      Cr-Commit-Position: refs/heads/master@{#31651}
      dcf757a1
  7. 28 Oct, 2015 1 commit
  8. 26 Oct, 2015 1 commit
    • rmcilroy's avatar
      [Interpreter] Add support for loading from / storing to outer context variables. · c0c214da
      rmcilroy authored
      Adds support for loading from and storing to outer context
      variables. Also adds support for declaring functions on contexts and
      locals. Finally, fixes a couple of issues with StaContextSlot where
      we weren't emitting the write barrier and therefore would crash in the
      GC.
      
      Also added code so that --print-bytecode will output the
      function name before the bytecodes, and replaces MachineType with StoreRepresentation in RawMachineAssembler::Store and updates tests.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1425633002
      
      Cr-Commit-Position: refs/heads/master@{#31584}
      c0c214da
  9. 22 Oct, 2015 4 commits
    • rmcilroy's avatar
      [Interpreter] Fill out function prologue support. · 6256e1dc
      rmcilroy authored
      Fills out some more of the function prologue support in the
      interpreter. Deals with creation of arguments objects and throwing
      IllegalRedeclarations if necessary. Also adds (untested) support for
      this.function and new.target variable assignment.
      
      Also fixes a bug in Frames::is_java_script() to deal with
      interpreter frames correctly.
      
      Cleans up comments in builtins InterpreterEntryTrampoline about
      missing prologue support.
      
      Adds the following bytecodes:
        - CreateArgumentsSloppy
        - CreateArgumentsStrict
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1412953007
      
      Cr-Commit-Position: refs/heads/master@{#31486}
      6256e1dc
    • rmcilroy's avatar
      [Interpreter] Add support for for count operations. · 00308056
      rmcilroy authored
      Adds support for count operations to the interpreter. Deals with count
      operations on locals, globals, context allocated variables and named and
      keyed properties.
      
      Adds the following bytecodes:
        ToNumber
        Inc
        Dec
      
      BUG=v8:4280
      LOG=N
      TBR=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1416623003
      
      Cr-Commit-Position: refs/heads/master@{#31484}
      00308056
    • rmcilroy's avatar
      [Interpreter] Unify global and unallocated variable access. · 9a594e78
      rmcilroy authored
      Unifies the global and unallocated variable type accesses given that
      --global_var_shortcuts is going away. Lda/StaGlobal is modified to use
      Load/StoreICs on the global object. The named LoadIC and StoreIC bytecodes
      are also modified so that they take a constant pool entry index for the
      name rather than a register, avoiding unecessary LdaConstant bytecodes to
      be emitted.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1419003002
      
      Cr-Commit-Position: refs/heads/master@{#31482}
      9a594e78
    • ishell's avatar
      Remove support for "loads and stores to global vars through property cell... · 14b31970
      ishell authored
      Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers.
      
      The plan is to implement the same idea using vector IC machinery.
      Stubs implementations and scopes modifications are left untouched for now.
      
      Review URL: https://codereview.chromium.org/1419823003
      
      Cr-Commit-Position: refs/heads/master@{#31458}
      14b31970
  10. 19 Oct, 2015 1 commit
  11. 16 Oct, 2015 3 commits
  12. 15 Oct, 2015 4 commits
  13. 14 Oct, 2015 2 commits
  14. 13 Oct, 2015 3 commits
  15. 12 Oct, 2015 2 commits
  16. 07 Oct, 2015 3 commits
  17. 06 Oct, 2015 1 commit
  18. 02 Oct, 2015 5 commits
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · 75f6ad74
      rmcilroy authored
      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.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31089}
      75f6ad74
    • rmcilroy's avatar
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset... · b4a2f656
      rmcilroy authored
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #8 id:220001 of https://codereview.chromium.org/1362383002/ )
      
      Reason for revert:
      Now breaking arm32 debug bot (worked locally even with --debug-code, so I'll need to figure out what's different on the bot)
      
      Original issue's description:
      > [Interpreter] Add CallRuntime support to the interpreter.
      >
      > 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.
      >
      > BUG=v8:4280
      > LOG=N
      >
      
      TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review URL: https://codereview.chromium.org/1379933003
      
      Cr-Commit-Position: refs/heads/master@{#31078}
      b4a2f656
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · c991d8f3
      rmcilroy authored
      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.
      
      BUG=v8:4280
      LOG=N
      
      Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc
      Cr-Commit-Position: refs/heads/master@{#31064}
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31076}
      c991d8f3
    • rmcilroy's avatar
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset... · 90f69d16
      rmcilroy authored
      Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #6 id:180001 of https://codereview.chromium.org/1362383002/ )
      
      Reason for revert:
      Broke Arm64 bot (CEntry stub is trying to pop arguments off stack when argv_in_reg, so I need to fix this).
      
      Original issue's description:
      > [Interpreter] Add CallRuntime support to the interpreter.
      >
      > 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.
      >
      > BUG=v8:4280
      > LOG=N
      >
      > Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc
      > Cr-Commit-Position: refs/heads/master@{#31064}
      
      TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review URL: https://codereview.chromium.org/1387543002
      
      Cr-Commit-Position: refs/heads/master@{#31066}
      90f69d16
    • rmcilroy's avatar
      [Interpreter] Add CallRuntime support to the interpreter. · 40e8424b
      rmcilroy authored
      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.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1362383002
      
      Cr-Commit-Position: refs/heads/master@{#31064}
      40e8424b
  19. 01 Oct, 2015 1 commit
    • rmcilroy's avatar
      [Interpreter] Add support for short (16 bit) operands. · 03369ed2
      rmcilroy authored
      Adds support for short operands, starting with kIdx16. Introduces
      BytecodeTraits to enable compile time determination of various traits for a
      bytecode, such as size, operands, etc. Reworks BytecodeIterator,
      BytecodeArrayBuilder and Bytecodes::Decode to support 16 bit operands. Adds
      support to Interpreter to load 16 bit operands.
      
      Also fixes a bug with ToBoolean where it wouldn't get emitted at the start
      of a block, and added a test.
      
      BytecodeTraits template magic inspired by oth@chromium.org.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1370893002
      
      Cr-Commit-Position: refs/heads/master@{#31058}
      03369ed2
  20. 28 Sep, 2015 1 commit
  21. 24 Sep, 2015 2 commits
    • oth's avatar
      [Interpreter] Basic flow control. · 347fa906
      oth authored
      + Add bytecodes for conditional and unconditional jumps.
      + Add bytecodes for test/compare operations.
      + Expose jumps in bytecode-array-builder and add BytecodeLabel class for
        identifying jump targets.
      + Add support for if..then...else in the bytecode-generator.
      + Implement jump bytecodes in the interpreter. Test/compare operations
        dependent on runtime call for comparisons.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1343363002
      
      Cr-Commit-Position: refs/heads/master@{#30918}
      347fa906
    • rmcilroy's avatar
      [Interpreter] Add support for loading globals in the interpreter. · 8087c49d
      rmcilroy authored
      Adds LdaGlobal bytecode and augments BytecodeGenerator to load globals for
      global variables and function calls.
      
      Modified TestBytecodeGenerator to add the ability to specify that a bytecode
      operand has an unknown value (used so we don't need to figure out the slot
      index of a global). Also added a helper which checks equality of BytecodeArray
      with the expected snipptets.
      
      Modified TestInterpreter to allow it to take snippets of JS and have the
      BytecodeGenerator generate the bytecode rather than having to build a
      BytecodeArray manually. This is used to enable the global tests.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1361113002
      
      Cr-Commit-Position: refs/heads/master@{#30910}
      8087c49d