• Jakob Gruber's avatar
    [regexp] Consistent expectations for output registers · fe609139
    Jakob Gruber authored
    ... between the interpreter and generated code.
    
    Prior to this CL, pre- and post conditions on the output register
    array differed between the interpreter and generated code.
    
    Interpreter
    Pre: `output` fits captures and temporary registers.
    Post: None.
    
    Generated code
    Pre:  `output` fits capture registers.
    Post: `output` is modified if and only if the match succeeded.
    
    This CL changes the interpreter to match generated code pre- and
    post conditions by allocating space for temporary registers inside
    the interpreter.
    
    Drive-by: Add MaxRegisterCount, RegistersForCaptureCount helpers.
    
    Bug: chromium:1067270
    Change-Id: I2900ef2f31207d817ec7ead3e0e2215b23b398f0
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135642
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#67268}
    fe609139
regexp-compiler.cc 148 KB