[x264-devel] PowerPC bug?

Joel Schopp joel.schopp at gmail.com
Thu Feb 1 02:39:33 CET 2007


Every time I run x264 it crashes with an illigal instruction.  I'm
running on a Fedora Core 5 box with a cell (PowerPC) processor.  Any
suggestions welcome.  The same source compiled on my Intel based
laptop runs fine with the same input file.

Debug output below.

--------------------------------------------

[root at gamma x264b]# gdb ./x264
GNU gdb Red Hat Linux (6.3.0.0-1.122rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "ppc-redhat-linux-gnu"...Using host
libthread_db library "/lib/libthread_db.so.1".

(gdb) r ydl_ps3.yuv -o ydl_ps3.h264 480x270
Starting program: /home/jschopp/x264b/x264 ydl_ps3.yuv -o ydl_ps3.h264 480x270
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x100000
[Thread debugging using libthread_db enabled]
[New Thread -134392864 (LWP 30772)]
x264 [warning]: width or height not divisible by 16 (480x270),
compression will suffer.
x264 [info]: using cpu capabilities Altivec

Program received signal SIGILL, Illegal instruction.
[Switching to Thread -134392864 (LWP 30772)]
0x1005d9c4 in pixel_satd_16x16_altivec (pix1=0x10367470 '\200'
<repeats 16 times>, i_pix1=32, pix2=0x103672b0 "YUV4MPEG2 W480 H",
'\020' <repeats 184 times>...,
    i_pix2=16) at common/ppc/pixel.c:480
480     {
(gdb) bt
#0  0x1005d9c4 in pixel_satd_16x16_altivec (pix1=0x10367470 '\200'
<repeats 16 times>, i_pix1=32, pix2=0x103672b0 "YUV4MPEG2 W480 H",
'\020' <repeats 184 times>...,
    i_pix2=16) at common/ppc/pixel.c:480
#1  0x10027688 in x264_mb_analyse_intra (h=0x10365300, a=0xff9cc428,
i_satd_inter=268435456) at encoder/analyse.c:553
#2  0x10037308 in x264_macroblock_analyse (h=0x10365300) at
encoder/analyse.c:2045
#3  0x1000d340 in x264_slices_write (h=0x10365300) at encoder/encoder.c:1054
#4  0x1000e628 in x264_encoder_encode (h=0x10365300,
pp_nal=0xff9cf0e0, pi_nal=0xff9cf0e4, pic_in=0xff9cf378,
pic_out=0xff9cf0a8) at encoder/encoder.c:1475
#5  0x10001cbc in Encode_frame (h=Variable "h" is not available.
) at x264.c:724
#6  0x100028e8 in main (argc=Variable "argc" is not available.
) at x264.c:810
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x1005d9a4 to 0x1005d9e4:
0x1005d9a4 <pixel_satd_4x4_altivec+412>:        stvewx  v0,r0,r11
0x1005d9a8 <pixel_satd_4x4_altivec+416>:        lwz     r3,16(r1)
0x1005d9ac <pixel_satd_4x4_altivec+420>:        srawi   r3,r3,1
0x1005d9b0 <pixel_satd_4x4_altivec+424>:        addze   r3,r3
0x1005d9b4 <pixel_satd_4x4_altivec+428>:        addi    r1,r1,32
0x1005d9b8 <pixel_satd_4x4_altivec+432>:        blr
0x1005d9bc <pixel_satd_16x16_altivec+0>:        stwu    r1,-64(r1)
0x1005d9c0 <pixel_satd_16x16_altivec+4>:        li      r0,32
0x1005d9c4 <pixel_satd_16x16_altivec+8>:        stvx    v31,r1,r0
0x1005d9c8 <pixel_satd_16x16_altivec+12>:       mflr    r0
0x1005d9cc <pixel_satd_16x16_altivec+16>:       stw     r0,68(r1)
0x1005d9d0 <pixel_satd_16x16_altivec+20>:       vspltisb v11,0
0x1005d9d4 <pixel_satd_16x16_altivec+24>:       lvx     v2,r0,r3
0x1005d9d8 <pixel_satd_16x16_altivec+28>:       addi    r9,r3,15
0x1005d9dc <pixel_satd_16x16_altivec+32>:       lvx     v1,r0,r9
0x1005d9e0 <pixel_satd_16x16_altivec+36>:       lvsl    v0,r0,r3
End of assembler dump.
(gdb) info all-registers
r0             0x20     32
r1             0xff9cc300       4288463616
r2             0xf7fdc840       4160604224
r3             0x10367470       272004208
r4             0x20     32
r5             0x103672b0       272003760
r6             0x10     16
r7             0x20     32
r8             0xffffffc0       4294967232
r9             0x10     16
r10            0x103672b0       272003760
r11            0x5c     92
r12            0xfec7a10        267155984
r13            0x1008c54c       269010252
r14            0xff9cf0a8       4288475304
r15            0x10365300       271995648
r16            0x10366328       271999784
r17            0x10367470       272004208
r18            0x0      0
r19            0x100660e0       268853472
r20            0x1006619c       268853660
r21            0x10066164       268853604
r22            0x100660e0       268853472
r23            0x10365300       271995648
r24            0xff9cc428       4288463912
r25            0xff9cc34c       4288463692
r26            0x10365300       271995648
r27            0x1006ca04       268880388
r28            0x1006c2c8       268878536
r29            0x18     24
r30            0x0      0
r31            0x6      6
f0             -nan(0x8000082004000)    (raw 0xfff8000082004000)
f1             1.3999999761581421       (raw 0x3ff6666660000000)
f2             3.1727149488979165e-16   (raw 0x3cb6dca046000000)
f3             0.00012349999999999999   (raw 0x3f202ff8ec0f8833)
f4             5.4979230187083712e-14   (raw 0x3d2ef35793c76730)
f5             0.50000000000013811      (raw 0x3fe00000000004dc)
f6             0.50000011905070652      (raw 0x3fe000003fea345b)
f7             1.0001395        (raw 0x3ff0009246bf0132)
f8             0        (raw 0x0000000000000000)
f9             -5.8989452955508915e-10  (raw 0xbe0444c4644978e2)
f10            7.1430341015470863e-07   (raw 0x3ea7f7d1cf79abca)
f11            7.6252327300229043e-09   (raw 0x3e4060041a409a62)
f12            64       (raw 0x4050000000000000)
f13            4503601774854144 (raw 0x4330000080000000)
f14            0        (raw 0x0000000000000000)
f15            0        (raw 0x0000000000000000)
f16            0        (raw 0x0000000000000000)
f17            0        (raw 0x0000000000000000)
f18            0        (raw 0x0000000000000000)
f19            0        (raw 0x0000000000000000)
f20            0        (raw 0x0000000000000000)
f21            0        (raw 0x0000000000000000)
f22            0        (raw 0x0000000000000000)
f23            0        (raw 0x0000000000000000)
f24            0        (raw 0x0000000000000000)
f25            0        (raw 0x0000000000000000)
f26            0        (raw 0x0000000000000000)
f27            10       (raw 0x4024000000000000)
f28            1000000  (raw 0x412e848000000000)
f29            4503601774854144 (raw 0x4330000080000000)
f30            4503601774854144 (raw 0x4330000080000000)
f31            0        (raw 0x0000000000000000)
pc             0x1005d9c4       268818884
ps             0x8d932  579890
cr             0x28004484       671106180
lr             0x10027688       268596872
ctr            0x1005d9bc       268818876
xer            0x20000000       536870912
fpscr          0x0      0
vr0            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr1            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr2            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr3            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr4            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr5            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr6            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr7            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr8            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr9            {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr10           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr11           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr12           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr13           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr14           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr15           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr16           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr17           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr18           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr19           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr20           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr21           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr22           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr23           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr24           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr25           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr26           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr27           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr28           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr29           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr30           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr31           {uint128 = 0x00000000000000000000000000000000, v4_float
= {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 =
{0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vscr           0x10000  65536
vrsave         0x0      0

-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html



More information about the x264-devel mailing list