[pcre-dev] [Bug 1430] Request to spin up a new version of pc…

Top Page
Delete this message
Author: Tony Reix
Date:  
To: pcre-dev
Subject: [pcre-dev] [Bug 1430] Request to spin up a new version of pcre with ppc64le support
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1430




--- Comment #13 from Tony Reix <tony.reix@???> 2014-01-15 16:13:52 ---
On Linux Fedora on PPC / BE, your test works perfectly:

# gdb --args ./pcretest -s+
GNU gdb (GDB) Fedora (7.6-30.fc19)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "ppc64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/tony/pcre-8.34/pcretest...done.
(gdb) run
Starting program: /home/tony/pcre-8.34/pcretest -s+
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/power6/libthread_db.so.1".
PCRE version 8.34 2013-12-15

re> /ab+c/
data> abbc

0: abbc


And 'make test' is OK for JIT :
PASS: pcre_jit_test


(gdb) s
9541    return convert_executable_func.call_executable_func(arguments);
(gdb) si
0x0000000010091fb8      9541    return
convert_executable_func.call_executable_func(arguments);
(gdb) display/i $pc
1: x/i $pc
=> 0x10091fb8 <jit_machine_stack_exec+152>:     addis   r10,r31,1
(gdb) si
0x0000000010091fbc      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fbc <jit_machine_stack_exec+156>:     ld      r3,-32544(r10)
(gdb) si
0x0000000010091fc0      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fc0 <jit_machine_stack_exec+160>:     ld      r10,0(r9)
(gdb) si
0x0000000010091fc4      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fc4 <jit_machine_stack_exec+164>:     std     r2,40(r1)
(gdb) si
0x0000000010091fc8      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fc8 <jit_machine_stack_exec+168>:     ld      r11,16(r9)
(gdb) si
0x0000000010091fcc      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fcc <jit_machine_stack_exec+172>:     mtctr   r10
(gdb) si
0x0000000010091fd0      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fd0 <jit_machine_stack_exec+176>:     ld      r2,8(r9)
(gdb) si
0x0000000010091fd4      9541    return
convert_executable_func.call_executable_func(arguments);
1: x/i $pc
=> 0x10091fd4 <jit_machine_stack_exec+180>:     bctrl
(gdb) si
0x00003fffb7fb0010 in ?? ()
1: x/i $pc
=> 0x3fffb7fb0010:      mflr    r0
(gdb) x 0x00003fffb7fb0010
0x3fffb7fb0010: 0x7c0802a6
(gdb) x/20 0x00003fffb7fb0010
0x3fffb7fb0010: 0x7c0802a6      0xfbe1fff8      0xfbc1fff0      0xfba1ffe8
0x3fffb7fb0020: 0xfb81ffe0      0xfb61ffd8      0xfb41ffd0      0xf8010008
0x3fffb7fb0030: 0x3be00000      0x7c7e1b78      0xf821ff11      0xe91e0010
0x3fffb7fb0040: 0x3868ffff      0xf86100a8      0xf8610098      0x7fdbf378
0x3fffb7fb0050: 0x7fc3f378      0xebc30008      0xeba30018      0xe8a30000
(gdb) disassemble $pc,$pc+80
Dump of assembler code from 0x3fffb7fb0010 to 0x3fffb7fb0060:
=> 0x00003fffb7fb0010:  mflr    r0
   0x00003fffb7fb0014:  std     r31,-8(r1)
   0x00003fffb7fb0018:  std     r30,-16(r1)
   0x00003fffb7fb001c:  std     r29,-24(r1)
   0x00003fffb7fb0020:  std     r28,-32(r1)
   0x00003fffb7fb0024:  std     r27,-40(r1)
   0x00003fffb7fb0028:  std     r26,-48(r1)
   0x00003fffb7fb002c:  std     r0,8(r1)
   0x00003fffb7fb0030:  li      r31,0
   0x00003fffb7fb0034:  mr      r30,r3
   0x00003fffb7fb0038:  stdu    r1,-240(r1)
   0x00003fffb7fb003c:  ld      r8,16(r30)
   0x00003fffb7fb0040:  addi    r3,r8,-1
   0x00003fffb7fb0044:  std     r3,168(r1)
   0x00003fffb7fb0048:  std     r3,152(r1)
   0x00003fffb7fb004c:  mr      r27,r30
   0x00003fffb7fb0050:  mr      r3,r30
   0x00003fffb7fb0054:  ld      r30,8(r3)
   0x00003fffb7fb0058:  ld      r29,24(r3)
   0x00003fffb7fb005c:  ld      r5,0(r3)
