Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,7 @@ EXTRA_DIST += \
deps/sljit/sljit_src/sljitConfigInternal.h \
deps/sljit/sljit_src/sljitLir.c \
deps/sljit/sljit_src/sljitLir.h \
deps/sljit/sljit_src/sljitNativeALPHA_64.c \
deps/sljit/sljit_src/sljitNativeARM_32.c \
deps/sljit/sljit_src/sljitNativeARM_64.c \
deps/sljit/sljit_src/sljitNativeARM_T2_32.c \
Expand Down
1 change: 1 addition & 0 deletions doc/html/pcre2jit.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ <h2><a name="SEC2" href="#TOC1">AVAILABILITY OF JIT SUPPORT</a></h2>
<pre>
ARM 32-bit (v7, and Thumb2)
ARM 64-bit
DEC Alpha 64-bit
IBM s390x 64 bit
Intel x86 32-bit and 64-bit
LoongArch 64 bit
Expand Down
1 change: 1 addition & 0 deletions doc/pcre2jit.3
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ platforms:
.sp
ARM 32-bit (v7, and Thumb2)
ARM 64-bit
DEC Alpha 64-bit
IBM s390x 64 bit
Intel x86 32-bit and 64-bit
LoongArch 64 bit
Expand Down
11 changes: 10 additions & 1 deletion src/pcre2_jit_compile.c
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,15 @@ typedef struct compare_context {
#define ARGUMENTS SLJIT_S4
#define RETURN_ADDR SLJIT_R4

/* Number of scratch registers the generated code may use. The Alpha CMPBGE
scanning loops keep up to five replicated character constants live across a
loop, so they use scratch registers above RETURN_ADDR and must declare them. */
#if (defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA)
#define SCRATCH_REGISTERS 10
#else
#define SCRATCH_REGISTERS 5
#endif

#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
#define HAS_VIRTUAL_REGISTERS 1
#else
Expand Down Expand Up @@ -13784,7 +13793,7 @@ common->compiler = compiler;

/* Main pcre2_jit_exec entry. */
SLJIT_ASSERT((private_data_size & (sizeof(sljit_sw) - 1)) == 0);
sljit_emit_enter(compiler, 0, SLJIT_ARGS1(W, W), 5 | SLJIT_ENTER_VECTOR(SLJIT_NUMBER_OF_SCRATCH_VECTOR_REGISTERS), 5, private_data_size);
sljit_emit_enter(compiler, 0, SLJIT_ARGS1(W, W), SCRATCH_REGISTERS | SLJIT_ENTER_VECTOR(SLJIT_NUMBER_OF_SCRATCH_VECTOR_REGISTERS), 5, private_data_size);

/* Register init. */
reset_ovector(common, (re->top_bracket + 1) * 2);
Expand Down
Loading