• 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
interpreter-assembler.h 7.63 KB