1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
/******************************************************************************\
* Authors: Iconoclast *
* Release: 2013.12.12 *
* License: CC0 Public Domain Dedication *
* *
* To the extent possible under law, the author(s) have dedicated all copyright *
* and related and neighboring rights to this software to the public domain *
* worldwide. This software is distributed without any warranty. *
* *
* You should have received a copy of the CC0 Public Domain Dedication along *
* with this software. *
* If not, see <http://creativecommons.org/publicdomain/zero/1.0/>. *
\******************************************************************************/
#ifndef _RSP_H_
#define _RSP_H_
RSP_INFO RSP;
#ifdef _MSC_VER
#define NOINLINE __declspec(noinline)
#define ALIGNED _declspec(align(16))
#else
#define NOINLINE __attribute__((noinline))
#define ALIGNED __attribute__((aligned(16)))
#endif
#ifdef USE_SSE_SUPPORT
#define ARCH_MIN_SSE2
#endif
/*
* Streaming SIMD Extensions version import management
*/
#ifdef ARCH_MIN_SSSE3
#define ARCH_MIN_SSE2
#include <tmmintrin.h>
#endif
#ifdef ARCH_MIN_SSE2
#include <emmintrin.h>
#endif
typedef uint8_t byte;
typedef enum
{
M_GFXTASK = 1,
M_AUDTASK = 2,
M_VIDTASK = 3,
M_NJPEGTASK = 4,
M_NULTASK = 5,
M_HVQTASK = 6,
M_HVQMTASK = 7
} OSTask_type;
/*
* This allows us to update the program counter register in the RSP
* interpreter in a much faster way overall to the running CPU loop.
*
* Branch delay slots and such with the MIPS architecture make the
* PC register emulation complicate the interpreter switches when
* emulated normally.
*/
#define EMULATE_STATIC_PC
#endif
|