diff -u xmms-1.2.10.old/Input/mpg123/dct36_3dnow.s xmms-1.2.10/Input/mpg123/dct36_3dnow.s --- xmms-1.2.10.old/Input/mpg123/dct36_3dnow.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/dct36_3dnow.s 2006-03-13 22:47:05.000000000 +0100 @@ -32,6 +32,7 @@ pushl %ebp movl %esp,%ebp subl $120,%esp + pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%eax @@ -39,7 +40,10 @@ movl 16(%ebp),%ecx movl 20(%ebp),%edx movl 24(%ebp),%ebx - leal -128(%ebp),%esp + leal -132(%ebp),%esp + + call __i686.get_pc_thunk.di + addl $_GLOBAL_OFFSET_TABLE_, %edi femms movq (%eax),%mm0 @@ -120,9 +124,9 @@ movq 24(%eax),%mm0 movq 48(%eax),%mm1 - movd COS9+12,%mm2 + movd COS9@GOTOFF+12(%edi),%mm2 punpckldq %mm2,%mm2 - movd COS9+24,%mm3 + movd COS9@GOTOFF+24(%edi),%mm3 punpckldq %mm3,%mm3 pfmul %mm2,%mm0 pfmul %mm3,%mm1 @@ -132,41 +136,41 @@ pi2fd %mm7,%mm7 popl %eax movq 8(%eax),%mm2 - movd COS9+4,%mm3 + movd COS9@GOTOFF+4(%edi),%mm3 punpckldq %mm3,%mm3 pfmul %mm3,%mm2 pfadd %mm0,%mm2 movq 40(%eax),%mm3 - movd COS9+20,%mm4 + movd COS9@GOTOFF+20(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfadd %mm3,%mm2 movq 56(%eax),%mm3 - movd COS9+28,%mm4 + movd COS9@GOTOFF+28(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfadd %mm3,%mm2 movq (%eax),%mm3 movq 16(%eax),%mm4 - movd COS9+8,%mm5 + movd COS9@GOTOFF+8(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfadd %mm4,%mm3 movq 32(%eax),%mm4 - movd COS9+16,%mm5 + movd COS9@GOTOFF+16(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfadd %mm4,%mm3 pfadd %mm1,%mm3 movq 64(%eax),%mm4 - movd COS9+32,%mm5 + movd COS9@GOTOFF+32(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfadd %mm4,%mm3 movq %mm2,%mm4 pfadd %mm3,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+0,%mm5 + punpckldq tfcos36@GOTOFF+0(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -192,7 +196,7 @@ movq %mm3,%mm4 pfsub %mm2,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+32,%mm5 + punpckldq tfcos36@GOTOFF+32(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -220,7 +224,7 @@ pfsub %mm3,%mm2 movq 56(%eax),%mm3 pfsub %mm3,%mm2 - movd COS9+12,%mm3 + movd COS9@GOTOFF+12(%edi),%mm3 punpckldq %mm3,%mm3 pfmul %mm3,%mm2 movq 16(%eax),%mm3 @@ -228,7 +232,7 @@ pfsub %mm4,%mm3 movq 64(%eax),%mm4 pfsub %mm4,%mm3 - movd COS9+24,%mm4 + movd COS9@GOTOFF+24(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 movq 48(%eax),%mm4 @@ -238,7 +242,7 @@ movq %mm2,%mm4 pfadd %mm3,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+4,%mm5 + punpckldq tfcos36@GOTOFF+4(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -264,7 +268,7 @@ movq %mm3,%mm4 pfsub %mm2,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+28,%mm5 + punpckldq tfcos36@GOTOFF+28(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -289,41 +293,41 @@ movd %mm5,2048(%ebx) movq 8(%eax),%mm2 - movd COS9+20,%mm3 + movd COS9@GOTOFF+20(%edi),%mm3 punpckldq %mm3,%mm3 pfmul %mm3,%mm2 pfsub %mm0,%mm2 movq 40(%eax),%mm3 - movd COS9+28,%mm4 + movd COS9@GOTOFF+28(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfsub %mm3,%mm2 movq 56(%eax),%mm3 - movd COS9+4,%mm4 + movd COS9@GOTOFF+4(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfadd %mm3,%mm2 movq (%eax),%mm3 movq 16(%eax),%mm4 - movd COS9+32,%mm5 + movd COS9@GOTOFF+32(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfsub %mm4,%mm3 movq 32(%eax),%mm4 - movd COS9+8,%mm5 + movd COS9@GOTOFF+8(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfsub %mm4,%mm3 pfadd %mm1,%mm3 movq 64(%eax),%mm4 - movd COS9+16,%mm5 + movd COS9@GOTOFF+16(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfadd %mm4,%mm3 movq %mm2,%mm4 pfadd %mm3,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+8,%mm5 + punpckldq tfcos36@GOTOFF+8(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -349,7 +353,7 @@ movq %mm3,%mm4 pfsub %mm2,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+24,%mm5 + punpckldq tfcos36@GOTOFF+24(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -373,41 +377,41 @@ psrlq $32,%mm5 movd %mm5,1920(%ebx) movq 8(%eax),%mm2 - movd COS9+28,%mm3 + movd COS9@GOTOFF+28(%edi),%mm3 punpckldq %mm3,%mm3 pfmul %mm3,%mm2 pfsub %mm0,%mm2 movq 40(%eax),%mm3 - movd COS9+4,%mm4 + movd COS9@GOTOFF+4(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfadd %mm3,%mm2 movq 56(%eax),%mm3 - movd COS9+20,%mm4 + movd COS9@GOTOFF+20(%edi),%mm4 punpckldq %mm4,%mm4 pfmul %mm4,%mm3 pfsub %mm3,%mm2 movq (%eax),%mm3 movq 16(%eax),%mm4 - movd COS9+16,%mm5 + movd COS9@GOTOFF+16(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfsub %mm4,%mm3 movq 32(%eax),%mm4 - movd COS9+32,%mm5 + movd COS9@GOTOFF+32(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfadd %mm4,%mm3 pfadd %mm1,%mm3 movq 64(%eax),%mm4 - movd COS9+8,%mm5 + movd COS9@GOTOFF+8(%edi),%mm5 punpckldq %mm5,%mm5 pfmul %mm5,%mm4 pfsub %mm4,%mm3 movq %mm2,%mm4 pfadd %mm3,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+12,%mm5 + punpckldq tfcos36@GOTOFF+12(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -433,7 +437,7 @@ movq %mm3,%mm4 pfsub %mm2,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+20,%mm5 + punpckldq tfcos36@GOTOFF+20(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -467,7 +471,7 @@ movq 64(%eax),%mm3 pfadd %mm3,%mm4 movq %mm7,%mm5 - punpckldq tfcos36+16,%mm5 + punpckldq tfcos36@GOTOFF+16(%edi),%mm5 pfmul %mm5,%mm4 movq %mm4,%mm5 pfacc %mm5,%mm5 @@ -494,6 +498,18 @@ femms popl %ebx popl %esi + popl %edi movl %ebp,%esp popl %ebp ret + + .section .gnu.linkonce.t.__i686.get_pc_thunk.di,"ax",@progbits +.globl __i686.get_pc_thunk.di + .hidden __i686.get_pc_thunk.di + .type __i686.get_pc_thunk.di, @function +__i686.get_pc_thunk.di: + movl (%esp), %edi + ret + + .section .note.GNU-stack,"",@progbits + diff -u xmms-1.2.10.old/Input/mpg123/dct64_3dnow.s xmms-1.2.10/Input/mpg123/dct64_3dnow.s --- xmms-1.2.10.old/Input/mpg123/dct64_3dnow.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/dct64_3dnow.s 2006-03-13 23:45:31.000000000 +0100 @@ -16,21 +16,26 @@ .globl mpg123_dct64_3dnow .type mpg123_dct64_3dnow,@function mpg123_dct64_3dnow: - subl $256,%esp + subl $256+4,%esp pushl %ebp pushl %edi pushl %esi pushl %ebx - leal 16(%esp),%ebx - movl 284(%esp),%edi - movl 276(%esp),%ebp - movl 280(%esp),%edx + leal 20(%esp),%ebx + movl 288(%esp),%edi + movl 280(%esp),%ebp + movl 284(%esp),%edx leal 128(%ebx),%esi + call __i686.get_pc_thunk.ax + addl $_GLOBAL_OFFSET_TABLE_,%eax + addl $mpg123_pnts@GOTOFF,%eax + movl %eax,16(%esp) + / femms // 1 - movl mpg123_pnts,%eax + movl (%eax),%eax movq 0(%edi),%mm0 movq %mm0,%mm1 movd 124(%edi),%mm2 @@ -129,7 +134,8 @@ movd %mm5,64(%ebx) // 2 - movl mpg123_pnts+4,%eax + movl 16(%esp),%eax + movl 4(%eax),%eax / 0, 14 movq 0(%ebx),%mm0 movq %mm0,%mm1 @@ -232,7 +238,8 @@ movd %mm5,96(%esi) // 3 - movl mpg123_pnts+8,%eax + movl 16(%esp),%eax + movl 8(%eax),%eax movq 0(%eax),%mm0 movq 8(%eax),%mm1 movq 0(%esi),%mm2 @@ -333,7 +340,8 @@ movd %mm6,112(%ebx) // 4 - movl mpg123_pnts+12,%eax + movl 16(%esp),%eax + movl 12(%eax),%eax movq 0(%eax),%mm0 movq 0(%ebx),%mm1 / 0 @@ -443,7 +451,8 @@ / 1.0 | -1.0 movd %eax,%mm1 pi2fd %mm1,%mm1 - movl mpg123_pnts+16,%eax + movl 16(%esp),%eax + movl 16(%eax),%eax movd 0(%eax),%mm2 punpckldq %mm2,%mm1 / 1.0 | cos0 @@ -704,7 +713,17 @@ popl %esi popl %edi popl %ebp - addl $256,%esp + addl $256+4,%esp ret + .section .gnu.linkonce.t.__i686.get_pc_thunk.ax,"ax",@progbits +.globl __i686.get_pc_thunk.ax + .hidden __i686.get_pc_thunk.ax + .type __i686.get_pc_thunk.ax, @function +__i686.get_pc_thunk.ax: + movl (%esp), %eax + ret + + .section .note.GNU-stack,"",@progbits + diff -u xmms-1.2.10.old/Input/mpg123/dct64_MMX.s xmms-1.2.10/Input/mpg123/dct64_MMX.s --- xmms-1.2.10.old/Input/mpg123/dct64_MMX.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/dct64_MMX.s 2006-03-13 21:44:51.000000000 +0100 @@ -46,6 +46,8 @@ pushl %esi pushl %edi subl $256,%esp + call __i686.get_pc_thunk.bx + addl $_GLOBAL_OFFSET_TABLE_, %ebx movl 280(%esp),%eax flds (%eax) leal 128(%esp),%edx @@ -54,7 +56,7 @@ fstps (%edx) movl 276(%esp),%edi flds 4(%eax) - movl $costab,%ebx + addl $costab@GOTOFF,%ebx fadds 120(%eax) orl %ecx,%ecx fstps 4(%edx) @@ -832,5 +834,14 @@ popl %esi popl %ebx ret - + + .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits +.globl __i686.get_pc_thunk.bx + .hidden __i686.get_pc_thunk.bx + .type __i686.get_pc_thunk.bx, @function +__i686.get_pc_thunk.bx: + movl (%esp), %ebx + ret + + .section .note.GNU-stack,"",@progbits diff -u xmms-1.2.10.old/Input/mpg123/decode_3dnow.s xmms-1.2.10/Input/mpg123/decode_3dnow.s --- xmms-1.2.10.old/Input/mpg123/decode_3dnow.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/decode_3dnow.s 2006-03-13 21:44:51.000000000 +0100 @@ -45,7 +45,8 @@ subl $24,%esp pushl %ebp pushl %edi - xorl %ebp,%ebp + call __i686.get_pc_thunk.bp + addl $_GLOBAL_OFFSET_TABLE_, %ebp pushl %esi pushl %ebx movl 56(%esp),%esi @@ -67,15 +68,15 @@ ///.L25: testl %ebx,%ebx jne .L26 - decl bo.42 - movl $buffs.40,%ecx - andl $15,bo.42 + decl bo.42@GOTOFF(%ebp) + leal buffs.40@GOTOFF(%ebp),%ecx + andl $15,bo.42@GOTOFF(%ebp) jmp .L27 .L26: addl $2,16(%esp) - movl $buffs.40+2176,%ecx + leal buffs.40@GOTOFF+2176(%ebp),%ecx .L27: - movl bo.42,%edx + movl bo.42@GOTOFF(%ebp),%edx testb $1,%dl je .L28 movl %edx,36(%esp) @@ -112,7 +113,8 @@ addl $12,%esp movl %esi,20(%esp) .L29: - movl $mpg123_decwin+64,%edx + leal mpg123_decwin@GOTOFF+64(%ebp),%edx + xorl %ebp,%ebp movl $16,%ecx subl 20(%esp),%edx movl 16(%esp),%edi @@ -280,3 +282,14 @@ popl %ebp addl $24,%esp ret + + .section .gnu.linkonce.t.__i686.get_pc_thunk.bp,"ax",@progbits +.globl __i686.get_pc_thunk.bp + .hidden __i686.get_pc_thunk.bp + .type __i686.get_pc_thunk.bp, @function +__i686.get_pc_thunk.bp: + movl (%esp), %ebp + ret + + .section .note.GNU-stack,"",@progbits + diff -u xmms-1.2.10.old/Input/mpg123/decode_i586.s xmms-1.2.10/Input/mpg123/decode_i586.s --- xmms-1.2.10.old/Input/mpg123/decode_i586.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/decode_i586.s 2006-03-13 21:44:51.000000000 +0100 @@ -30,13 +30,7 @@ bo: .long 1 .section .rodata - .align 8 -.LC0: - .long 0x0,0x40dfffc0 - .align 8 -.LC1: - .long 0x0,0xc0e00000 - .align 8 + .text .globl mpg123_synth_1to1_pent mpg123_synth_1to1_pent: @@ -45,20 +39,21 @@ pushl %edi pushl %esi pushl %ebx + call __i686.get_pc_thunk.di + addl $_GLOBAL_OFFSET_TABLE_, %edi movl 32(%esp),%eax movl 40(%esp),%esi - xorl %edi,%edi - movl bo,%ebp - cmpl %edi,36(%esp) + movl bo@GOTOFF(%edi),%ebp + cmpl $0,36(%esp) jne .L48 decl %ebp andl $15,%ebp - movl %ebp,bo - movl $buffs,%ecx + movl %ebp,bo@GOTOFF(%edi) + leal buffs@GOTOFF(%edi),%ecx jmp .L49 .L48: addl $2,%esi - movl $buffs+2176,%ecx + leal buffs@GOTOFF+2176(%edi),%ecx .L49: testl $1,%ebp je .L50 @@ -88,7 +83,8 @@ addl $12,%esp movl 16(%esp),%edx leal 0(,%edx,4),%edx - movl $mpg123_decwin+64,%eax + leal mpg123_decwin@GOTOFF+64(%edi),%eax + xorl %edi,%edi movl %eax,%ecx subl %edx,%ecx movl $16,%ebp @@ -319,3 +315,13 @@ addl $12,%esp ret + .section .gnu.linkonce.t.__i686.get_pc_thunk.di,"ax",@progbits +.globl __i686.get_pc_thunk.di + .hidden __i686.get_pc_thunk.di + .type __i686.get_pc_thunk.di, @function +__i686.get_pc_thunk.di: + movl (%esp), %edi + ret + + .section .note.GNU-stack,"",@progbits + diff -u xmms-1.2.10.old/Input/mpg123/decode_MMX.s xmms-1.2.10/Input/mpg123/decode_MMX.s --- xmms-1.2.10.old/Input/mpg123/decode_MMX.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/decode_MMX.s 2006-03-13 21:44:51.000000000 +0100 @@ -43,7 +43,10 @@ leal 1(%ebx), %ecx subl %ebp,%ebx - leal mpg123_decwins(%ebx,%ebx,1), %edx + call __i686.get_pc_thunk.ax + addl $_GLOBAL_OFFSET_TABLE_, %eax + leal (%eax,%ebx,2),%eax + leal mpg123_decwins@GOTOFF(%eax),%edx .L3: movq (%edx),%mm0 pmaddwd (%esi),%mm0 @@ -105,4 +108,13 @@ popl %ebp ret + .section .gnu.linkonce.t.__i686.get_pc_thunk.ax,"ax",@progbits +.globl __i686.get_pc_thunk.ax + .hidden __i686.get_pc_thunk.ax + .type __i686.get_pc_thunk.ax, @function +__i686.get_pc_thunk.ax: + movl (%esp), %eax + ret + + .section .note.GNU-stack,"",@progbits diff -u xmms-1.2.10.old/Input/mpg123/getcpuflags.s xmms-1.2.10/Input/mpg123/getcpuflags.s --- xmms-1.2.10.old/Input/mpg123/getcpuflags.s 2006-03-13 23:55:54.000000000 +0100 +++ xmms-1.2.10/Input/mpg123/getcpuflags.s 2006-03-13 21:44:51.000000000 +0100 @@ -59,3 +59,6 @@ popl %edx leave ret + + .section .note.GNU-stack,"",@progbits +