robert j. wozny wrote:
On 5/5/05, Pawel Sikora <[EMAIL PROTECTED]> wrote:
a co konkretnie to naprawia?
u mnie gcc4 nie protestuje bez tej latki, a z latka wrecz przeciwnie:
warning: type defaults to 'int' in declaration of '_mmx_one'
tia, sprobuj skompilowac gstreamer-plugins, czy cokolwiek innego co
uzywa libfame. dostaniesz ladne unresolved symbol: _mmx_one
wdrozone w gcc post 3.4
wrrr, ale te zrodla sa brzydko napisane. we wstawkach asm. uzywaja
na twardo nazw globalnych zmiennych zamiast normalnie podac je jako
parametry do wstawki. dlatego tez kompilator nie widzac zwiazku
miedzy tekstem wstawki a zmiennymi usunal z kodu `static _mmx_one*`.
na szybki wydaje mi sie lepiej nalozyc zalaczona latke,
bo na poprawianie takiej ilosci asm. zgodnie ze sztuka nie mam checi.
to taka uwaga nawiasem :)
wracam do pracy...
diff -uNr libfame-0.9.1/src.orig/half_mmx.h libfame-0.9.1/src/half_mmx.h
--- libfame-0.9.1/src.orig/half_mmx.h 2002-04-30 20:04:02.000000000 +0200
+++ libfame-0.9.1/src/half_mmx.h 2005-05-06 13:07:12.000000000 +0200
@@ -18,8 +18,6 @@
*/
/**************************** half-pixel interpolation ***********************/
-static short const _mmx_one[] = { 1, 1, 1, 1 };
-
static void inline mmx_interpolate(unsigned char **ref,
int pitch,
int rounding)
@@ -68,8 +66,8 @@
"paddw %%mm5, %%mm6\n" /* mm6 = ref00+ref10+ref11+1-r 4-7*/
"psrlw $1, %%mm4\n" /* divide by 2 */
"psrlw $1, %%mm5\n" /* divide by 2 */
- "paddw " ASMSYM "_mmx_one, %%mm3\n" /* add 1 */
- "paddw " ASMSYM "_mmx_one, %%mm6\n" /* add 1 */
+ "paddw " ASMSYM "_mmx_1, %%mm3\n" /* add 1 */
+ "paddw " ASMSYM "_mmx_1, %%mm6\n" /* add 1 */
"packuswb %%mm5, %%mm4\n" /* pack to byte and saturate */
"movq 1(%3), %%mm1\n" /* mm1 = [ref+1] */
"movq %%mm1, %%mm2\n" /* mm2 = mm1 */
diff -uNr libfame-0.9.1/src.orig/half_sse.h libfame-0.9.1/src/half_sse.h
--- libfame-0.9.1/src.orig/half_sse.h 2002-01-27 03:24:56.000000000 +0100
+++ libfame-0.9.1/src/half_sse.h 2005-05-06 13:07:38.000000000 +0200
@@ -19,10 +19,6 @@
*/
/**************************** half-pixel interpolation ***********************/
-static short const _mmx_one[] = { 1, 1, 1, 1 };
-static unsigned char const _mmx_one_byte[] = {1,1,1,1,1,1,1,1};
-
-
static void inline mmx_interpolate_signed(unsigned char **ref,
int pitch,
int rounding)
@@ -71,8 +67,8 @@
"paddw %%mm5, %%mm6\n" /* mm6 = ref00+ref10+ref11+1-r 4-7*/
"psrlw $1, %%mm4\n" /* divide by 2 */
"psrlw $1, %%mm5\n" /* divide by 2 */
- "paddw " ASMSYM "_mmx_one, %%mm3\n" /* add 1 */
- "paddw " ASMSYM "_mmx_one, %%mm6\n" /* add 1 */
+ "paddw " ASMSYM "_mmx_1, %%mm3\n" /* add 1 */
+ "paddw " ASMSYM "_mmx_1, %%mm6\n" /* add 1 */
"packuswb %%mm5, %%mm4\n" /* pack to byte and saturate */
"movq 1(%3), %%mm1\n" /* mm1 = [ref+1] */
"movq %%mm1, %%mm2\n" /* mm2 = mm1 */
@@ -130,7 +126,7 @@
"pand %%mm1, %%mm0\n"
"pand %%mm3, %%mm2\n"
"pxor %%mm2, %%mm0\n"
- "pand _mmx_one_byte, %%mm0\n"
+ "pand _mmx_1c, %%mm0\n"
"paddb %%mm0, %%mm7\n"
"movl 4(%0), %3\n" /* %3 = ref[1] */
diff -uNr libfame-0.9.1/src.orig/table_mmx_const.h libfame-0.9.1/src/table_mmx_const.h
--- libfame-0.9.1/src.orig/table_mmx_const.h 2002-04-14 21:51:49.000000000 +0200
+++ libfame-0.9.1/src/table_mmx_const.h 2005-05-06 13:06:37.000000000 +0200
@@ -20,6 +20,7 @@
FAME_ALIGNED short const _mmx_128[] = { 128, 128, 128, 128 };
FAME_ALIGNED char const _mmx_128c[] = { 128, 128, 128, 128, 128, 128, 128, 128 };
FAME_ALIGNED short const _mmx_1[] = { 1, 1, 1, 1 };
+FAME_ALIGNED char const _mmx_1c[] = { 1, 1, 1, 1, 1, 1, 1, 1 };
/* AA&N coefficients */
/* 2*cos(4pi/16) */
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl