diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-06-17 22:54:45 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-06-17 22:54:45 +0000 |
commit | 1cfb64af268a5db4a0c84cf42b9f65ece9318ea1 (patch) | |
tree | 08011c33ad597b075a6005602bebc28517d7dedd /libmpeg2/cpu_accel.c | |
parent | ae168fc6eb2c1f731000fd6cca5e3fa40e7a3096 (diff) | |
download | mpv-1cfb64af268a5db4a0c84cf42b9f65ece9318ea1.tar.bz2 mpv-1cfb64af268a5db4a0c84cf42b9f65ece9318ea1.tar.xz |
sync with libmpeg2 cvs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10304 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpeg2/cpu_accel.c')
-rw-r--r-- | libmpeg2/cpu_accel.c | 17 |
1 files changed, 12 insertions, 5 deletions
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 <walken@zoy.org> + * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org> * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> * * 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 */ |