BizHawk/waterbox/ares64/ares/nall/recompiler/generic/constants.hpp

63 lines
1.5 KiB
C++

#pragma once
//{
enum set_flags {
set_z = SLJIT_SET_Z,
set_ult = SLJIT_SET_LESS,
set_uge = SLJIT_SET_GREATER_EQUAL,
set_ugt = SLJIT_SET_GREATER,
set_ule = SLJIT_SET_LESS_EQUAL,
set_slt = SLJIT_SET_SIG_LESS,
set_sge = SLJIT_SET_SIG_GREATER_EQUAL,
set_sgt = SLJIT_SET_SIG_GREATER,
set_sle = SLJIT_SET_SIG_LESS_EQUAL,
set_o = SLJIT_SET_OVERFLOW,
set_c = SLJIT_SET_CARRY,
};
enum flags {
flag_eq = SLJIT_EQUAL,
flag_z = flag_eq,
flag_ne = SLJIT_NOT_EQUAL,
flag_nz = flag_ne,
flag_ult = SLJIT_LESS,
flag_uge = SLJIT_GREATER_EQUAL,
flag_ugt = SLJIT_GREATER,
flag_ule = SLJIT_LESS_EQUAL,
flag_slt = SLJIT_SIG_LESS,
flag_sge = SLJIT_SIG_GREATER_EQUAL,
flag_sgt = SLJIT_SIG_GREATER,
flag_sle = SLJIT_SIG_LESS_EQUAL,
flag_o = SLJIT_OVERFLOW,
flag_no = SLJIT_NOT_OVERFLOW,
flag_c = SLJIT_CARRY,
flag_nc = SLJIT_NOT_CARRY,
};
struct op_base {
op_base(sljit_s32 f, sljit_sw s) : fst(f), snd(s) {}
sljit_s32 fst;
sljit_sw snd;
};
struct imm : public op_base {
explicit imm(sljit_sw immediate) : op_base(SLJIT_IMM, immediate) {}
};
struct reg : public op_base {
explicit reg(sljit_s32 index) : op_base(SLJIT_R(index), 0) {}
};
struct sreg : public op_base {
explicit sreg(sljit_s32 index) : op_base(SLJIT_S(index), 0) {}
};
struct mem : public op_base {
mem(sreg base, sljit_sw offset) : op_base(SLJIT_MEM1(base.fst), offset) {}
};
struct unused {
unused() {}
};
//};