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