summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/ppc/check_altivec.c38
-rw-r--r--libavcodec/sparc/dsputil_vis.c45
2 files changed, 3 insertions, 80 deletions
diff --git a/libavcodec/ppc/check_altivec.c b/libavcodec/ppc/check_altivec.c
index 72b4afe48a..b3778cab31 100644
--- a/libavcodec/ppc/check_altivec.c
+++ b/libavcodec/ppc/check_altivec.c
@@ -28,23 +28,6 @@
#include <exec/exec.h>
#include <interfaces/exec.h>
#include <proto/exec.h>
-#else
-#include <signal.h>
-#include <setjmp.h>
-
-static sigjmp_buf jmpbuf;
-static volatile sig_atomic_t canjump = 0;
-
-static void sigill_handler (int sig)
-{
- if (!canjump) {
- signal (sig, SIG_DFL);
- raise (sig);
- }
-
- canjump = 0;
- siglongjmp (jmpbuf, 1);
-}
#endif /* __APPLE__ */
/**
@@ -72,24 +55,9 @@ int has_altivec(void)
if (err == 0) return (has_vu != 0);
return 0;
#else
-/* Do it the brute-force way, borrowed from the libmpeg2 library. */
- {
- signal (SIGILL, sigill_handler);
- if (sigsetjmp (jmpbuf, 1)) {
- signal (SIGILL, SIG_DFL);
- } else {
- canjump = 1;
-
- asm volatile ("mtspr 256, %0\n\t"
- "vand %%v0, %%v0, %%v0"
- :
- : "r" (-1));
-
- signal (SIGILL, SIG_DFL);
- return 1;
- }
- }
- return 0;
+ // since we were compiled for altivec, just assume we have it
+ // until someone comes up with a proper way (not involving signal hacks).
+ return 1;
#endif /* __AMIGAOS4__ */
}
diff --git a/libavcodec/sparc/dsputil_vis.c b/libavcodec/sparc/dsputil_vis.c
index 4367b72257..374ec8dc1b 100644
--- a/libavcodec/sparc/dsputil_vis.c
+++ b/libavcodec/sparc/dsputil_vis.c
@@ -26,8 +26,6 @@
#include "config.h"
#include <inttypes.h>
-#include <signal.h>
-#include <setjmp.h>
#include "dsputil.h"
@@ -3987,56 +3985,13 @@ static void MC_avg_no_round_xy_8_vis (uint8_t * dest, const uint8_t * _ref,
/* End of no rounding code */
-static sigjmp_buf jmpbuf;
-static volatile sig_atomic_t canjump = 0;
-
-static void sigill_handler (int sig)
-{
- if (!canjump) {
- signal (sig, SIG_DFL);
- raise (sig);
- }
-
- canjump = 0;
- siglongjmp (jmpbuf, 1);
-}
-
#define ACCEL_SPARC_VIS 1
#define ACCEL_SPARC_VIS2 2
static int vis_level ()
{
- int accel = 0;
-
- signal (SIGILL, sigill_handler);
- if (sigsetjmp (jmpbuf, 1)) {
- signal (SIGILL, SIG_DFL);
- return accel;
- }
-
- canjump = 1;
-
- /* pdist %f0, %f0, %f0 */
- __asm__ __volatile__(".word\t0x81b007c0");
-
- canjump = 0;
accel |= ACCEL_SPARC_VIS;
-
- if (sigsetjmp (jmpbuf, 1)) {
- signal (SIGILL, SIG_DFL);
- return accel;
- }
-
- canjump = 1;
-
- /* edge8n %g0, %g0, %g0 */
- __asm__ __volatile__(".word\t0x81b00020");
-
- canjump = 0;
accel |= ACCEL_SPARC_VIS2;
-
- signal (SIGILL, SIG_DFL);
-
return accel;
}