Hi Petr, thank you very much for the testing! This is really a great help for us.
Could you try the MIPS-64 port as well? You are the first one who actually has an ARM-64 hardware :) The developer branch of qemu A64 does not support all instructions, so it fails when SLJIT_CACHE_FLUSH is called with undefined instruction. I commented out these calls to run my code on quemu. Could you reenable them in sljitNativeARM_64.c (there are 3 of them) and rerun the tests? Just remove the /* */ around them. Regards, Zoltan Petr Pisar <[email protected]> írta: >On Fri, Mar 14, 2014 at 04:09:41PM +0000, [email protected] wrote: >> A first release candidate for 8.35 is now available here: >[...] >> Please test as much as you can. The code has quite a few changes - as >> always, look in ChangeLog for details. >> >I performed tests on Linux with glibc with JIT enabled where supported with >following results: > >PPC: passed >s390: passed >amd64: passed >PPC64: passed >i686: passed >s390x: passed >n32 MIPS64: passed >aarch64: failed >ARMv6j: passed > >The aarch64 fails at two test suites: > >(1) pcre_jit_test: > >Running JIT regression tests > target CPU of SLJIT compiler: ARM-64 64bit (little endian + unaligned) > in 8 bit mode with UTF-8 enabled and ucp enabled: > in 16 bit mode with UTF-16 enabled and ucp enabled: > in 32 bit mode with UTF-32 enabled and ucp enabled: >............................................................ >............................................................ >............................................................ >............................................................ >............................................................ >............................................................ >............................................................ >............................................................ >................................................ >8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): >[529] 'ab' @ 'a' > >8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): >[529] 'ab' @ 'a' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [529] 'ab' @ 'a' >.. >8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): >[532] '\b#' @ 'a' > >8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): >[532] '\b#' @ 'a' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [532] '\b#' @ 'a' > >8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): >[533] '(?<=a)b' @ 'a' > >8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): >[533] '(?<=a)b' @ 'a' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [533] '(?<=a)b' @ 'a' > >8 and 16 bit: Ovector[0] value differs(J8:-4223416,I8:2,J16:-2164020,I16:2): >[534] 'abc|(?<=xxa)bc' @ 'xxab' > >8 and 32 bit: Ovector[0] value differs(J8:-4223416,I8:2,J32:-1077914,I32:2): >[534] 'abc|(?<=xxa)bc' @ 'xxab' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:2,J32:-2164020,I32:2): [534] 'abc|(?<=xxa)bc' @ >'xxab' > >8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): >[535] 'a\B' @ 'a' > >8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): >[535] 'a\B' @ 'a' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [535] 'a\B' @ 'a' >........................... >8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): >[563] 'a(*PRUNE)a|m' @ 'a' > >8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): >[563] 'a(*PRUNE)a|m' @ 'a' > >16 and 16 bit: Ovector[0] value >differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [563] 'a(*PRUNE)a|m' @ 'a' >.......................................... >Successful test ratio: 99% (6 failed) > > >(2) RunTest gets aborted by glibc stack protector or segfaults: > >PCRE C library tests using test data from ./testdata >PCRE version 8.35-RC1 2014-03-14 > >---- Testing 8-bit library ---- > >Test 1: Main functionality (Compatible with Perl >= 5.10) > OK > OK with study >./RunTest: line 425: 8914 Segmentation fault $sim $valgrind ./pcretest >-q $bmode $opt $testdata/testinput1 testtry > >This happens with the JIT mode (./pcretest -q -8 -s+ testdata/testinput2). > >If I disable JIT, tests pass on aarch64. > >Please do not consider the aarch64 tests seriously. The software (kernel, >glibc, GCC) and the hardware (emulator) are still changing. > >-- Petr >-- >## List details at https://lists.exim.org/mailman/listinfo/pcre-dev -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
