Hi,

On Thu, 10 Feb 2022 09:07:05 +0100 John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de> wrote:

> On 2/10/22 03:22, Mike Hommey wrote:
> > I thought the code built with -mcrypto -mvsx was behind runtime
> > detection?
>
> As far as I know, it's not. We had user reports about running into SIGILL
> on powerpc and ppc64 targets when running on older hardware. [1]
>
> This is why I added the possibility to turn off VSX and Crypto in NSS upstream
> in the first place. [2][3]

I can confirm a reproducible crash in libnss3 / powerpc (32-bit) due to illegal instruction on my PowerMac G5 (970MP). A quick way to trigger it is to run 'ecryptfs-wrap-passphrase <file>' which calls libnss3's 'rijndael_encryptBlock128' and crashes on encountering the instruction 'lxvw4x', which was only introduced in version 2.06 of the specification, so POWER7 and later.

All other code that I've encountered in the binary packages for the 'powerpc' architecture builds works fine so I assume that the 2.06 version of the specification isn't a new baseline for building these packages (it wouldn't make sense on 32-bit PowerPC anyway to raise the baseline to POWER7's instruction set).

Interestingly enough rebuilding the package on my 970MP produces different assembly code, omitting the 'lxvw4x' instruction and this rebuilt package works fine with my CPU, no illegal instruction. So the host CPU's model and capabilities affects the assembly code of the built package, which I assume is not what one should expect?

This instruction seems to be the result of auto-vectorization by gcc, so likely there's some '-mcpu=native' condition in combination with optimization options enabling auto-vectorization that produces the instruction 'lxvw4x' when the file 'nss/lib/freebl/rijndael.c' is compiled. Specifically around line 584 where it crashes:
584:        COLUMN_3(state) = *((PRUint32 *)(pIn + 12)) ^ *roundkeyw++;

I'm attaching a crash log and disassembly of the function 'rijndael_encryptBlock128' from the current debian binary package in 'sid' (version 3.96-1):
    libnss3_3.96-1_crash_disass_upstream.txt

...and a disassembly of ''rijndael_encryptBlock128' from a package that I rebuilt on my own machine with no changed parameters (simple 'apt source --compile libnss3'):
    libnss3_3.96-1_disass_rebuilt.txt

Best regards,

- Erik
$ gdb --args ecryptfs-wrap-passphrase asdf
GNU gdb (Debian 13.2-1) 13.2
Copyright (C) 2023 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 "powerpc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ecryptfs-wrap-passphrase...
Reading symbols from 
/usr/lib/debug/.build-id/d8/d1e871d83a1f9276b85ed0292169652b01e59a.debug...
(gdb) run
Starting program: /usr/bin/ecryptfs-wrap-passphrase asdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/powerpc-linux-gnu/libthread_db.so.1".
Passphrase to wrap: 
Wrapping passphrase: 

Program received signal SIGILL, Illegal instruction.
rijndael_encryptBlock128 (cx=cx@entry=0x444060, output=output@entry=0xfffef808 
"", input=input@entry=0xfffef7b4 "asdf") at rijndael.c:584
584     rijndael.c: Filen eller katalogen finns inte.
(gdb) bt
#0  rijndael_encryptBlock128 (cx=cx@entry=0x444060, 
output=output@entry=0xfffef808 "", input=input@entry=0xfffef7b4 "asdf") at 
rijndael.c:584
#1  0xf7906ef0 in rijndael_encryptECB (cx=0x444060, output=0xfffef808 "", 
outputLen=<optimized out>, maxOutputLen=<optimized out>, input=0xfffef7b4 
"asdf", inputLen=16)
    at rijndael.c:753
#2  0xf7907ba4 in AES_Encrypt (cx=<optimized out>, output=<optimized out>, 
outputLen=<optimized out>, maxOutputLen=<optimized out>, input=<optimized out>, 
inputLen=<optimized out>)
    at rijndael.c:1174
#3  0xf7ce2158 in AES_Encrypt (cx=0x444060, output=0xfffef808 "", 
outputLen=<optimized out>, maxOutputLen=<optimized out>, input=<optimized out>, 
inputLen=<optimized out>)
    at loader.c:498
#4  0xf7cbd304 in NSC_EncryptUpdate (hSession=<optimized out>, pPart=0xfffef7b4 
"asdf", ulPartLen=16, pEncryptedPart=0xfffef808 "", 
pulEncryptedPartLen=0xfffef6e0) at pkcs11c.c:1508
#5  0xf7de7f08 in PK11_CipherOp (context=0x442930, out=<optimized out>, 
outlen=0xfffef740, maxout=80, in=0xfffef7b4 "asdf", inlen=16) at pk11cxt.c:913
#6  0x003b7e10 in ecryptfs_wrap_passphrase () from 
/lib/powerpc-linux-gnu/libecryptfs.so.1
#7  0x00400838 in main (argc=<optimized out>, argv=<optimized out>) at 
ecryptfs_wrap_passphrase.c:83
(gdb) disass
Dump of assembler code for function rijndael_encryptBlock128:
   0xf7905fb0 <+0>:     stwu    r1,-160(r1)
   0xf7905fb4 <+4>:     mflr    r0
   0xf7905fb8 <+8>:     bcl     20,4*cr7+so,0xf7905fbc 
