mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-04-02 10:42:14 -04:00
This is an experimental release, as such it is posted only to Google Code. Changelog: - 21fx API moved to pre-finalized form as S-MSU1; more about this on the forum - OpenGL driver now uses GL_CLAMP_TO_BORDER instead of GL_CLAMP_TO_EDGE to support screen curvature shader - rewrote file open dialog; code is greatly simplified, interface is improved - all cheat code columns are now enquoted, and empty codes at the bottom of the file are omitted (format is compatible with previous releases still) - debugger: added missing DMA variables to S-CPU properties viewer - snesfilter: added OpenMP (multi-threading) support to HQ2x filter - lots of other miscellaneous code cleanup work
57 lines
3.2 KiB
C++
57 lines
3.2 KiB
C++
// #included by rarvm.cpp
|
|
#ifdef RAR_COMMON_HPP
|
|
#define VMCF_OP0 0
|
|
#define VMCF_OP1 1
|
|
#define VMCF_OP2 2
|
|
#define VMCF_OPMASK 3
|
|
#define VMCF_BYTEMODE 4
|
|
#define VMCF_JUMP 8
|
|
#define VMCF_PROC 16
|
|
#define VMCF_USEFLAGS 32
|
|
#define VMCF_CHFLAGS 64
|
|
|
|
const
|
|
static byte VM_CmdFlags[]=
|
|
{
|
|
/* VM_MOV */ VMCF_OP2 | VMCF_BYTEMODE ,
|
|
/* VM_CMP */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_ADD */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_SUB */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_JZ */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JNZ */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_INC */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_DEC */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_JMP */ VMCF_OP1 | VMCF_JUMP ,
|
|
/* VM_XOR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_AND */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_OR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_TEST */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_JS */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JNS */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JB */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JBE */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JA */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_JAE */ VMCF_OP1 | VMCF_JUMP | VMCF_USEFLAGS ,
|
|
/* VM_PUSH */ VMCF_OP1 ,
|
|
/* VM_POP */ VMCF_OP1 ,
|
|
/* VM_CALL */ VMCF_OP1 | VMCF_PROC ,
|
|
/* VM_RET */ VMCF_OP0 | VMCF_PROC ,
|
|
/* VM_NOT */ VMCF_OP1 | VMCF_BYTEMODE ,
|
|
/* VM_SHL */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_SHR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_SAR */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_NEG */ VMCF_OP1 | VMCF_BYTEMODE | VMCF_CHFLAGS ,
|
|
/* VM_PUSHA */ VMCF_OP0 ,
|
|
/* VM_POPA */ VMCF_OP0 ,
|
|
/* VM_PUSHF */ VMCF_OP0 | VMCF_USEFLAGS ,
|
|
/* VM_POPF */ VMCF_OP0 | VMCF_CHFLAGS ,
|
|
/* VM_MOVZX */ VMCF_OP2 ,
|
|
/* VM_MOVSX */ VMCF_OP2 ,
|
|
/* VM_XCHG */ VMCF_OP2 | VMCF_BYTEMODE ,
|
|
/* VM_MUL */ VMCF_OP2 | VMCF_BYTEMODE ,
|
|
/* VM_DIV */ VMCF_OP2 | VMCF_BYTEMODE ,
|
|
/* VM_ADC */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS ,
|
|
/* VM_SBB */ VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS ,
|
|
/* VM_PRINT */ VMCF_OP0
|
|
};
|
|
#endif
|