update to 20060507 which fixes 64-bit/alignment problems

This commit is contained in:
jolan 2006-05-12 01:27:42 +00:00
parent dc8867c56b
commit 577c3dc20d
6 changed files with 188 additions and 39 deletions

View File

@ -1,9 +1,6 @@
# $OpenBSD: Makefile,v 1.17 2006/03/21 04:00:09 jsg Exp $
# $OpenBSD: Makefile,v 1.18 2006/05/12 01:27:42 jolan Exp $
# XXX hardcoded endian list
# 64-bit issues, unaligned memory access
ONLY_FOR_ARCHS= arm i386 powerpc
COMMENT= "ur-quan masters: sdl port of star control 2"
COMMENT-remix1= "ur-quan masters: remix pack number one"
COMMENT-remix2= "ur-quan masters: remix pack number two"
@ -11,21 +8,22 @@ COMMENT-remix3= "ur-quan masters: remix pack number three"
COMMENT-threedomusic= "ur-quan masters: 3DO music content"
COMMENT-voice= "ur-quan masters: speech content"
DATE= 20060507
VER= 0.5.0
DISTNAME= uqm-${VER}-source
DISTNAME= uqm-${DATE}
CATEGORIES= games x11
PDIST= ${DISTNAME}.tar.gz
CDIST= uqm-${VER}-content.uqm
CDIST2= uqm-${DATE}-content.zip
MDIST= uqm-${VER}-3domusic.uqm
VDIST= uqm-${VER}-voice.uqm
RM1DIST= uqm-remix-pack1.zip
RM2DIST= uqm-remix-pack2.zip
RM3DIST= uqm-remix-pack3.zip
DISTFILES= ${PDIST} ${CDIST}
DISTFILES= ${PDIST}:0 ${CDIST} ${CDIST2}:0
SUPDISTFILES= ${MDIST} ${VDIST} ${RM1DIST} ${RM2DIST} ${RM3DIST}
DIST_SUBDIR= uqm
CATEGORIES= games x11
PKGNAME= uqm-${VER}
PKGNAME-remix1= uqm-remix1-${VER}
PKGNAME-remix2= uqm-remix2-${VER}
PKGNAME-remix3= uqm-remix3-${VER}
@ -33,26 +31,21 @@ PKGNAME-threedomusic= uqm-threedomusic-${VER}
PKGNAME-voice= uqm-voice-${VER}
EXTRACT_ONLY= ${PDIST}
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sc2/}
MASTER_SITES0= http://mirrors.protection.cx/~jolan/
HOMEPAGE= http://sc2.sourceforge.net/
# GPL
PERMIT_PACKAGE_CDROM= "Unresolved licensing issues"
PERMIT_PACKAGE_FTP= "Unresolved licensing issues"
PERMIT_DISTFILES_CDROM= "Unresolved licensing issues"
PERMIT_DISTFILES_FTP= "Unresolved licensing issues"
PERMIT_PACKAGE_CDROM= "content must accompany distribution of ur-quan masters"
PERMIT_PACKAGE_FTP= "content must accompany distribution of ur-quan masters"
PERMIT_DISTFILES_CDROM= "content must accompany distribution of ur-quan masters"
PERMIT_DISTFILES_FTP= "content must accompany distribution of ur-quan masters"
LIB_DEPENDS= SDL_image::devel/sdl-image
LIB_DEPENDS= vorbisidec.1::audio/tremor \
SDL_image::devel/sdl-image
WANTLIB= X11 Xext c m pthread usbhid z \
SDL
.if ${MACHINE_ARCH} == "arm"
LIB_DEPENDS+= vorbisidec.1::audio/tremor
.else
LIB_DEPENDS+= vorbis.0,vorbisfile.1::audio/libvorbis
WANTLIB+= ogg
.endif
NO_REGRESS= Yes
USE_GMAKE= Yes
USE_X11= Yes
@ -110,8 +103,6 @@ RUN_DEPENDS= ::games/uqm
. endif
.endif
WRKDIST= ${WRKDIR}/${DISTNAME:S/-source//}
do-configure:
.if (${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "amd64" || \
${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "i386" || \
@ -122,24 +113,15 @@ do-configure:
@sed -e "s|@PREFIX@|${PREFIX}|g ; s|@ENDIAN@|define|g" \
${FILESDIR}/config_unix.h > ${WRKSRC}/src/config_unix.h
.endif
.if ${MACHINE_ARCH} == "arm"
@sed -e "s|@CC@|${CC}|g ; s|@CFLAGS@|${CFLAGS}|g ; \
s|@CFLAGS_TREMOR@|-DOVCODEC_TREMOR|g ; \
s|@LOCALBASE@|${LOCALBASE}|g ; s|@PREFIX@|${PREFIX}|g ; \
s|@SOUNDLIB@|-lvorbisidec|g ; \
s|@X11BASE@|${X11BASE}|g" ${FILESDIR}/build.vars \
> ${WRKSRC}/build.vars
.else
@sed -e "s|@CC@|${CC}|g ; s|@CFLAGS@|${CFLAGS}|g ; \
s|@CFLAGS_TREMOR@||g ; \
s|@LOCALBASE@|${LOCALBASE}|g ; s|@PREFIX@|${PREFIX}|g ; \
s|@SOUNDLIB@|-lvorbisfile -lvorbis -logg|g ; \
s|@X11BASE@|${X11BASE}|g" ${FILESDIR}/build.vars \
> ${WRKSRC}/build.vars
.endif
do-build:
cd ${WRKBUILD}; ./build.sh uqm
cd ${WRKBUILD}; env MAKE_VERBOSE=1 ./build.sh uqm
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/uqm
@ -150,6 +132,8 @@ do-install:
${PREFIX}/share/uqm/content
${INSTALL_DATA} ${FULLDISTDIR}/${CDIST} \
${PREFIX}/share/uqm/content/packages
${INSTALL_DATA} ${FULLDISTDIR}/${CDIST2} \
${PREFIX}/share/uqm/content/packages
.if ${FLAVOR:L:Mremix1}
${INSTALL_DATA} ${FULLDISTDIR}/${RM1DIST} \
${PREFIX}/share/uqm/content/packages/addons/uqmremix

View File

@ -1,28 +1,32 @@
MD5 (uqm/uqm-0.5.0-3domusic.uqm) = a20cacc8e66f5ff1fdf5e1d3a3b93fd2
MD5 (uqm/uqm-0.5.0-content.uqm) = 1d03864b141a2626a7284bc7cfdefb47
MD5 (uqm/uqm-0.5.0-source.tar.gz) = 9002b1bc2de9285588dd97b618a867a7
MD5 (uqm/uqm-0.5.0-voice.uqm) = 52a084cfaa0bc7fcc63a295feb8cbd28
MD5 (uqm/uqm-20060507-content.zip) = 5f6c46dbb3d677b0759268e859189da7
MD5 (uqm/uqm-20060507.tar.gz) = 67717d7ac897dd17872bfda72845b681
MD5 (uqm/uqm-remix-pack1.zip) = 2df402b2951c0187604a81c3997fbb9d
MD5 (uqm/uqm-remix-pack2.zip) = d5a9fb72b369bf5a5dbca3db9f1e1ea3
MD5 (uqm/uqm-remix-pack3.zip) = 567bc2d9e3ca067d21170c5ac5538441
RMD160 (uqm/uqm-0.5.0-3domusic.uqm) = 68056bac27534e6db49c1e34922d38c5f368dbb9
RMD160 (uqm/uqm-0.5.0-content.uqm) = cc380c40224deb421d7f3cb65ebacdce8e647514
RMD160 (uqm/uqm-0.5.0-source.tar.gz) = 8737d2516c0110f76e6af348d5c11e90b9029b81
RMD160 (uqm/uqm-0.5.0-voice.uqm) = 505d13efbb5bf5e07d27227c27b57258b8edaf57
RMD160 (uqm/uqm-20060507-content.zip) = 48c757901b780210f5cea903cbcb39d9eda9cdc5
RMD160 (uqm/uqm-20060507.tar.gz) = 5c1986320ff80a6bd5fa19ed90a144697d9af739
RMD160 (uqm/uqm-remix-pack1.zip) = 1c0cf233d6377918b676bcd591f4304b8da85aa1
RMD160 (uqm/uqm-remix-pack2.zip) = 441edc71e3006e43629ee262fef8ef8676573832
RMD160 (uqm/uqm-remix-pack3.zip) = 786e8dfd7924abf6ef886e7223c1d57b0740d524
SHA1 (uqm/uqm-0.5.0-3domusic.uqm) = 9e4777c89d17f8b1c9ae2ea343c4497f0f181a5a
SHA1 (uqm/uqm-0.5.0-content.uqm) = 68554522a3c084bd98366e15470fff8658cc16b0
SHA1 (uqm/uqm-0.5.0-source.tar.gz) = c9275ce431ee283b8dcaefb017520a096e1dbc72
SHA1 (uqm/uqm-0.5.0-voice.uqm) = 99102231d9de42ef4eac92d2ae5fbc0814d4c1f3
SHA1 (uqm/uqm-20060507-content.zip) = 68c5276a51a1008c10f7808c229dd5ae07e7e15e
SHA1 (uqm/uqm-20060507.tar.gz) = 7bd1a2c18baaf53f70e4de3334c5d8881094e8e7
SHA1 (uqm/uqm-remix-pack1.zip) = 7cbdc87887ebebae5439c689fc5bd2ffa9460fc8
SHA1 (uqm/uqm-remix-pack2.zip) = f1ebca44ff105f968d6fcf65df935926523b1c97
SHA1 (uqm/uqm-remix-pack3.zip) = f55d198c56a0963a6bb2f9c2fe04c4c475b25086
SIZE (uqm/uqm-0.5.0-3domusic.uqm) = 18980071
SIZE (uqm/uqm-0.5.0-content.uqm) = 11584345
SIZE (uqm/uqm-0.5.0-source.tar.gz) = 1267039
SIZE (uqm/uqm-0.5.0-voice.uqm) = 114823413
SIZE (uqm/uqm-20060507-content.zip) = 31138
SIZE (uqm/uqm-20060507.tar.gz) = 1340000
SIZE (uqm/uqm-remix-pack1.zip) = 50188123
SIZE (uqm/uqm-remix-pack2.zip) = 60281175
SIZE (uqm/uqm-remix-pack3.zip) = 39923803

View File

@ -1,4 +1,4 @@
# $OpenBSD: build.vars,v 1.5 2005/11/05 03:48:41 jolan Exp $
# $OpenBSD: build.vars,v 1.6 2006/05/12 01:27:42 jolan Exp $
# Variables for the build procedure
# Copyright (c) 2002 Serge van den Boom
#
@ -23,7 +23,7 @@ MKDEPEND='@CC@ -MM'
MAKE='gmake'
ECHON='echo -n'
SED='sed'
uqm_CFLAGS='@CFLAGS@ -I@LOCALBASE@/include/SDL -D_REENTRANT -DGFXMODULE_SDL -DSOUNDMODULE_SDL @CFLAGS_TREMOR@ -I@LOCALBASE@/include -DHAVE_ZIP=1 -I "."'
uqm_CFLAGS='@CFLAGS@ -I@LOCALBASE@/include/SDL -D_REENTRANT -DGFXMODULE_SDL -DSOUNDMODULE_SDL @CFLAGS_TREMOR@ -I@LOCALBASE@/include -DHAVE_ZIP=1 -DUSE_PLATFORM_ACCEL -I "."'
uqm_LDFLAGS="-L@LOCALBASE@/lib -L@X11BASE@/lib -lSDL -pthread -lX11 -lXext -lusbhid -lSDL_image @SOUNDLIB@ -lm -lz"
uqm_INSTALL_BINDIR='@PREFIX@/bin/'
uqm_INSTALL_LIBDIR='@PREFIX@/lib/'
@ -35,8 +35,10 @@ uqm_SOUNDMODULE='mixsdl'
uqm_HAVE_REGEX='1'
uqm_HAVE_OPENGL='0'
uqm_USE_ZIP_IO='1'
uqm_USE_PLATFORM_ACCEL='1'
WINDRES=''
REZ=''
DEBUG='0'
export BUILD_SYSTEM HOST_SYSTEM uqm_SOUNDMODULE uqm_HAVE_REGEX uqm_HAVE_OPENGL uqm_USE_ZIP_IO WINDRES DEBUG
export BUILD_SYSTEM HOST_SYSTEM uqm_SOUNDMODULE uqm_HAVE_REGEX uqm_HAVE_OPENGL
export uqm_USE_ZIP_IO uqm_USE_PLATFORM_ACCEL WINDRES DEBUG

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sc2code_credits_c,v 1.1 2006/05/12 01:27:42 jolan Exp $
--- src/sc2code/credits.c.orig Thu Jan 12 21:49:10 2006
+++ src/sc2code/credits.c Tue May 9 14:21:23 2006
@@ -150,7 +150,7 @@ Credits_RenderTextFrame (CONTEXT TempCon
if (!pStr || *pStr == '\0')
return 0;
- if (2 != sscanf (pStr, "%d %32s %n", &size, salign, &scaned)
+ if (2 != sscanf (pStr, "%d %31s %n", &size, salign, &scaned)
|| size <= 0)
return 0;
pStr += scaned;

View File

@ -0,0 +1,146 @@
$OpenBSD: patch-src_sc2code_libs_graphics_sdl_scalemmx_h,v 1.1 2006/05/12 01:27:42 jolan Exp $
--- src/sc2code/libs/graphics/sdl/scalemmx.h.orig Wed Nov 9 21:05:25 2005
+++ src/sc2code/libs/graphics/sdl/scalemmx.h Wed May 10 13:39:01 2006
@@ -89,6 +89,8 @@ SCALE_(PlatInit) (void)
// 0 is needed for bytes->words unpack instructions
pxor mm0, mm0
+#if 0
+// not used anymore
// mm5-mm7 contains RGB->YUV mults
movq mm7, mmx_Y_mult
movq mm6, mmx_U_mult
@@ -99,6 +101,7 @@ SCALE_(PlatInit) (void)
// mm5 contains DiffYUV threshold
movq mm5, mmx_YUV_threshold
#endif
+#endif
}
}
@@ -496,6 +499,22 @@ SCALE_(Blend_bilinear) (const Uint32* ro
# define PREFETCH(addr)
#endif
+#if defined(__x86_64__)
+# define A_REG "rax"
+# define D_REG "rdx"
+# define CLR_UPPER32(r) "xor " "%%" r "," "%%" r
+# define OFFSETABLE_PTR(p) "r" (p)
+# define MOVD_WMO(base, ofs, mult, dst) \
+ "movd " "(" #base "," ofs "," #mult ")," #dst
+#else
+# define A_REG "eax"
+# define D_REG "edx"
+# define CLR_UPPER32(r)
+# define OFFSETABLE_PTR(p) "o" (*(p))
+# define MOVD_WMO(base, ofs, mult, dst) \
+ "movd " #base "(," ofs "," #mult ")," #dst
+#endif
+
static inline void
SCALE_(PlatInit) (void)
{
@@ -504,6 +523,8 @@ SCALE_(PlatInit) (void)
// 0 is needed for bytes->words unpack instructions
"pxor %%mm0, %%mm0 \n\t"
+#if 0
+// not used anymore
// mm5-mm7 contains RGB->YUV mults
"movq %0, %%mm7 \n\t"
"movq %1, %%mm6 \n\t"
@@ -514,7 +535,7 @@ SCALE_(PlatInit) (void)
// mm5 contains DiffYUV threshold
"movq %4, %%mm5 \n\t"
#endif
-
+#endif
: /* nothing */
: /*0*/"m" (mmx_Y_mult), /*1*/"m" (mmx_U_mult), /*2*/"m" (mmx_V_mult)
, /*3*/"m" (mmx_888to555_mult), /*4*/"m" (mmx_YUV_threshold)
@@ -631,12 +652,15 @@ SCALE_(CmpYUV) (Uint32 pix1, Uint32 pix2
// convert RGB888 to 555
// this is somewhat parallelized
"punpcklbw %%mm0, %%mm1 \n\t"
+ CLR_UPPER32 (A_REG) "\n\t"
"psrlw $3, %%mm1 \n\t" // 8->5 bit
"punpcklbw %%mm0, %%mm3 \n\t"
"psrlw $3, %%mm3 \n\t" // 8->5 bit
"pmaddwd %4, %%mm1 \n\t" // shuffle into the right channel order
+
"movq %%mm1, %%mm2 \n\t" // finish shuffling
"pmaddwd %4, %%mm3 \n\t" // shuffle into the right channel order
+ CLR_UPPER32 (D_REG) "\n\t"
"movq %%mm3, %%mm4 \n\t" // finish shuffling
"punpckhdq %%mm0, %%mm2 \n\t" // ditto
"por %%mm2, %%mm1 \n\t" // ditto
@@ -646,9 +670,11 @@ SCALE_(CmpYUV) (Uint32 pix1, Uint32 pix2
// lookup the YUV vector
"movd %%mm1, %%eax \n\t"
"movd %%mm3, %%edx \n\t"
- "movd %3(,%%eax,4), %%mm1 \n\t"
+ //"movd %3(,%%" A_REG ",4), %%mm1 \n\t"
+ MOVD_WMO (%3, "%%" A_REG, 4, %%mm1) "\n\t"
"movq %%mm1, %%mm4 \n\t"
- "movd %3(,%%edx,4), %%mm2 \n\t"
+ //"movd %3(,%%" D_REG ",4), %%mm2 \n\t"
+ MOVD_WMO (%3, "%%" D_REG, 4, %%mm2) "\n\t"
// get abs difference between YUV components
#ifdef USE_PSADBW
@@ -675,8 +701,9 @@ SCALE_(CmpYUV) (Uint32 pix1, Uint32 pix2
#endif /* USE_PSADBW */
: /*0*/"=r" (delta)
: /*1*/"rm" (pix1), /*2*/"rm" (pix2),
- /*3*/"m" (*RGB15_to_YUV), /*4*/"m" (mmx_888to555_mult)
- : "%eax", "%edx"
+ /*3*/OFFSETABLE_PTR(RGB15_to_YUV),
+ /*4*/"m" (mmx_888to555_mult)
+ : "%" A_REG, "%" D_REG
);
return (delta << 1) <= toler;
@@ -700,21 +727,22 @@ SCALE_(DiffYUV) (Uint32 yuv1, Uint32 yuv
// abs difference between channels
"psubusb %%mm2, %%mm1 \n\t"
"psubusb %%mm4, %%mm2 \n\t"
+ CLR_UPPER32(D_REG) "\n\t"
"por %%mm2, %%mm1 \n\t"
// compare to threshold
"psubusb %3, %%mm1 \n\t"
"movd %%mm1, %%edx \n\t"
// transform eax to 0 or ~0
- "xor %%eax, %%eax \n\t"
- "or %%edx, %%edx \n\t"
+ "xor %%" A_REG ", %%" A_REG "\n\t"
+ "or %%" D_REG ", %%" D_REG "\n\t"
"setz %%al \n\t"
- "dec %%eax \n\t"
+ "dec %%" A_REG " \n\t"
: /*0*/"=a" (ret)
: /*1*/"rm" (yuv1), /*2*/"rm" (yuv2),
/*3*/"m" (mmx_YUV_threshold)
- : "%edx"
+ : "%" D_REG
);
return ret;
}
@@ -783,10 +811,14 @@ SCALE_(Blend_bilinear) (const Uint32* ro
MOVNTQ (%%mm3, (%2,%3,4)) "\n\t" // EL4/5: store 2 pixels
: /* nothing */
- : /*0*/"m" (*row0), /*1*/"m" (*row1), /*2*/"r" (dst_p), /*3*/"r" (dlen)
+ : /*0*/"m" (*row0), /*1*/"m" (*row1), /*2*/"r" (dst_p),
+ /*3*/"r" ((unsigned long)dlen) /* 'long' is for proper reg alloc on amd64 */
: "memory"
);
}
+
+#undef A_REG
+#undef D_REG
#endif // GCC_ASM

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.6 2006/03/21 04:00:09 jsg Exp $
@comment $OpenBSD: PLIST,v 1.7 2006/05/12 01:27:42 jolan Exp $
bin/uqm
share/doc/uqm/
share/doc/uqm/manual.txt
@ -8,4 +8,5 @@ share/uqm/content/packages/
share/uqm/content/packages/addons/
share/uqm/content/packages/addons/uqmremix/
share/uqm/content/packages/uqm-0.5.0-content.uqm
share/uqm/content/packages/uqm-20060507-content.zip
share/uqm/content/version