<rijndael_encryptBlock128+12>
   0xf7905fbc <+12>:    andi.   r9,r5,3
   0xf7905fc0 <+16>:    stw     r30,152(r1)
   0xf7905fc4 <+20>:    stw     r0,164(r1)
   0xf7905fc8 <+24>:    stw     r24,128(r1)
   0xf7905fcc <+28>:    stw     r25,132(r1)
   0xf7905fd0 <+32>:    stw     r26,136(r1)
   0xf7905fd4 <+36>:    stw     r27,140(r1)
   0xf7905fd8 <+40>:    stw     r28,144(r1)
   0xf7905fdc <+44>:    stw     r29,148(r1)
   0xf7905fe0 <+48>:    stw     r31,156(r1)
   0xf7905fe4 <+52>:    mflr    r30
   0xf7905fe8 <+56>:    addis   r30,r30,13
   0xf7905fec <+60>:    addi    r30,r30,6644
   0xf7905ff0 <+64>:    lwz     r9,-28680(r2)
   0xf7905ff4 <+68>:    stw     r9,92(r1)
   0xf7905ff8 <+72>:    li      r9,0
   0xf7905ffc <+76>:    bne     0xf7906370 <rijndael_encryptBlock128+960>
   0xf7906000 <+80>:    andi.   r9,r4,3
   0xf7906004 <+84>:    mr      r24,r4
   0xf7906008 <+88>:    beq     0xf7906010 <rijndael_encryptBlock128+96>
   0xf790600c <+92>:    addi    r24,r1,76
=> 0xf7906010 <+96>:    lxvw4x  vs0,0,r3
   0xf7906014 <+100>:   lxvw4x  vs12,0,r5
   0xf7906018 <+104>:   li      r9,-64
   0xf790601c <+108>:   addi    r10,r1,96
   0xf7906020 <+112>:   lwz     r25,244(r3)
   0xf7906024 <+116>:   addi    r26,r3,16
   0xf7906028 <+120>:   cmplwi  cr7,r25,1
   0xf790602c <+124>:   xxlxor  vs0,vs0,vs12
   0xf7906030 <+128>:   stxvw4x vs0,r10,r9
   0xf7906034 <+132>:   ble     cr7,0xf79063d0 <rijndael_encryptBlock128+1056>
   0xf7906038 <+136>:   stw     r16,96(r1)
   0xf790603c <+140>:   stw     r17,100(r1)
   0xf7906040 <+144>:   stw     r18,104(r1)
   0xf7906044 <+148>:   stw     r19,108(r1)
   0xf7906048 <+152>:   stw     r20,112(r1)
   0xf790604c <+156>:   stw     r21,116(r1)
   0xf7906050 <+160>:   stw     r22,120(r1)
