// Generated by opcode_generator.rb from JavaScriptCore/b3/air/AirOpcode.opcodes -- do not edit!
#ifndef AirOpcodeUtils_h
#define AirOpcodeUtils_h
#include "AirCustom.h"
#include "AirInst.h"
#include "AirFormTable.h"
namespace JSC { namespace B3 { namespace Air {
inline bool opgenHiddenTruth() { return true; }
template<typename T>
inline T* opgenHiddenPtrIdentity(T* pointer) { return pointer; }
#define OPGEN_RETURN(value) do {\
    if (opgenHiddenTruth())\
        return value;\
} while (false)
template<typename Functor>
ALWAYS_INLINE void Inst::forEachArg(const Functor& functor)
{
switch (kind.opcode) {
case Opcode::EntrySwitch:
case Opcode::Shuffle:
case Opcode::Patch:
case Opcode::CCall:
case Opcode::ColdCCall:
case Opcode::WasmBoundsCheck:
forEachArgCustom(scopedLambdaRef<EachArgCallback>(functor));
return;
default:
forEachArgSimple(functor);
return;
}
}
template<typename Func>
ALWAYS_INLINE void Inst::forEachArgSimple(const Func& func)
{
    size_t numOperands = args.size();
    size_t formOffset = (numOperands - 1) * numOperands / 2;
    const uint8_t* formBase = g_formTable + kind.opcode * 21 + formOffset;
    for (size_t i = 0; i < numOperands; ++i) {
        uint8_t form = formBase[i];
        ASSERT(!(form & (1 << formInvalidShift)));
        func(args[i], decodeFormRole(form), decodeFormBank(form), decodeFormWidth(form));
    }
}
template<typename... Arguments>
ALWAYS_INLINE bool isValidForm(Opcode opcode, Arguments... arguments)
{
Arg::Kind kinds[sizeof...(Arguments)] = { arguments... };
switch (opcode) {
case Opcode::Nop:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::Add32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Add8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Add16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Add64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AddDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AddFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Sub32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Sub64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SubDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SubFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Neg32:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Neg64:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::NegateDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::NegateFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Mul32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Mul64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplyAdd32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplyAdd64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplySub32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplySub64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplyNeg32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplyNeg64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MultiplySignExtend32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Div32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::UDiv32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Div64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::UDiv64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MulDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MulFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::DivDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::DivFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86ConvertToDoubleWord32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86ConvertToQuadWord64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86Div32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86UDiv32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86Div64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::X86UDiv64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Lea32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
if (opgenHiddenPtrIdentity(kinds)[0] == Arg::Stack)
    return false;
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
if (opgenHiddenPtrIdentity(kinds)[0] == Arg::Stack)
    return false;
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Lea64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
if (opgenHiddenPtrIdentity(kinds)[0] == Arg::Stack)
    return false;
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
if (opgenHiddenPtrIdentity(kinds)[0] == Arg::Stack)
    return false;
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::And32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::And64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#if USE(JSVALUE64)
case Arg::BitImm64:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#endif // USE(JSVALUE64)
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AndDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AndFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::OrDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::OrFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::XorDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::XorFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Lshift32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Lshift64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Rshift32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Rshift64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Urshift32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Urshift64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RotateRight32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RotateRight64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RotateLeft32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RotateLeft64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Or32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Or64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#if USE(JSVALUE64)
case Arg::BitImm64:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#endif // USE(JSVALUE64)
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xor32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xor64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#if USE(JSVALUE64)
case Arg::BitImm64:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
#endif // USE(JSVALUE64)
default:
break;
}
break;
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Not32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Not64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AbsDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AbsFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CeilDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CeilFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::FloorDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::FloorFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SqrtDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SqrtFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertInt32ToDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertInt64ToDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertInt32ToFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertInt64ToFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CountLeadingZeros32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CountLeadingZeros64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertDoubleToFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ConvertFloatToDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Move:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
#if USE(JSVALUE64)
case Arg::BigImm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
#endif // USE(JSVALUE64)
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Swap32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Swap64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Move32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreZero32:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreZero64:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SignExtend32ToPtr:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ZeroExtend8To32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SignExtend8To32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::ZeroExtend16To32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::SignExtend16To32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveZeroToDouble:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Move64ToDouble:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Move32ToFloat:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleTo64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveFloatTo32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Load8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Store8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreRel8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Load8SignedExtendTo32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq8SignedExtendTo32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Load16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Load16SignedExtendTo32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq16SignedExtendTo32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Store16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Index:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreRel16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreRel32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
#if CPU(ARMv7) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadAcq64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreRel64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xchg8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xchg16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xchg32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Xchg64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicStrongCAS8:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
case Arg::SimpleAddr:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicStrongCAS16:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
case Arg::SimpleAddr:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicStrongCAS32:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
case Arg::SimpleAddr:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicStrongCAS64:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
case Arg::SimpleAddr:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAtomicStrongCAS8:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAtomicStrongCAS16:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAtomicStrongCAS32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAtomicStrongCAS64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::StatusCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
break;
break;
case Arg::Index:
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAdd8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAdd16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAdd32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAdd64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicSub8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicSub16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicSub32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicSub64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAnd8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAnd16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAnd32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicAnd64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicOr8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicOr16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicOr32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicOr64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXor8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXor16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXor32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXor64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNeg8:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNeg16:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNeg32:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNeg64:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNot8:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNot16:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNot32:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicNot64:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgAdd8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgAdd16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgAdd32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgAdd64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchg8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchg16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchg32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchg64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Index:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLink8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLinkAcq8:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCond8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCondRel8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLink16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLinkAcq16:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCond16:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCondRel16:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLink32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLinkAcq32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCond32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCondRel32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLink64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::LoadLinkAcq64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCond64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::StoreCondRel64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Depend32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Depend64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgOr8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgOr16:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgOr32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgOr64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgClear8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgClear16:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgClear32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgClear64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgXor8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgXor16:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgXor32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::AtomicXchgXor64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::SimpleAddr:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(ARM64E)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Compare32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Compare64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Test32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Test64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CompareDouble:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::CompareFloat:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Branch8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Branch32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Imm:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Branch64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Imm:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Imm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchTest8:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchTest32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::BitImm:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchTest64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
#if USE(JSVALUE64)
case Arg::BitImm64:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
#endif // USE(JSVALUE64)
case Arg::BitImm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::BitImm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchTestBit64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchTestBit32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchDouble:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchFloat:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAdd32:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchAdd64:
switch (sizeof...(Arguments)) {
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchMul32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 4:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchMul64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchSub32:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchSub64:
switch (sizeof...(Arguments)) {
case 3:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchNeg32:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::BranchNeg64:
switch (sizeof...(Arguments)) {
case 2:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionally32:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionally64:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionallyTest32:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionallyTest64:
switch (sizeof...(Arguments)) {
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionallyDouble:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveConditionallyFloat:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case 5:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionally32:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionally64:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::RelCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionallyTest32:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::BitImm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86) || CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionallyTest64:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::ResCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Addr:
case Arg::Stack:
case Arg::CallArg:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Arg::Index:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Imm:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
#if CPU(X86_64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionallyDouble:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MoveDoubleConditionallyFloat:
switch (sizeof...(Arguments)) {
case 6:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::DoubleCond:
switch (opgenHiddenPtrIdentity(kinds)[1]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[2]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[3]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[4]) {
case Arg::Tmp:
switch (opgenHiddenPtrIdentity(kinds)[5]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::MemoryFence:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::StoreFence:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::LoadFence:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::Jump:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::RetVoid:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::Ret32:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Ret64:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
#if CPU(X86_64) || CPU(ARM64)
OPGEN_RETURN(true);
#endif
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RetFloat:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::RetDouble:
switch (sizeof...(Arguments)) {
case 1:
switch (opgenHiddenPtrIdentity(kinds)[0]) {
case Arg::Tmp:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
default:
break;
}
break;
case Opcode::Oops:
switch (sizeof...(Arguments)) {
case 0:
OPGEN_RETURN(true);
break;
break;
default:
break;
}
break;
case Opcode::EntrySwitch:
OPGEN_RETURN(EntrySwitchCustom::isValidFormStatic(arguments...));
break;
case Opcode::Shuffle:
OPGEN_RETURN(ShuffleCustom::isValidFormStatic(arguments...));
break;
case Opcode::Patch:
OPGEN_RETURN(PatchCustom::isValidFormStatic(arguments...));
break;
case Opcode::CCall:
OPGEN_RETURN(CCallCustom::isValidFormStatic(arguments...));
break;
case Opcode::ColdCCall:
OPGEN_RETURN(ColdCCallCustom::isValidFormStatic(arguments...));
break;
case Opcode::WasmBoundsCheck:
OPGEN_RETURN(WasmBoundsCheckCustom::isValidFormStatic(arguments...));
break;
default:
break;
}
return false; 
}
inline bool isDefinitelyTerminal(Opcode opcode)
{
switch (opcode) {
case Opcode::BranchAtomicStrongCAS8:
case Opcode::BranchAtomicStrongCAS16:
case Opcode::BranchAtomicStrongCAS32:
case Opcode::BranchAtomicStrongCAS64:
case Opcode::Branch8:
case Opcode::Branch32:
case Opcode::Branch64:
case Opcode::BranchTest8:
case Opcode::BranchTest32:
case Opcode::BranchTest64:
case Opcode::BranchTestBit64:
case Opcode::BranchTestBit32:
case Opcode::BranchDouble:
case Opcode::BranchFloat:
case Opcode::BranchAdd32:
case Opcode::BranchAdd64:
case Opcode::BranchMul32:
case Opcode::BranchMul64:
case Opcode::BranchSub32:
case Opcode::BranchSub64:
case Opcode::BranchNeg32:
case Opcode::BranchNeg64:
case Opcode::Jump:
case Opcode::RetVoid:
case Opcode::Ret32:
case Opcode::Ret64:
case Opcode::RetFloat:
case Opcode::RetDouble:
case Opcode::Oops:
return true;
default:
return false;
}
}
inline bool isReturn(Opcode opcode)
{
switch (opcode) {
case Opcode::RetVoid:
case Opcode::Ret32:
case Opcode::Ret64:
case Opcode::RetFloat:
case Opcode::RetDouble:
return true;
default:
return false;
}
}
} } } // namespace JSC::B3::Air
#endif // AirOpcodeUtils_h
