[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