--Type <RET> for more, q to quit, c to continue without paging--c
   0xf7906054 <+164>:   stw     r23,124(r1)
   0xf7906058 <+168>:   addi    r9,r25,-1
   0xf790605c <+172>:   lwz     r5,-32768(r30)
   0xf7906060 <+176>:   lwz     r6,-32764(r30)
   0xf7906064 <+180>:   mr      r29,r26
   0xf7906068 <+184>:   lwz     r11,-32760(r30)
   0xf790606c <+188>:   lwz     r3,-32756(r30)
   0xf7906070 <+192>:   li      r27,-80
   0xf7906074 <+196>:   li      r28,-64
   0xf7906078 <+200>:   mtctr   r9
   0xf790607c <+204>:   ori     r2,r2,0
   0xf7906080 <+208>:   lbz     r8,36(r1)
   0xf7906084 <+212>:   lbz     r12,41(r1)
   0xf7906088 <+216>:   lbz     r31,32(r1)
   0xf790608c <+220>:   lbz     r18,37(r1)
   0xf7906090 <+224>:   lbz     r23,40(r1)
   0xf7906094 <+228>:   lbz     r0,44(r1)
   0xf7906098 <+232>:   slwi    r8,r8,2
   0xf790609c <+236>:   slwi    r12,r12,2
   0xf79060a0 <+240>:   lwzx    r12,r6,r12
   0xf79060a4 <+244>:   lbz     r10,45(r1)
   0xf79060a8 <+248>:   slwi    r18,r18,2
   0xf79060ac <+252>:   slwi    r31,r31,2
   0xf79060b0 <+256>:   lbz     r9,33(r1)
   0xf79060b4 <+260>:   lbz     r7,42(r1)
   0xf79060b8 <+264>:   slwi    r23,r23,2
   0xf79060bc <+268>:   slwi    r0,r0,2
   0xf79060c0 <+272>:   lwzx    r8,r5,r8
   0xf79060c4 <+276>:   lbz     r19,46(r1)
   0xf79060c8 <+280>:   slwi    r10,r10,2
   0xf79060cc <+284>:   lbz     r20,34(r1)
   0xf79060d0 <+288>:   lbz     r21,38(r1)
   0xf79060d4 <+292>:   slwi    r9,r9,2
   0xf79060d8 <+296>:   slwi    r7,r7,2
   0xf79060dc <+300>:   lwzx    r16,r6,r18
   0xf79060e0 <+304>:   lwzx    r17,r5,r23
   0xf79060e4 <+308>:   xor     r8,r8,r12
   0xf79060e8 <+312>:   slwi    r19,r19,2
   0xf79060ec <+316>:   lwzx    r18,r5,r0
   0xf79060f0 <+320>:   lbz     r22,47(r1)
   0xf79060f4 <+324>:   slwi    r20,r20,2
   0xf79060f8 <+328>:   slwi    r21,r21,2
   0xf79060fc <+332>:   lwzx    r31,r5,r31
   0xf7906100 <+336>:   lbz     r23,35(r1)
   0xf7906104 <+340>:   lbz     r12,39(r1)
   0xf7906108 <+344>:   lbz     r0,43(r1)
   0xf790610c <+348>:   slwi    r22,r22,2
   0xf7906110 <+352>:   lwzx    r10,r6,r10
   0xf7906114 <+356>:   lwzx    r9,r6,r9
   0xf7906118 <+360>:   xor     r31,r31,r16
   0xf790611c <+364>:   slwi    r23,r23,2
   0xf7906120 <+368>:   lwzx    r7,r11,r7
   0xf7906124 <+372>:   lwzx    r19,r11,r19
   0xf7906128 <+376>:   slwi    r12,r12,2
   0xf790612c <+380>:   slwi    r0,r0,2
   0xf7906130 <+384>:   lwzx    r20,r11,r20
   0xf7906134 <+388>:   lwzx    r21,r11,r21
   0xf7906138 <+392>:   xor     r10,r17,r10
   0xf790613c <+396>:   xor     r9,r18,r9
   0xf7906140 <+400>:   lwzx    r22,r3,r22
   0xf7906144 <+404>:   lwzx    r23,r3,r23
   0xf7906148 <+408>:   xor     r7,r31,r7
   0xf790614c <+412>:   xor     r8,r8,r19
   0xf7906150 <+416>:   lwzx    r31,r3,r12
   0xf7906154 <+420>:   lwzx    r0,r3,r0
   0xf7906158 <+424>:   xor     r10,r10,r20
   0xf790615c <+428>:   xor     r9,r9,r21
   0xf7906160 <+432>:   xor     r7,r7,r22
   0xf7906164 <+436>:   xor     r8,r8,r23
   0xf7906168 <+440>:   xor     r9,r9,r0
   0xf790616c <+444>:   xor     r10,r10,r31
   0xf7906170 <+448>:   stw     r7,16(r1)
   0xf7906174 <+452>:   stw     r9,28(r1)
   0xf7906178 <+456>:   stw     r8,20(r1)
   0xf790617c <+460>:   stw     r10,24(r1)
   0xf7906180 <+464>:   addi    r9,r1,96
   0xf7906184 <+468>:   lxvw4x  vs0,0,r29
   0xf7906188 <+472>:   lxvw4x  vs12,r9,r27
   0xf790618c <+476>:   addi    r29,r29,16
   0xf7906190 <+480>:   xxlxor  vs0,vs12,vs0
   0xf7906194 <+484>:   stxvw4x vs0,r9,r28
   0xf7906198 <+488>:   bdnz    0xf7906080 <rijndael_encryptBlock128+208>
   0xf790619c <+492>:   slwi    r25,r25,4
   0xf79061a0 <+496>:   lwz     r16,96(r1)
   0xf79061a4 <+500>:   lwz     r17,100(r1)
   0xf79061a8 <+504>:   addi    r25,r25,-16
   0xf79061ac <+508>:   lwz     r18,104(r1)
   0xf79061b0 <+512>:   lwz     r19,108(r1)
   0xf79061b4 <+516>:   lwz     r20,112(r1)
   0xf79061b8 <+520>:   lwz     r21,116(r1)
   0xf79061bc <+524>:   add     r26,r26,r25
   0xf79061c0 <+528>:   lwz     r22,120(r1)
   0xf79061c4 <+532>:   lwz     r23,124(r1)
   0xf79061c8 <+536>:   lbz     r7,36(r1)
   0xf79061cc <+540>:   lbz     r10,41(r1)
   0xf79061d0 <+544>:   lbz     r8,40(r1)
   0xf79061d4 <+548>:   lbz     r29,45(r1)
   0xf79061d8 <+552>:   lbz     r9,34(r1)
   0xf79061dc <+556>:   slwi    r7,r7,2
   0xf79061e0 <+560>:   slwi    r10,r10,2
   0xf79061e4 <+564>:   lbz     r0,46(r1)
   0xf79061e8 <+568>:   slwi    r29,r29,2
   0xf79061ec <+572>:   slwi    r8,r8,2
   0xf79061f0 <+576>:   lwzx    r7,r11,r7
   0xf79061f4 <+580>:   lwzx    r10,r3,r10
   0xf79061f8 <+584>:   lwzx    r8,r11,r8
   0xf79061fc <+588>:   lwzx    r28,r3,r29
   0xf7906200 <+592>:   slwi    r9,r9,2
   0xf7906204 <+596>:   slwi    r0,r0,2
   0xf7906208 <+600>:   lwzx    r9,r5,r9
   0xf790620c <+604>:   lbz     r31,35(r1)
   0xf7906210 <+608>:   rlwinm  r10,r10,0,8,15
   0xf7906214 <+612>:   clrrwi  r7,r7,24
   0xf7906218 <+616>:   rlwinm  r28,r28,0,8,15
   0xf790621c <+620>:   clrrwi  r8,r8,24
   0xf7906220 <+624>:   lwzx    r0,r5,r0
   0xf7906224 <+628>:   lbz     r27,33(r1)
   0xf7906228 <+632>:   or      r7,r7,r10
   0xf790622c <+636>:   rlwinm  r9,r9,0,16,23
   0xf7906230 <+640>:   lbz     r10,44(r1)
   0xf7906234 <+644>:   lbz     r29,39(r1)
   0xf7906238 <+648>:   or      r8,r8,r28
   0xf790623c <+652>:   slwi    r31,r31,2
   0xf7906240 <+656>:   lbz     r28,38(r1)
   0xf7906244 <+660>:   lwzx    r31,r6,r31
   0xf7906248 <+664>:   or      r8,r8,r9
   0xf790624c <+668>:   lbz     r9,32(r1)
   0xf7906250 <+672>:   rlwinm  r0,r0,0,16,23
   0xf7906254 <+676>:   slwi    r10,r10,2
   0xf7906258 <+680>:   slwi    r27,r27,2
   0xf790625c <+684>:   lwzx    r10,r11,r10
   0xf7906260 <+688>:   lwzx    r27,r3,r27
   0xf7906264 <+692>:   or      r7,r7,r0
   0xf7906268 <+696>:   clrlwi  r31,r31,24
   0xf790626c <+700>:   slwi    r29,r29,2
   0xf7906270 <+704>:   slwi    r28,r28,2
   0xf7906274 <+708>:   lbz     r0,43(r1)
   0xf7906278 <+712>:   slwi    r9,r9,2
   0xf790627c <+716>:   lwzx    r29,r6,r29
   0xf7906280 <+720>:   lwzx    r28,r5,r28
   0xf7906284 <+724>:   or      r7,r7,r31
   0xf7906288 <+728>:   lwzx    r9,r11,r9
   0xf790628c <+732>:   lbz     r31,42(r1)
   0xf7906290 <+736>:   rlwinm  r27,r27,0,8,15
   0xf7906294 <+740>:   clrrwi  r10,r10,24
   0xf7906298 <+744>:   lbz     r11,37(r1)
   0xf790629c <+748>:   clrlwi  r29,r29,24
   0xf79062a0 <+752>:   or      r10,r10,r27
   0xf79062a4 <+756>:   lwz     r27,4(r26)
   0xf79062a8 <+760>:   rlwinm  r28,r28,0,16,23
   0xf79062ac <+764>:   slwi    r0,r0,2
   0xf79062b0 <+768>:   slwi    r11,r11,2
   0xf79062b4 <+772>:   slwi    r31,r31,2
   0xf79062b8 <+776>:   lwzx    r0,r6,r0
   0xf79062bc <+780>:   lwzx    r11,r3,r11
   0xf79062c0 <+784>:   or      r10,r10,r28
   0xf79062c4 <+788>:   or      r8,r8,r29
   0xf79062c8 <+792>:   lwz     r28,8(r26)
   0xf79062cc <+796>:   lwz     r29,12(r26)
   0xf79062d0 <+800>:   lwzx    r3,r5,r31
   0xf79062d4 <+804>:   clrlwi  r0,r0,24
   0xf79062d8 <+808>:   clrrwi  r9,r9,24
   0xf79062dc <+812>:   lbz     r5,47(r1)
   0xf79062e0 <+816>:   or      r10,r10,r0
   0xf79062e4 <+820>:   rlwinm  r11,r11,0,8,15
   0xf79062e8 <+824>:   lwz     r0,0(r26)
   0xf79062ec <+828>:   xor     r10,r10,r29
   0xf79062f0 <+832>:   or      r9,r9,r11
   0xf79062f4 <+836>:   slwi    r5,r5,2
   0xf79062f8 <+840>:   rlwinm  r3,r3,0,16,23
   0xf79062fc <+844>:   lwzx    r6,r6,r5
   0xf7906300 <+848>:   stw     r10,12(r24)
   0xf7906304 <+852>:   or      r9,r9,r3
   0xf7906308 <+856>:   xor     r7,r7,r27
   0xf790630c <+860>:   xor     r8,r8,r28
   0xf7906310 <+864>:   clrlwi  r10,r6,24
   0xf7906314 <+868>:   stw     r7,4(r24)
   0xf7906318 <+872>:   or      r9,r9,r10
   0xf790631c <+876>:   stw     r8,8(r24)
   0xf7906320 <+880>:   xor     r9,r9,r0
   0xf7906324 <+884>:   stw     r9,0(r24)
   0xf7906328 <+888>:   bne     0xf79063a0 <rijndael_encryptBlock128+1008>
   0xf790632c <+892>:   lwz     r10,92(r1)
   0xf7906330 <+896>:   lwz     r9,-28680(r2)
   0xf7906334 <+900>:   xor.    r10,r10,r9
   0xf7906338 <+904>:   li      r9,0
   0xf790633c <+908>:   bne     0xf79063e4 <rijndael_encryptBlock128+1076>
   0xf7906340 <+912>:   lwz     r0,164(r1)
   0xf7906344 <+916>:   lwz     r24,128(r1)
   0xf7906348 <+920>:   lwz     r25,132(r1)
   0xf790634c <+924>:   lwz     r26,136(r1)
   0xf7906350 <+928>:   lwz     r27,140(r1)
   0xf7906354 <+932>:   lwz     r28,144(r1)
   0xf7906358 <+936>:   mtlr    r0
   0xf790635c <+940>:   lwz     r29,148(r1)
   0xf7906360 <+944>:   lwz     r30,152(r1)
   0xf7906364 <+948>:   lwz     r31,156(r1)
   0xf7906368 <+952>:   addi    r1,r1,160
   0xf790636c <+956>:   blr
   0xf7906370 <+960>:   lwz     r6,0(r5)
   0xf7906374 <+964>:   lwz     r7,4(r5)
   0xf7906378 <+968>:   addi    r9,r1,60
   0xf790637c <+972>:   lwz     r8,8(r5)
   0xf7906380 <+976>:   lwz     r10,12(r5)
   0xf7906384 <+980>:   mr      r5,r9
   0xf7906388 <+984>:   stw     r6,60(r1)
   0xf790638c <+988>:   stw     r7,64(r1)
   0xf7906390 <+992>:   stw     r8,68(r1)
   0xf7906394 <+996>:   stw     r10,72(r1)
   0xf7906398 <+1000>:  b       0xf7906000 <rijndael_encryptBlock128+80>
   0xf790639c <+1004>:  ori     r2,r2,0
   0xf79063a0 <+1008>:  lwz     r7,76(r1)
   0xf79063a4 <+1012>:  lwz     r8,80(r1)
   0xf79063a8 <+1016>:  lwz     r10,84(r1)
   0xf79063ac <+1020>:  lwz     r9,88(r1)
   0xf79063b0 <+1024>:  stw     r7,0(r4)
   0xf79063b4 <+1028>:  stw     r8,4(r4)
   0xf79063b8 <+1032>:  stw     r10,8(r4)
   0xf79063bc <+1036>:  stw     r9,12(r4)
   0xf79063c0 <+1040>:  b       0xf790632c <rijndael_encryptBlock128+892>
   0xf79063c4 <+1044>:  nop
   0xf79063c8 <+1048>:  nop
   0xf79063cc <+1052>:  ori     r2,r2,0
   0xf79063d0 <+1056>:  lwz     r5,-32768(r30)
   0xf79063d4 <+1060>:  lwz     r6,-32764(r30)
   0xf79063d8 <+1064>:  lwz     r11,-32760(r30)
   0xf79063dc <+1068>:  lwz     r3,-32756(r30)
   0xf79063e0 <+1072>:  b       0xf79061c8 <rijndael_encryptBlock128+536>
   0xf79063e4 <+1076>:  stw     r16,96(r1)
   0xf79063e8 <+1080>:  stw     r17,100(r1)
   0xf79063ec <+1084>:  stw     r18,104(r1)
   0xf79063f0 <+1088>:  stw     r19,108(r1)
   0xf79063f4 <+1092>:  stw     r20,112(r1)
   0xf79063f8 <+1096>:  stw     r21,116(r1)
   0xf79063fc <+1100>:  stw     r22,120(r1)
   0xf7906400 <+1104>:  stw     r23,124(r1)
   0xf7906404 <+1108>:  bl      0xf7979820 <__stack_chk_fail_local>
