• Jakob Gruber's avatar
    [regexp] Add dedicated flags for printing regexp code and bytecode · eebb18d3
    Jakob Gruber authored
    Printing regexp code used to behind the generic --print-code flag, but
    there was no way to distinguish between irregexp-generated code; and
    printing regexp bytecode was not supported at all (the
    --trace-regexp-bytecodes flag *did* exist, but prints the execution
    trace at runtime and not the generated bytecode sequence).
    
    This CL adds two new flags:
    
    --print-regexp-code
    --print-regexp-bytecode
    
    Regexp code is no longer printed as part of --print-code.
    
    Example output for --print-regexp-bytecode:
    
    generated bytecode for regexp pattern: .(?<!^.)
    0x1ddcc614cbd0     0  PUSH_BT, 02, 00, 00, 00, c0, 00, 00, 00 .......
    0x1ddcc614cbd8     8  LOAD_CURRENT_CHAR, 11, 00, 00, 00, b0, 00, 00, 00 .......
    0x1ddcc614cbe0    10  CHECK_CHAR, 18, 0a, 00, 00, b0, 00, 00, 00 .......
    0x1ddcc614cbe8    18  CHECK_CHAR, 18, 0d, 00, 00, b0, 00, 00, 00 .......
    0x1ddcc614cbf0    20  PUSH_CP, 01, 00, 00, 00 ...
    
    Bug: chromium:996391
    Change-Id: I731defbd7cf9ed29753a39bb1d7205dc136ca950
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773249
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Auto-Submit: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#63442}
    eebb18d3
regexp-interpreter.cc 29.2 KB