End of assembler dump.
(gdb) disassemble jit_machine_stack_exec
Dump of assembler code for function jit_machine_stack_exec:
   0x0000000010091f20 <+0>:     mflr    r0
   0x0000000010091f24 <+4>:     std     r0,16(r1)
   0x0000000010091f28 <+8>:     std     r31,-8(r1)
   0x0000000010091f2c <+12>:    lis     r0,-1
   0x0000000010091f30 <+16>:    ori     r0,r0,32592
   0x0000000010091f34 <+20>:    stdux   r1,r1,r0
   0x0000000010091f38 <+24>:    mr      r31,r1
   0x0000000010091f3c <+28>:    addis   r9,r31,1
   0x0000000010091f40 <+32>:    std     r3,-32544(r9)
   0x0000000010091f44 <+36>:    addis   r10,r31,1
   0x0000000010091f48 <+40>:    std     r4,-32536(r10)
   0x0000000010091f4c <+44>:    addi    r10,r31,120
   0x0000000010091f50 <+48>:    addis   r9,r31,1
   0x0000000010091f54 <+52>:    std     r10,-32648(r9)
   0x0000000010091f58 <+56>:    addis   r9,r31,1
   0x0000000010091f5c <+60>:    ld      r10,-32648(r9)
   0x0000000010091f60 <+64>:    addis   r9,r31,1
   0x0000000010091f64 <+68>:    std     r10,-32640(r9)
   0x0000000010091f68 <+72>:    addis   r9,r31,1
   0x0000000010091f6c <+76>:    ld      r9,-32640(r9)
   0x0000000010091f70 <+80>:    addis   r9,r9,1
   0x0000000010091f74 <+84>:    addi    r10,r9,-32768
   0x0000000010091f78 <+88>:    addis   r9,r31,1
   0x0000000010091f7c <+92>:    std     r10,-32632(r9)
   0x0000000010091f80 <+96>:    addis   r9,r31,1
   0x0000000010091f84 <+100>:   ld      r10,-32632(r9)
   0x0000000010091f88 <+104>:   addis   r9,r31,1
   0x0000000010091f8c <+108>:   std     r10,-32624(r9)
   0x0000000010091f90 <+112>:   addis   r10,r31,1
   0x0000000010091f94 <+116>:   ld      r9,-32544(r10)
   0x0000000010091f98 <+120>:   addi    r10,r31,112
   0x0000000010091f9c <+124>:   addis   r10,r10,1
   0x0000000010091fa0 <+128>:   addi    r10,r10,-32760
   0x0000000010091fa4 <+132>:   std     r10,0(r9)
   0x0000000010091fa8 <+136>:   addis   r10,r31,1
   0x0000000010091fac <+140>:   ld      r9,-32536(r10)
   0x0000000010091fb0 <+144>:   std     r9,112(r31)
   0x0000000010091fb4 <+148>:   ld      r9,112(r31)
   0x0000000010091fb8 <+152>:   addis   r10,r31,1
   0x0000000010091fbc <+156>:   ld      r3,-32544(r10)
   0x0000000010091fc0 <+160>:   ld      r10,0(r9)
   0x0000000010091fc4 <+164>:   std     r2,40(r1)
   0x0000000010091fc8 <+168>:   ld      r11,16(r9)
   0x0000000010091fcc <+172>:   mtctr   r10
   0x0000000010091fd0 <+176>:   ld      r2,8(r9)
   0x0000000010091fd4 <+180>:   bctrl
   0x0000000010091fd8 <+184>:   ld      r2,40(r1)
   0x0000000010091fdc <+188>:   mr      r9,r3
---Type <return> to continue, or q <return> to quit---
   0x0000000010091fe0 <+192>:   mr      r3,r9
   0x0000000010091fe4 <+196>:   ld      r1,0(r1)
   0x0000000010091fe8 <+200>:   ld      r0,16(r1)
   0x0000000010091fec <+204>:   mtlr    r0
   0x0000000010091ff0 <+208>:   ld      r31,-8(r1)
   0x0000000010091ff4 <+212>:   blr
   0x0000000010091ff8 <+216>:   .long 0x0
   0x0000000010091ffc <+220>:   .long 0x1
   0x0000000010092000 <+224>:   lwz     r0,1(r1)
End of assembler dump.




# ./pcre_jit_test
Running JIT regression tests
target CPU of SLJIT compiler: PowerPC 64bit (big 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:
............................................................


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email