End of assembler dump.
(gdb) q
A debugging session is active.

        Inferior 1 [process 17849] will be killed.

Quit anyway? (y or n) y
$ gdb --args ecryptfs-wrap-passphrase asdf
GNU gdb (Debian 13.2-1) 13.2
Copyright (C) 2023 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 "powerpc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ecryptfs-wrap-passphrase...
Reading symbols from 
/usr/lib/debug/.build-id/d8/d1e871d83a1f9276b85ed0292169652b01e59a.debug...
(gdb) run
Starting program: /usr/bin/ecryptfs-wrap-passphrase asdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/powerpc-linux-gnu/libthread_db.so.1".
Passphrase to wrap: 
Wrapping passphrase: 
[Inferior 1 (process 5486) exited normally]
(gdb) disass rijndael_encryptBlock128 
Dump of assembler code for function rijndael_encryptBlock128:
   0xf7905f90 <+0>:     stwu    r1,-160(r1)
   0xf7905f94 <+4>:     mflr    r0
   0xf7905f98 <+8>:     bcl     20,4*cr7+so,0xf7905f9c 
<rijndael_encryptBlock128+12>
   0xf7905f9c <+12>:    andi.   r9,r5,3
   0xf7905fa0 <+16>:    stw     r30,152(r1)
   0xf7905fa4 <+20>:    stw     r0,164(r1)
   0xf7905fa8 <+24>:    stw     r22,120(r1)
   0xf7905fac <+28>:    stw     r23,124(r1)
   0xf7905fb0 <+32>:    stw     r24,128(r1)
   0xf7905fb4 <+36>:    stw     r28,144(r1)
   0xf7905fb8 <+40>:    stw     r29,148(r1)
   0xf7905fbc <+44>:    stw     r31,156(r1)
   0xf7905fc0 <+48>:    mflr    r30
   0xf7905fc4 <+52>:    addis   r30,r30,13
   0xf7905fc8 <+56>:    addi    r30,r30,6676
   0xf7905fcc <+60>:    lwz     r9,-28680(r2)
   0xf7905fd0 <+64>:    stw     r9,92(r1)
   0xf7905fd4 <+68>:    li      r9,0
   0xf7905fd8 <+72>:    bne     0xf79063a0 <rijndael_encryptBlock128+1040>
   0xf7905fdc <+76>:    andi.   r9,r4,3
   0xf7905fe0 <+80>:    mr      r22,r4
   0xf7905fe4 <+84>:    beq     0xf7905fec <rijndael_encryptBlock128+92>
   0xf7905fe8 <+88>:    addi    r22,r1,76
   0xf7905fec <+92>:    neg     r10,r3
   0xf7905ff0 <+96>:    addi    r9,r3,15
   0xf7905ff4 <+100>:   lvx     v1,0,r5
   0xf7905ff8 <+104>:   lvx     v0,0,r3
   0xf7905ffc <+108>:   neg     r7,r5
   0xf7906000 <+112>:   addi    r8,r5,15
   0xf7906004 <+116>:   lvsr    v12,0,r10
   0xf7906008 <+120>:   lvx     v13,0,r9
   0xf790600c <+124>:   lvsr    v10,0,r7
   0xf7906010 <+128>:   lvx     v11,0,r8
   0xf7906014 <+132>:   li      r9,-64
   0xf7906018 <+136>:   addi    r10,r1,96
   0xf790601c <+140>:   lwz     r23,244(r3)
   0xf7906020 <+144>:   addi    r24,r3,16
   0xf7906024 <+148>:   vperm   v0,v0,v13,v12
   0xf7906028 <+152>:   vperm   v1,v1,v11,v10
   0xf790602c <+156>:   cmplwi  cr7,r23,1
   0xf7906030 <+160>:   vxor    v0,v0,v1
