1. 10 Feb, 2016 1 commit
    • verwaest's avatar
      Mark null and undefined as undetectable, and use it to handle abstract... · 3ce9e808
      verwaest authored
      Mark null and undefined as undetectable, and use it to handle abstract equality comparison in the generic compare ic
      
      Marking as undetectable makes abstract equality of null, undefined, and
      other undetectable objects easier. Supporting it in the generic compare
      IC significantly speeds up dynamic comparison between those values and
      JSReceivers by not falling back to the runtime.
      
      MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>
      
      Review URL: https://codereview.chromium.org/1683643002
      
      Cr-Commit-Position: refs/heads/master@{#33858}
      3ce9e808
  2. 03 Feb, 2016 1 commit
    • mstarzinger's avatar
      [interpreter] Clear pending message object on handler entry. · e8144576
      mstarzinger authored
      This clears the currently pending message object whenever a try-block or
      a finally-block is being entered in interpreted code. The intention is
      to avoid memory leaks introduced by the message object. Also the message
      object is being restored when a finally-block exits.
      
      R=rmcilroy@chromium.org
      TEST=cctest/test-heap/MessageObjectLeak
      BUG=v8:4674
      LOG=n
      
      Review URL: https://codereview.chromium.org/1651993002
      
      Cr-Commit-Position: refs/heads/master@{#33704}
      e8144576
  3. 28 Jan, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add option to trace bytecode execution. · 6399fce5
      rmcilroy authored
      Adds --trace-ignition flag which allows tracing of bytecodes as they
      execute. As well as printing out the bytecode, this also prints out the
      input and output registers to each operation. The generated output looks
      as follows:
      
       -> 0x350cb46d5264 (139) : 49 fc fb 03 07    Call r4, r5, #3, [7]
            [ accumulator -> 0x177fba00bc99 <JS Array[2]> ]
            [          r4 -> 0x350cb46ce099 <JS Function InstallFunctions (SharedFunctionInfo 0x350cb46470c1)> ]
            [          r5 -> 0x350cb46cddc1 <an Object with map 0x35fdf590a3a9> ]
            [          r6 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [          r7 -> 2 ]
            [ accumulator <- 0x350cb4604189 <undefined> ]
       -> 0x350cb46d5978 (47) : 4b f8 00 00 00    CallRuntime [248], r0, #0
            [ accumulator -> 0x350cb4604189 <undefined> ]
            [ accumulator <- 0x350cb4604189 <undefined> ]
       -> 0x350cb46d597d (52) : 23 09             Ldar a0
            [ accumulator -> 0x350cb4604189 <undefined> ]
            [          a0 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
       -> 0x350cb46d597f (54) : 24 fd             Star r3
            [ accumulator -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
            [          r3 <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
      
      Also adds support for --print_source and --print-ast to the interpreter.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1640213002
      
      Cr-Commit-Position: refs/heads/master@{#33594}
      6399fce5
  4. 15 Jan, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add ForInPrepare runtime function which returns a ObjectTriple. · 84f8a506
      rmcilroy authored
      Adds a ForInPrepare Runtime function which returns a triple of
      cache_type, cache_array and cache_length.
      
      This requires adding support to CEntryStub to call runtime functions
      which return a ObjectTriple - a struct containing three Object*
      pointers. Also did some cleanup of the x64 CEntryStub to avoid
      replicated code.
      
      Replaces the interpreter's use of the ad-hock InterpreterForInPrepare
      Runtime function with ForInPrepare in preparation for fixing deopt in
      BytecodeGraphBuilder for ForIn (which will be done in a followup CL).
      
      MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1576093004
      
      Cr-Commit-Position: refs/heads/master@{#33334}
      84f8a506
  5. 21 Dec, 2015 1 commit
  6. 04 Dec, 2015 1 commit
  7. 30 Nov, 2015 1 commit
  8. 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
  9. 13 Oct, 2015 1 commit
  10. 06 Oct, 2015 1 commit
  11. 28 Sep, 2015 1 commit