Skip to content

Commit 355c69c

Browse files
authored
Yet another attempt at JIT code
1 parent ee12ec5 commit 355c69c

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/pcre2_jit_compile.c

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13779,29 +13779,22 @@ lookbehind). */
1377913779
if (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

Comments
 (0)