--Type <RET> for more, q to quit, c to continue without paging--c
   0xf7906034 <+164>:   stvx    v0,r10,r9
   0xf7906038 <+168>:   ble     cr7,0xf7906400 <rijndael_encryptBlock128+1136>
   0xf790603c <+172>:   stw     r16,96(r1)
   0xf7906040 <+176>:   stw     r17,100(r1)
   0xf7906044 <+180>:   stw     r18,104(r1)
   0xf7906048 <+184>:   stw     r19,108(r1)
   0xf790604c <+188>:   stw     r20,112(r1)
   0xf7906050 <+192>:   stw     r21,116(r1)
   0xf7906054 <+196>:   stw     r27,140(r1)
   0xf7906058 <+200>:   addi    r9,r23,-1
   0xf790605c <+204>:   lwz     r3,-32768(r30)
   0xf7906060 <+208>:   lwz     r5,-32764(r30)
   0xf7906064 <+212>:   lwz     r12,-32760(r30)
   0xf7906068 <+216>:   mr      r6,r24
   0xf790606c <+220>:   mtctr   r9
   0xf7906070 <+224>:   lwz     r11,-32756(r30)
   0xf7906074 <+228>:   stw     r25,132(r1)
   0xf7906078 <+232>:   li      r25,-80
   0xf790607c <+236>:   stw     r26,136(r1)
   0xf7906080 <+240>:   li      r26,-64
   0xf7906084 <+244>:   nop
   0xf7906088 <+248>:   nop
   0xf790608c <+252>:   ori     r2,r2,0
   0xf7906090 <+256>:   lbz     r28,37(r1)
   0xf7906094 <+260>:   lbz     r29,36(r1)
   0xf7906098 <+264>:   neg     r17,r6
   0xf790609c <+268>:   addi    r27,r6,15
   0xf79060a0 <+272>:   lbz     r31,41(r1)
   0xf79060a4 <+276>:   lbz     r10,40(r1)
   0xf79060a8 <+280>:   lbz     r0,45(r1)
   0xf79060ac <+284>:   lbz     r9,44(r1)
   0xf79060b0 <+288>:   slwi    r28,r28,2
   0xf79060b4 <+292>:   slwi    r29,r29,2
   0xf79060b8 <+296>:   lbz     r8,33(r1)
   0xf79060bc <+300>:   lbz     r21,32(r1)
   0xf79060c0 <+304>:   slwi    r31,r31,2
   0xf79060c4 <+308>:   slwi    r10,r10,2
   0xf79060c8 <+312>:   slwi    r0,r0,2
   0xf79060cc <+316>:   slwi    r9,r9,2
   0xf79060d0 <+320>:   lwzx    r16,r5,r28
   0xf79060d4 <+324>:   lbz     r7,42(r1)
   0xf79060d8 <+328>:   slwi    r8,r8,2
   0xf79060dc <+332>:   lwzx    r28,r5,r31
   0xf79060e0 <+336>:   lwzx    r29,r3,r29
   0xf79060e4 <+340>:   slwi    r21,r21,2
   0xf79060e8 <+344>:   lwzx    r31,r5,r0
   0xf79060ec <+348>:   lwzx    r10,r3,r10
   0xf79060f0 <+352>:   slwi    r7,r7,2
   0xf79060f4 <+356>:   lwzx    r0,r5,r8
   0xf79060f8 <+360>:   lwzx    r9,r3,r9
   0xf79060fc <+364>:   xor     r29,r29,r28
   0xf7906100 <+368>:   lbz     r18,46(r1)
   0xf7906104 <+372>:   lbz     r19,34(r1)
   0xf7906108 <+376>:   xor     r10,r10,r31
   0xf790610c <+380>:   lbz     r20,38(r1)
   0xf7906110 <+384>:   lbz     r8,47(r1)
   0xf7906114 <+388>:   xor     r9,r9,r0
   0xf7906118 <+392>:   lwzx    r21,r3,r21
   0xf790611c <+396>:   lbz     r28,35(r1)
   0xf7906120 <+400>:   slwi    r18,r18,2
   0xf7906124 <+404>:   slwi    r19,r19,2
   0xf7906128 <+408>:   lbz     r31,39(r1)
   0xf790612c <+412>:   lbz     r0,43(r1)
   0xf7906130 <+416>:   slwi    r20,r20,2
   0xf7906134 <+420>:   lwzx    r7,r12,r7
   0xf7906138 <+424>:   xor     r21,r21,r16
   0xf790613c <+428>:   lwzx    r19,r12,r19
   0xf7906140 <+432>:   slwi    r16,r8,2
   0xf7906144 <+436>:   lwzx    r20,r12,r20
   0xf7906148 <+440>:   lwzx    r8,r12,r18
   0xf790614c <+444>:   slwi    r28,r28,2
   0xf7906150 <+448>:   slwi    r31,r31,2
   0xf7906154 <+452>:   slwi    r0,r0,2
   0xf7906158 <+456>:   lvsr    v13,0,r17
   0xf790615c <+460>:   lwzx    r28,r11,r28
   0xf7906160 <+464>:   xor     r7,r21,r7
   0xf7906164 <+468>:   lwzx    r31,r11,r31
   0xf7906168 <+472>:   lwzx    r21,r11,r16
   0xf790616c <+476>:   xor     r8,r29,r8
   0xf7906170 <+480>:   xor     r10,r10,r19
   0xf7906174 <+484>:   lwzx    r0,r11,r0
   0xf7906178 <+488>:   xor     r9,r9,r20
   0xf790617c <+492>:   xor     r8,r8,r28
   0xf7906180 <+496>:   xor     r7,r7,r21
   0xf7906184 <+500>:   xor     r10,r10,r31
   0xf7906188 <+504>:   xor     r9,r9,r0
   0xf790618c <+508>:   stw     r7,16(r1)
   0xf7906190 <+512>:   stw     r9,28(r1)
   0xf7906194 <+516>:   stw     r8,20(r1)
   0xf7906198 <+520>:   stw     r10,24(r1)
   0xf790619c <+524>:   addi    r9,r1,96
   0xf79061a0 <+528>:   lvx     v0,0,r6
   0xf79061a4 <+532>:   lvx     v1,0,r27
   0xf79061a8 <+536>:   addi    r6,r6,16
   0xf79061ac <+540>:   vperm   v0,v0,v1,v13
   0xf79061b0 <+544>:   lvx     v1,r9,r25
   0xf79061b4 <+548>:   vxor    v0,v1,v0
   0xf79061b8 <+552>:   stvx    v0,r9,r26
   0xf79061bc <+556>:   bdnz    0xf7906090 <rijndael_encryptBlock128+256>
   0xf79061c0 <+560>:   slwi    r23,r23,4
   0xf79061c4 <+564>:   lwz     r16,96(r1)
   0xf79061c8 <+568>:   lwz     r17,100(r1)
   0xf79061cc <+572>:   addi    r23,r23,-16
   0xf79061d0 <+576>:   lwz     r18,104(r1)
   0xf79061d4 <+580>:   lwz     r19,108(r1)
   0xf79061d8 <+584>:   lwz     r20,112(r1)
   0xf79061dc <+588>:   lwz     r21,116(r1)
   0xf79061e0 <+592>:   add     r24,r24,r23
   0xf79061e4 <+596>:   lwz     r25,132(r1)
   0xf79061e8 <+600>:   lwz     r26,136(r1)
   0xf79061ec <+604>:   lwz     r27,140(r1)
   0xf79061f0 <+608>:   lbz     r7,36(r1)
   0xf79061f4 <+612>:   lbz     r10,41(r1)
   0xf79061f8 <+616>:   lbz     r8,40(r1)
   0xf79061fc <+620>:   lbz     r31,45(r1)
   0xf7906200 <+624>:   slwi    r7,r7,2
   0xf7906204 <+628>:   slwi    r10,r10,2
   0xf7906208 <+632>:   lbz     r6,46(r1)
   0xf790620c <+636>:   lbz     r0,35(r1)
   0xf7906210 <+640>:   lwzx    r10,r11,r10
   0xf7906214 <+644>:   lwzx    r7,r12,r7
   0xf7906218 <+648>:   slwi    r31,r31,2
   0xf790621c <+652>:   slwi    r8,r8,2
   0xf7906220 <+656>:   lwzx    r28,r11,r31
   0xf7906224 <+660>:   lwzx    r8,r12,r8
   0xf7906228 <+664>:   slwi    r6,r6,2
   0xf790622c <+668>:   slwi    r0,r0,2
   0xf7906230 <+672>:   rlwinm  r10,r10,0,8,15
   0xf7906234 <+676>:   clrrwi  r7,r7,24
   0xf7906238 <+680>:   lbz     r9,34(r1)
   0xf790623c <+684>:   lwzx    r6,r3,r6
   0xf7906240 <+688>:   lbz     r29,33(r1)
   0xf7906244 <+692>:   or      r7,r7,r10
   0xf7906248 <+696>:   lbz     r10,44(r1)
   0xf790624c <+700>:   rlwinm  r28,r28,0,8,15
   0xf7906250 <+704>:   clrrwi  r8,r8,24
   0xf7906254 <+708>:   rlwinm  r6,r6,0,16,23
   0xf7906258 <+712>:   lwzx    r0,r5,r0
   0xf790625c <+716>:   lbz     r31,39(r1)
   0xf7906260 <+720>:   or      r8,r8,r28
   0xf7906264 <+724>:   slwi    r9,r9,2
   0xf7906268 <+728>:   lbz     r28,38(r1)
   0xf790626c <+732>:   slwi    r10,r10,2
   0xf7906270 <+736>:   slwi    r29,r29,2
   0xf7906274 <+740>:   lwzx    r9,r3,r9
   0xf7906278 <+744>:   lwzx    r29,r11,r29
   0xf790627c <+748>:   lwzx    r10,r12,r10
   0xf7906280 <+752>:   or      r7,r7,r6
   0xf7906284 <+756>:   slwi    r28,r28,2
   0xf7906288 <+760>:   lbz     r6,43(r1)
   0xf790628c <+764>:   lwzx    r28,r3,r28
   0xf7906290 <+768>:   rlwinm  r9,r9,0,16,23
   0xf7906294 <+772>:   clrlwi  r0,r0,24
   0xf7906298 <+776>:   rlwinm  r29,r29,0,8,15
   0xf790629c <+780>:   slwi    r31,r31,2
   0xf79062a0 <+784>:   clrrwi  r10,r10,24
   0xf79062a4 <+788>:   slwi    r6,r6,2
   0xf79062a8 <+792>:   lwzx    r31,r5,r31
   0xf79062ac <+796>:   lwzx    r6,r5,r6
   0xf79062b0 <+800>:   or      r8,r8,r9
   0xf79062b4 <+804>:   or      r10,r10,r29
   0xf79062b8 <+808>:   lbz     r9,32(r1)
   0xf79062bc <+812>:   lbz     r29,37(r1)
   0xf79062c0 <+816>:   or      r7,r7,r0
   0xf79062c4 <+820>:   lbz     r0,42(r1)
   0xf79062c8 <+824>:   rlwinm  r28,r28,0,16,23
   0xf79062cc <+828>:   clrlwi  r31,r31,24
   0xf79062d0 <+832>:   clrlwi  r6,r6,24
   0xf79062d4 <+836>:   or      r10,r10,r28
   0xf79062d8 <+840>:   slwi    r29,r29,2
   0xf79062dc <+844>:   lwz     r28,4(r24)
   0xf79062e0 <+848>:   slwi    r0,r0,2
   0xf79062e4 <+852>:   slwi    r9,r9,2
   0xf79062e8 <+856>:   lwzx    r11,r11,r29
   0xf79062ec <+860>:   lwz     r29,8(r24)
   0xf79062f0 <+864>:   lwzx    r9,r12,r9
   0xf79062f4 <+868>:   or      r8,r8,r31
   0xf79062f8 <+872>:   or      r10,r10,r6
   0xf79062fc <+876>:   lwz     r31,12(r24)
   0xf7906300 <+880>:   lwzx    r3,r3,r0
   0xf7906304 <+884>:   lbz     r6,47(r1)
   0xf7906308 <+888>:   rlwinm  r11,r11,0,8,15
   0xf790630c <+892>:   xor     r7,r7,r28
   0xf7906310 <+896>:   clrrwi  r9,r9,24
   0xf7906314 <+900>:   xor     r10,r10,r31
   0xf7906318 <+904>:   lwz     r0,0(r24)
   0xf790631c <+908>:   slwi    r6,r6,2
   0xf7906320 <+912>:   or      r9,r9,r11
   0xf7906324 <+916>:   lwzx    r6,r5,r6
   0xf7906328 <+920>:   rlwinm  r3,r3,0,16,23
   0xf790632c <+924>:   stw     r10,12(r22)
   0xf7906330 <+928>:   or      r9,r9,r3
   0xf7906334 <+932>:   xor     r8,r8,r29
   0xf7906338 <+936>:   clrlwi  r10,r6,24
   0xf790633c <+940>:   stw     r7,4(r22)
   0xf7906340 <+944>:   or      r9,r9,r10
   0xf7906344 <+948>:   stw     r8,8(r22)
   0xf7906348 <+952>:   xor     r9,r9,r0
   0xf790634c <+956>:   stw     r9,0(r22)
   0xf7906350 <+960>:   bne     0xf79063d0 <rijndael_encryptBlock128+1088>
   0xf7906354 <+964>:   lwz     r10,92(r1)
   0xf7906358 <+968>:   lwz     r9,-28680(r2)
   0xf790635c <+972>:   xor.    r10,r10,r9
   0xf7906360 <+976>:   li      r9,0
   0xf7906364 <+980>:   bne     0xf7906414 <rijndael_encryptBlock128+1156>
   0xf7906368 <+984>:   lwz     r0,164(r1)
   0xf790636c <+988>:   lwz     r22,120(r1)
   0xf7906370 <+992>:   lwz     r23,124(r1)
   0xf7906374 <+996>:   lwz     r24,128(r1)
   0xf7906378 <+1000>:  lwz     r28,144(r1)
   0xf790637c <+1004>:  lwz     r29,148(r1)
   0xf7906380 <+1008>:  mtlr    r0
   0xf7906384 <+1012>:  lwz     r30,152(r1)
   0xf7906388 <+1016>:  lwz     r31,156(r1)
   0xf790638c <+1020>:  addi    r1,r1,160
   0xf7906390 <+1024>:  blr
   0xf7906394 <+1028>:  nop
   0xf7906398 <+1032>:  nop
   0xf790639c <+1036>:  ori     r2,r2,0
   0xf79063a0 <+1040>:  lwz     r6,0(r5)
   0xf79063a4 <+1044>:  lwz     r7,4(r5)
   0xf79063a8 <+1048>:  addi    r9,r1,60
   0xf79063ac <+1052>:  lwz     r8,8(r5)
   0xf79063b0 <+1056>:  lwz     r10,12(r5)
   0xf79063b4 <+1060>:  mr      r5,r9
   0xf79063b8 <+1064>:  stw     r6,60(r1)
   0xf79063bc <+1068>:  stw     r7,64(r1)
   0xf79063c0 <+1072>:  stw     r8,68(r1)
   0xf79063c4 <+1076>:  stw     r10,72(r1)
   0xf79063c8 <+1080>:  b       0xf7905fdc <rijndael_encryptBlock128+76>
   0xf79063cc <+1084>:  ori     r2,r2,0
   0xf79063d0 <+1088>:  lwz     r7,76(r1)
   0xf79063d4 <+1092>:  lwz     r8,80(r1)
   0xf79063d8 <+1096>:  lwz     r10,84(r1)
   0xf79063dc <+1100>:  lwz     r9,88(r1)
   0xf79063e0 <+1104>:  stw     r7,0(r4)
   0xf79063e4 <+1108>:  stw     r8,4(r4)
   0xf79063e8 <+1112>:  stw     r10,8(r4)
   0xf79063ec <+1116>:  stw     r9,12(r4)
   0xf79063f0 <+1120>:  b       0xf7906354 <rijndael_encryptBlock128+964>
   0xf79063f4 <+1124>:  nop
   0xf79063f8 <+1128>:  nop
   0xf79063fc <+1132>:  ori     r2,r2,0
   0xf7906400 <+1136>:  lwz     r3,-32768(r30)
   0xf7906404 <+1140>:  lwz     r5,-32764(r30)
   0xf7906408 <+1144>:  lwz     r12,-32760(r30)
   0xf790640c <+1148>:  lwz     r11,-32756(r30)
   0xf7906410 <+1152>:  b       0xf79061f0 <rijndael_encryptBlock128+608>
   0xf7906414 <+1156>:  stw     r16,96(r1)
   0xf7906418 <+1160>:  stw     r17,100(r1)
   0xf790641c <+1164>:  stw     r18,104(r1)
   0xf7906420 <+1168>:  stw     r19,108(r1)
   0xf7906424 <+1172>:  stw     r20,112(r1)
   0xf7906428 <+1176>:  stw     r21,116(r1)
   0xf790642c <+1180>:  stw     r25,132(r1)
   0xf7906430 <+1184>:  stw     r26,136(r1)
   0xf7906434 <+1188>:  stw     r27,140(r1)
   0xf7906438 <+1192>:  bl      0xf7979940 <__stack_chk_fail_local>
End of assembler dump.
(gdb) 

Reply via email to