mirror of
https://github.com/yuzu-emu/unicorn
synced 2024-11-24 16:38:40 +00:00
Sorted uc_modes by CPU and added masks
This commit is contained in:
parent
b48fbf7520
commit
82b7599e15
2 changed files with 9 additions and 6 deletions
|
@ -11,6 +11,15 @@
|
||||||
#include "unicorn/unicorn.h"
|
#include "unicorn/unicorn.h"
|
||||||
#include "hook.h"
|
#include "hook.h"
|
||||||
|
|
||||||
|
// These are masks of supported modes for each cpu/arch.
|
||||||
|
// They should be updated when changes are made to the uc_mode enum typedef.
|
||||||
|
#define UC_MODE_ARM_MASK (UC_MODE_ARM|UC_MODE_THUMB|UC_MODE_LITTLE_ENDIAN)
|
||||||
|
#define UC_MODE_MIPS_MASK (UC_MODE_MICRO|UC_MODE_MIPS3|UC_MODE_MIPS32R6|UC_MODE_MIPS32|UC_MODE_MIPS64|UC_MODE_LITTLE_ENDIAN|UC_MODE_BIG_ENDIAN)
|
||||||
|
#define UC_MODE_X86_MASK (UC_MODE_16|UC_MODE_32|UC_MODE_64|UC_MODE_LITTLE_ENDIAN)
|
||||||
|
#define UC_MODE_PPC_MASK (UC_MODE_PPC64|UC_MODE_QPX|UC_MODE_LITTLE_ENDIAN)
|
||||||
|
#define UC_MODE_SPARC_MASK (UC_MODE_V9|UC_MODE_LITTLE_ENDIAN)
|
||||||
|
#define UC_MODE_M68K_MASK (UC_MODE_LITTLE_ENDIAN)
|
||||||
|
|
||||||
#define ARR_SIZE(a) (sizeof(a)/sizeof(a[0]))
|
#define ARR_SIZE(a) (sizeof(a)/sizeof(a[0]))
|
||||||
|
|
||||||
QTAILQ_HEAD(CPUTailQ, CPUState);
|
QTAILQ_HEAD(CPUTailQ, CPUState);
|
||||||
|
|
|
@ -93,28 +93,22 @@ typedef enum uc_mode {
|
||||||
UC_MODE_THUMB = 1 << 4, // ARM's Thumb mode, including Thumb-2
|
UC_MODE_THUMB = 1 << 4, // ARM's Thumb mode, including Thumb-2
|
||||||
UC_MODE_MCLASS = 1 << 5, // ARM's Cortex-M series (currently unsupported)
|
UC_MODE_MCLASS = 1 << 5, // ARM's Cortex-M series (currently unsupported)
|
||||||
UC_MODE_V8 = 1 << 6, // ARMv8 A32 encodings for ARM (currently unsupported)
|
UC_MODE_V8 = 1 << 6, // ARMv8 A32 encodings for ARM (currently unsupported)
|
||||||
UC_MODE_ARM_MASK = UC_MODE_ARM|UC_MODE_THUMB|UC_MODE_LITTLE_ENDIAN,
|
|
||||||
// mips
|
// mips
|
||||||
UC_MODE_MICRO = 1 << 4, // MicroMips mode
|
UC_MODE_MICRO = 1 << 4, // MicroMips mode
|
||||||
UC_MODE_MIPS3 = 1 << 5, // Mips III ISA
|
UC_MODE_MIPS3 = 1 << 5, // Mips III ISA
|
||||||
UC_MODE_MIPS32R6 = 1 << 6, // Mips32r6 ISA
|
UC_MODE_MIPS32R6 = 1 << 6, // Mips32r6 ISA
|
||||||
UC_MODE_MIPS32 = 1 << 2, // Mips32 ISA
|
UC_MODE_MIPS32 = 1 << 2, // Mips32 ISA
|
||||||
UC_MODE_MIPS64 = 1 << 3, // Mips64 ISA
|
UC_MODE_MIPS64 = 1 << 3, // Mips64 ISA
|
||||||
UC_MODE_MIPS_MASK = UC_MODE_MICRO|UC_MODE_MIPS3|UC_MODE_MIPS32R6|UC_MODE_MIPS32|UC_MODE_MIPS64|UC_MODE_LITTLE_ENDIAN|UC_MODE_BIG_ENDIAN,
|
|
||||||
// x86 / x64
|
// x86 / x64
|
||||||
UC_MODE_16 = 1 << 1, // 16-bit mode
|
UC_MODE_16 = 1 << 1, // 16-bit mode
|
||||||
UC_MODE_32 = 1 << 2, // 32-bit mode
|
UC_MODE_32 = 1 << 2, // 32-bit mode
|
||||||
UC_MODE_64 = 1 << 3, // 64-bit mode
|
UC_MODE_64 = 1 << 3, // 64-bit mode
|
||||||
UC_MODE_X86_MASK = UC_MODE_16|UC_MODE_32|UC_MODE_64|UC_MODE_LITTLE_ENDIAN,
|
|
||||||
// ppc
|
// ppc
|
||||||
UC_MODE_PPC64 = 1 << 3, // 64-bit mode
|
UC_MODE_PPC64 = 1 << 3, // 64-bit mode
|
||||||
UC_MODE_QPX = 1 << 4, // Quad Processing eXtensions mode
|
UC_MODE_QPX = 1 << 4, // Quad Processing eXtensions mode
|
||||||
UC_MODE_PPC_MASK = UC_MODE_PPC64|UC_MODE_QPX|UC_MODE_LITTLE_ENDIAN,
|
|
||||||
// sparc
|
// sparc
|
||||||
UC_MODE_V9 = 1 << 4, // SparcV9 mode
|
UC_MODE_V9 = 1 << 4, // SparcV9 mode
|
||||||
UC_MODE_SPARC_MASK = UC_MODE_V9|UC_MODE_LITTLE_ENDIAN,
|
|
||||||
// m68k
|
// m68k
|
||||||
UC_MODE_M68K_MASK = UC_MODE_LITTLE_ENDIAN,
|
|
||||||
} uc_mode;
|
} uc_mode;
|
||||||
|
|
||||||
// All type of errors encountered by Unicorn API.
|
// All type of errors encountered by Unicorn API.
|
||||||
|
|
Loading…
Reference in a new issue