找回密码
 注册
查看: 655|回复: 1

gcc编译xine时出现的问题,其他地方也出现过

[复制链接]
发表于 2005-7-6 09:00:00 | 显示全部楼层 |阅读模式
在编译xine时出现了这样的问题
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -I../../src/input -I../../src/input -I../../lib -I/usr/X11R6/include -mtune=pentiumpro -O3 -pipe -fomit-frame-pointer -falign-functions=4 -falign-loops=4 -falign-jumps=4 -mpreferred-stack-boundary=2 -fexpensive-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-loops -finline-functions -Wall -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wnested-externs -Wcast-align -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -MT memcpy.lo -MD -MP -MF .deps/memcpy.Tpo -c memcpy.c  -fPIC -DPIC -o .libs/memcpy.o
memcpy.c: In function 'sse_memcpy':
memcpy.c:221: error: invalid lvalue in assignment
memcpy.c:222: error: invalid lvalue in assignment
memcpy.c:244: error: invalid lvalue in assignment
memcpy.c:245: error: invalid lvalue in assignment
memcpy.c: In function 'mmx_memcpy':
memcpy.c:299: error: invalid lvalue in assignment
memcpy.c:300: error: invalid lvalue in assignment
memcpy.c: In function 'mmx2_memcpy':
memcpy.c:366: error: invalid lvalue in assignment
memcpy.c:367: error: invalid lvalue in assignment
make[3]: *** [memcpy.lo] 错误 1
make[3]: Leaving directory `/usr/local/tool/xine-lib-1.0.1/src/xine-utils'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/usr/local/tool/xine-lib-1.0.1/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/usr/local/tool/xine-lib-1.0.1'
make: *** [all] 错误 2
查看文件出错的地方为:
    if(((unsigned long)from) & 15)
      /* if SRC is misaligned */
      for(; i>0; i--)
      {
        __asm__ __volatile__ (
        "prefetchnta 320(%0)\n"
       "prefetchnta 352(%0)\n"
        "movups (%0), %%xmm0\n"
        "movups 16(%0), %%xmm1\n"
        "movups 32(%0), %%xmm2\n"
        "movups 48(%0), %%xmm3\n"
        "movntps %%xmm0, (%1)\n"
        "movntps %%xmm1, 16(%1)\n"
        "movntps %%xmm2, 32(%1)\n"
        "movntps %%xmm3, 48(%1)\n"
        :: "r" (from), "r" (to) : "memory");
        ((const unsigned char *)from)+=64;
        ((unsigned char *)to)+=64;
      }
分析应该是      
        ((const unsigned char *)from)+=64;
        ((unsigned char *)to)+=64;
类型转化时产生的错误,但是想了几种修改方法也不行。望请大侠帮忙解决。
 楼主| 发表于 2005-7-6 09:31:24 | 显示全部楼层
以前带指针的类型转化进行自加也出现这种情况
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-5-16 01:17 , Processed in 0.049813 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表