@@ -13779,29 +13779,22 @@ lookbehind). */
1377913779if (common -> has_set_som &&
1378013780 (common -> re -> extra_options & PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK ) == 0 )
1378113781 {
13782- struct sljit_jump * do_return ;
13783- struct sljit_jump * fallthrough ;
13784-
1378513782 if (HAS_VIRTUAL_REGISTERS )
1378613783 {
13787- OP1 (SLJIT_MOV , TMP1 , 0 , ARGUMENTS , 0 );
13788- OP1 (SLJIT_MOV , TMP1 , 0 , SLJIT_MEM1 (TMP1 ), SLJIT_OFFSETOF (jit_arguments , str ));
13784+ OP1 (SLJIT_MOV , TMP2 , 0 , ARGUMENTS , 0 );
13785+ OP1 (SLJIT_MOV , TMP2 , 0 , SLJIT_MEM1 (TMP2 ), SLJIT_OFFSETOF (jit_arguments , str ));
1378913786 }
1379013787 else
1379113788 {
13792- OP1 (SLJIT_MOV , TMP1 , 0 , SLJIT_MEM1 (ARGUMENTS ), SLJIT_OFFSETOF (jit_arguments , str ));
13789+ OP1 (SLJIT_MOV , TMP2 , 0 , SLJIT_MEM1 (ARGUMENTS ), SLJIT_OFFSETOF (jit_arguments , str ));
1379313790 }
13791+ OP1 (SLJIT_MOV , TMP3 , 0 , SLJIT_MEM1 (SLJIT_SP ), OVECTOR (0 ));
1379413792
13795- /* (ovector[0] < jit_arguments->str)? */
13796- do_return = CMP (SLJIT_LESS , SLJIT_MEM1 (SLJIT_SP ), OVECTOR (0 ), TMP1 , 0 );
13797- /* (ovector[0] <= STR_PTR)? NB. ovector[1] hasn't yet been set to STR_PTR. */
13798- fallthrough = CMP (SLJIT_LESS_EQUAL , SLJIT_MEM1 (SLJIT_SP ), OVECTOR (0 ), STR_PTR , 0 );
13799-
13800- JUMPHERE (do_return );
1380113793 OP1 (SLJIT_MOV , SLJIT_RETURN_REG , 0 , SLJIT_IMM , PCRE2_ERROR_BAD_BACKSLASH_K );
13802- add_jump (compiler , & common -> abort , JUMP (SLJIT_JUMP ));
13803-
13804- JUMPHERE (fallthrough );
13794+ /* (ovector[0] < jit_arguments->str)? */
13795+ add_jump (compiler , & common -> abort , CMP (SLJIT_LESS , TMP3 , 0 , TMP2 , 0 ));
13796+ /* (ovector[0] > STR_PTR)? NB. ovector[1] hasn't yet been set to STR_PTR. */
13797+ add_jump (compiler , & common -> abort , CMP (SLJIT_GREATER , TMP3 , 0 , STR_PTR , 0 ));
1380513798 }
1380613799
1380713800/* This means we have a match. Update the ovector. */
0 commit comments