Bug#738981: Fwd: Bug#738981: Switch to use generic_fpu for ARM
Lennart Sorensen
lsorense at csclub.uwaterloo.ca
Tue Feb 25 16:20:06 UTC 2014
On Tue, Feb 25, 2014 at 11:18:50AM +0100, Thomas Orgis wrote:
> Am Tue, 25 Feb 2014 17:37:41 +0900
> schrieb Taihei Momma <tmkk at mac.com>:
>
> > #0 0xb6fb9332 in INT123_dct64_neon () at dct64_neon.S:48
> > ^
> > not a multiple of 4.
>
> Oh, d'oh! It could be that simple.
>
> > I've just committed a fix to mpg123 repository
>
> I generated a new snapshot,
>
> http://mpg123.org/snapshot/mpg123-20140225111416.tar.bz2 ,
>
> and also attached the patch for the rather small change that hopefully
> has a big effect. Care to test this?
>
>
> Alrighty then,
>
> Thomas
>
> --
> Thomas Orgis - Source Mage GNU/Linux Developer (http://www.sourcemage.org)
> OrgisNetzOrganisation ---)=- http://orgis.org
> GPG public key D446D524: http://thomas.orgis.org/public_key
> Fingerprint: 7236 3885 A742 B736 E0C8 9721 9B4C 52BC D446 D524
> Index: src/libmpg123/dct64_neon_float.S
> ===================================================================
> --- src/libmpg123/dct64_neon_float.S (Revision 3514)
> +++ src/libmpg123/dct64_neon_float.S (Revision 3515)
> @@ -44,6 +44,7 @@
> .word 1060439283
> .word 1060439283
> .globl ASM_NAME(dct64_real_neon)
> + ALIGN4
> ASM_NAME(dct64_real_neon):
> vpush {q4-q7}
>
> Index: src/libmpg123/dct64_neon.S
> ===================================================================
> --- src/libmpg123/dct64_neon.S (Revision 3514)
> +++ src/libmpg123/dct64_neon.S (Revision 3515)
> @@ -44,6 +44,7 @@
> .word 1060439283
> .word 1060439283
> .globl ASM_NAME(dct64_neon)
> + ALIGN4
> ASM_NAME(dct64_neon):
> vpush {q4-q7}
>
root at rceng05:/mpg123-20140225111416# gdb --args /tmp/mpginst/usr/local/bin/mpg123 -e s16 -q --cpu NEON -t /convergence_-_points_of_view/*mp3
GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
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 "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /tmp/mpginst/usr/local/bin/mpg123...done.
(gdb) run
Starting program: /tmp/mpginst/usr/local/bin/mpg123 -e s16 -q --cpu NEON -t /convergence_-_points_of_view/01\ -\ Bleed.mp3 /convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 /convergence_-_points_of_view/03\ -\ Listen.mp3 /convergence_-_points_of_view/04\ -\ Six\ feet\ under.mp3 /convergence_-_points_of_view/05\ -\ Always\ the\ same.mp3 /convergence_-_points_of_view/06\ -\ Breath.mp3 /convergence_-_points_of_view/07\ -\ Vanished\ memories.mp3 /convergence_-_points_of_view/08\ -\ Silent.mp3 /convergence_-_points_of_view/09\ -\ Nothing\ else.mp3 /convergence_-_points_of_view/10\ -\ Train\ to\ leave.mp3
Program received signal SIGILL, Illegal instruction.
0xb6fb9332 in INT123_dct64_neon () at dct64_neon.S:49
49 vpush {q4-q7}
(gdb) disassemble
Dump of assembler code for function INT123_dct64_neon:
0xb6fb9330 <+0>: vpush {d8-d15}
0xb6fb9334 <+4>: sub r3, pc, #140 ; 0x8c
0xb6fb9338 <+8>: vld1.32 {d0-d3}, [r2]!
0xb6fb933c <+12>: vld1.32 {d4-d7}, [r2]!
0xb6fb9340 <+16>: vld1.32 {d8-d11}, [r2]!
0xb6fb9344 <+20>: vld1.32 {d12-d15}, [r2]
0xb6fb9348 <+24>: vld1.32 {d24-d27}, [r3 :128]!
0xb6fb934c <+28>: vld1.32 {d28-d31}, [r3 :128]!
0xb6fb9350 <+32>: vrev64.32 q4, q4
0xb6fb9354 <+36>: vrev64.32 q5, q5
0xb6fb9358 <+40>: vrev64.32 q6, q6
0xb6fb935c <+44>: vrev64.32 q7, q7
0xb6fb9360 <+48>: vswp d8, d9
0xb6fb9364 <+52>: vswp d10, d11
0xb6fb9368 <+56>: vswp d12, d13
0xb6fb936c <+60>: vswp d14, d15
0xb6fb9370 <+64>: vsub.f32 q8, q0, q7
0xb6fb9374 <+68>: vsub.f32 q9, q1, q6
0xb6fb9378 <+72>: vsub.f32 q10, q2, q5
0xb6fb937c <+76>: vsub.f32 q11, q3, q4
0xb6fb9380 <+80>: vadd.f32 q0, q0, q7
0xb6fb9384 <+84>: vadd.f32 q1, q1, q6
0xb6fb9388 <+88>: vadd.f32 q2, q2, q5
0xb6fb938c <+92>: vadd.f32 q3, q3, q4
0xb6fb9390 <+96>: vmul.f32 q4, q8, q12
0xb6fb9394 <+100>: vmul.f32 q5, q9, q13
0xb6fb9398 <+104>: vmul.f32 q6, q10, q14
0xb6fb939c <+108>: vmul.f32 q7, q11, q15
0xb6fb93a0 <+112>: vld1.32 {d24-d27}, [r3 :128]!
0xb6fb93a4 <+116>: vld1.32 {d28-d31}, [r3 :128]
0xb6fb93a8 <+120>: vrev64.32 q2, q2
0xb6fb93ac <+124>: vrev64.32 q3, q3
0xb6fb93b0 <+128>: vrev64.32 q6, q6
0xb6fb93b4 <+132>: vrev64.32 q7, q7
0xb6fb93b8 <+136>: vswp d4, d5
0xb6fb93bc <+140>: vswp d6, d7
0xb6fb93c0 <+144>: vswp d12, d13
0xb6fb93c4 <+148>: vswp d14, d15
0xb6fb93c8 <+152>: vsub.f32 q8, q0, q3
0xb6fb93cc <+156>: vsub.f32 q9, q1, q2
0xb6fb93d0 <+160>: vsub.f32 q10, q4, q7
0xb6fb93d4 <+164>: vsub.f32 q11, q5, q6
0xb6fb93d8 <+168>: vadd.f32 q0, q0, q3
0xb6fb93dc <+172>: vadd.f32 q1, q1, q2
0xb6fb93e0 <+176>: vadd.f32 q4, q4, q7
0xb6fb93e4 <+180>: vadd.f32 q5, q5, q6
0xb6fb93e8 <+184>: vmul.f32 q2, q8, q12
0xb6fb93ec <+188>: vmul.f32 q3, q9, q13
0xb6fb93f0 <+192>: vmul.f32 q6, q10, q12
0xb6fb93f4 <+196>: vmul.f32 q7, q11, q13
0xb6fb93f8 <+200>: vrev64.32 q1, q1
0xb6fb93fc <+204>: vrev64.32 q3, q3
0xb6fb9400 <+208>: vrev64.32 q5, q5
0xb6fb9404 <+212>: vrev64.32 q7, q7
...etc...
So that didn't seem to help unfortunately.
--
Len Sorensen
More information about the pkg-multimedia-maintainers
mailing list