From 1cfb64af268a5db4a0c84cf42b9f65ece9318ea1 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 17 Jun 2003 22:54:45 +0000 Subject: sync with libmpeg2 cvs git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10304 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpeg2/cpu_accel.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'libmpeg2/cpu_accel.c') diff --git a/libmpeg2/cpu_accel.c b/libmpeg2/cpu_accel.c index 809deabcd7..b87e8096fc 100644 --- a/libmpeg2/cpu_accel.c +++ b/libmpeg2/cpu_accel.c @@ -1,6 +1,6 @@ /* * cpu_accel.c - * Copyright (C) 2000-2002 Michel Lespinasse + * Copyright (C) 2000-2003 Michel Lespinasse * Copyright (C) 1999-2000 Aaron Holtzman * * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. @@ -126,20 +126,27 @@ static RETSIGTYPE sigill_handler (int sig) static inline uint32_t arch_accel (void) { - signal (SIGILL, sigill_handler); + static RETSIGTYPE (* oldsig) (int); + + oldsig = signal (SIGILL, sigill_handler); if (sigsetjmp (jmpbuf, 1)) { - signal (SIGILL, SIG_DFL); + signal (SIGILL, oldsig); return 0; } canjump = 1; +#ifdef HAVE_ALTIVEC_H /* gnu */ +#define VAND(a,b,c) "vand " #a "," #b "," #c "\n\t" +#else /* apple */ +#define VAND(a,b,c) "vand v" #a ",v" #b ",v" #c "\n\t" +#endif asm volatile ("mtspr 256, %0\n\t" - "vand %%v0, %%v0, %%v0" + VAND (0, 0, 0) : : "r" (-1)); - signal (SIGILL, SIG_DFL); + signal (SIGILL, oldsig); return MPEG2_ACCEL_PPC_ALTIVEC; } #endif /* ARCH_PPC */ -- cgit v1.2.3