Skip to content

Conversation

@zherczeg
Copy link
Collaborator

Testing on some non-x86 cpus could be added to CI at some point (ARM, x390x)

@carenas
Copy link
Contributor

carenas commented Nov 26, 2024

funny enough we are already testing in 64bit ARM, which is what the macOS runner has.

for the rest we are still relying in the "mostly emulated" SLJIT "CI", but agree setting up our own workers for the rest would be useful.

Copy link
Contributor

@carenas carenas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how is this going to affect RISCV, knowing we have a problem there with SIMD that could result in crashes?

/* 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_FLOAT(SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS), 5, private_data_size);
sljit_emit_enter(compiler, 0, SLJIT_ARGS1(W, W), 5 | SLJIT_ENTER_VECTOR(SLJIT_NUMBER_OF_SCRATCH_VECTOR_REGISTERS), 5, private_data_size);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is SLJIT SIMD really being used now, or this is an abstraction that leaked?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The x86 uses the simd interface. Now the simd interface has correct vector register handling.

I did not have time to merge the others and simplify those platforms.

@zherczeg zherczeg merged commit 6ef4fee into PCRE2Project:master Nov 30, 2024
21 checks passed
@zherczeg zherczeg deleted the jit_update branch November 30, 2024 07:10
@PhilipHazel
Copy link
Collaborator

I seem to have a problem here. When I updated with this PR, I got this error:

src/pcre2_jit_compile.c: In function 'jit_compile':
src/pcre2_jit_compile.c:13226:54: error: implicit declaration of function 'SLJIT_ENTER_VECTOR'; did you mean 'SLJIT_ENTER_KEEP'? [-Wimplicit-function-declaration]
13226 | sljit_emit_enter(compiler, 0, SLJIT_ARGS1(W, W), 5 | SLJIT_ENTER_VECTOR(SLJIT_NUMBER_OF_SCRATCH_VECTOR_REGISTERS), 5, private_data_size);
      |                                                      ^~~~~~~~~~~~~~~~~~
      |                                                      SLJIT_ENTER_KEEP
src/pcre2_jit_compile.c:13226:54: warning: nested extern declaration of 'SLJIT_ENTER_VECTOR' [-Wnested-externs]

I can't find a definition for SLJIT_ENTER_VECTOR anywhere in the source. What am I doing wrong?

@zherczeg
Copy link
Collaborator Author

what git status says? Is it possible that you did not fetch the deps/sljit and moved to the expected hash?

@PhilipHazel
Copy link
Collaborator

Thank you! I keep forgetting that I have to fetch deps/sljit separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants