| // Generated by opcode_generator.rb from Source/JavaScriptCore/b3/air/AirOpcode.opcodes -- do not edit! |
| #ifndef AirOpcodeUtils_h |
| #define AirOpcodeUtils_h |
| #include "AirCustom.h" |
| #include "AirInst.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> |
| void Inst::forEachArg(const Functor& functor) |
| { |
| switch (this->opcode) { |
| case Nop: |
| break; |
| case Add32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Add8: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width8); |
| break; |
| case Add16: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width16); |
| break; |
| case Add64: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case AddDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case AddFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Sub32: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Sub64: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case SubDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case SubFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Neg32: |
| functor(args[0], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case Neg64: |
| functor(args[0], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case NegateDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case NegateFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case Mul32: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Mul64: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MultiplyAdd32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case MultiplyAdd64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case MultiplySub32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case MultiplySub64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case MultiplyNeg32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case MultiplyNeg64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| case Div32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Div64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case MulDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MulFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case DivDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case DivFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case X86ConvertToDoubleWord32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case X86ConvertToQuadWord64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case X86Div32: |
| functor(args[0], Arg::UseZDef, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| break; |
| case X86Div64: |
| functor(args[0], Arg::UseZDef, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| break; |
| case Lea: |
| functor(args[0], Arg::UseAddr, Arg::GP, Arg::pointerWidth()); |
| functor(args[1], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| case And32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case And64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case AndDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case AndFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case XorDouble: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case XorFloat: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::FP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Lshift32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Lshift64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Rshift32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Rshift64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Urshift32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Urshift64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Or32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Or64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Xor32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Xor64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Not32: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 1: |
| functor(args[0], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case Not64: |
| switch (this->args.size()) { |
| case 2: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case 1: |
| functor(args[0], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case AbsDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case AbsFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case CeilDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case CeilFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case FloorDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case FloorFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case SqrtDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case SqrtFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case ConvertInt32ToDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case ConvertInt64ToDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case ConvertInt32ToFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case ConvertInt64ToFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case CountLeadingZeros32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case CountLeadingZeros64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case ConvertDoubleToFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case ConvertFloatToDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case Move: |
| functor(args[0], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[1], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| case Swap32: |
| functor(args[0], Arg::UseDef, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width32); |
| break; |
| case Swap64: |
| functor(args[0], Arg::UseDef, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case Move32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case StoreZero32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| break; |
| case SignExtend32ToPtr: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| case ZeroExtend8To32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case SignExtend8To32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case ZeroExtend16To32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case SignExtend16To32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case MoveFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case MoveDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveZeroToDouble: |
| functor(args[0], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case Move64ToDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case Move32ToFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::FP, Arg::Width32); |
| break; |
| case MoveDoubleTo64: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width64); |
| break; |
| case MoveFloatTo32: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width32); |
| break; |
| case Load8: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Store8: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width8); |
| break; |
| case Load8SignedExtendTo32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Load16: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Load16SignedExtendTo32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Store16: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width16); |
| functor(args[1], Arg::Def, Arg::GP, Arg::Width16); |
| break; |
| case Compare32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Compare64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Test32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Test64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case CompareDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case CompareFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case Branch8: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width8); |
| break; |
| case Branch32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| break; |
| case Branch64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| break; |
| case BranchTest8: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width8); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width8); |
| break; |
| case BranchTest32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| break; |
| case BranchTest64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| break; |
| case BranchDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width64); |
| break; |
| case BranchFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width32); |
| break; |
| case BranchAdd32: |
| switch (this->args.size()) { |
| case 4: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case BranchAdd64: |
| switch (this->args.size()) { |
| case 4: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case BranchMul32: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case 4: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Scratch, Arg::GP, Arg::Width32); |
| functor(args[4], Arg::Scratch, Arg::GP, Arg::Width32); |
| functor(args[5], Arg::ZDef, Arg::GP, Arg::Width32); |
| break; |
| default: |
| break; |
| } |
| break; |
| case BranchMul64: |
| switch (this->args.size()) { |
| case 3: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::UseZDef, Arg::GP, Arg::Width64); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Scratch, Arg::GP, Arg::Width64); |
| functor(args[4], Arg::Scratch, Arg::GP, Arg::Width64); |
| functor(args[5], Arg::ZDef, Arg::GP, Arg::Width64); |
| break; |
| default: |
| break; |
| } |
| break; |
| case BranchSub32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case BranchSub64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::UseDef, Arg::GP, Arg::Width64); |
| break; |
| case BranchNeg32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width32); |
| break; |
| case BranchNeg64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::UseZDef, Arg::GP, Arg::Width64); |
| break; |
| case MoveConditionally32: |
| switch (this->args.size()) { |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveConditionally64: |
| switch (this->args.size()) { |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveConditionallyTest32: |
| switch (this->args.size()) { |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveConditionallyTest64: |
| switch (this->args.size()) { |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveConditionallyDouble: |
| switch (this->args.size()) { |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveConditionallyFloat: |
| switch (this->args.size()) { |
| case 6: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[5], Arg::Def, Arg::GP, Arg::pointerWidth()); |
| break; |
| case 5: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::GP, Arg::pointerWidth()); |
| functor(args[4], Arg::UseDef, Arg::GP, Arg::pointerWidth()); |
| break; |
| default: |
| break; |
| } |
| break; |
| case MoveDoubleConditionally32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveDoubleConditionally64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveDoubleConditionallyTest32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveDoubleConditionallyTest64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::GP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveDoubleConditionallyDouble: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MoveDoubleConditionallyFloat: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| functor(args[1], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[2], Arg::Use, Arg::FP, Arg::Width32); |
| functor(args[3], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[4], Arg::Use, Arg::FP, Arg::Width64); |
| functor(args[5], Arg::Def, Arg::FP, Arg::Width64); |
| break; |
| case MemoryFence: |
| break; |
| case Jump: |
| break; |
| case RetVoid: |
| break; |
| case Ret32: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width32); |
| break; |
| case Ret64: |
| functor(args[0], Arg::Use, Arg::GP, Arg::Width64); |
| break; |
| case RetFloat: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width32); |
| break; |
| case RetDouble: |
| functor(args[0], Arg::Use, Arg::FP, Arg::Width64); |
| break; |
| case Oops: |
| break; |
| case EntrySwitch: |
| EntrySwitchCustom::forEachArg(*this, functor); |
| break; |
| case Shuffle: |
| ShuffleCustom::forEachArg(*this, functor); |
| break; |
| case Patch: |
| PatchCustom::forEachArg(*this, functor); |
| break; |
| case CCall: |
| CCallCustom::forEachArg(*this, functor); |
| break; |
| case ColdCCall: |
| ColdCCallCustom::forEachArg(*this, functor); |
| break; |
| default: |
| break; |
| } |
| } |
| template<typename... Arguments> |
| ALWAYS_INLINE bool isValidForm(Opcode opcode, Arguments... arguments) |
| { |
| Arg::Kind kinds[sizeof...(Arguments)] = { arguments... }; |
| switch (opcode) { |
| case Nop: |
| switch (sizeof...(Arguments)) { |
| case 0: |
| OPGEN_RETURN(true); |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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; |
| 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::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; |
| 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 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 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 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; |
| 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::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: |
| #if CPU(ARM64) |
| OPGEN_RETURN(true); |
| #endif |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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; |
| 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::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; |
| 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 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 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 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Lea: |
| 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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; |
| 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; |
| 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 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; |
| 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 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 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 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 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 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 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 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 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 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 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 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; |
| 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; |
| 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 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; |
| 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 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; |
| 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; |
| 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 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; |
| 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 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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) || 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; |
| case 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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 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 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 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 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; |
| default: |
| break; |
| } |
| break; |
| case 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; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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 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 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 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 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 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 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 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 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; |
| default: |
| break; |
| } |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 MemoryFence: |
| switch (sizeof...(Arguments)) { |
| case 0: |
| OPGEN_RETURN(true); |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| case Jump: |
| switch (sizeof...(Arguments)) { |
| case 0: |
| OPGEN_RETURN(true); |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| case RetVoid: |
| switch (sizeof...(Arguments)) { |
| case 0: |
| OPGEN_RETURN(true); |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| case 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 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 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 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 Oops: |
| switch (sizeof...(Arguments)) { |
| case 0: |
| OPGEN_RETURN(true); |
| break; |
| break; |
| default: |
| break; |
| } |
| break; |
| case EntrySwitch: |
| OPGEN_RETURN(EntrySwitchCustom::isValidFormStatic(arguments...)); |
| break; |
| case Shuffle: |
| OPGEN_RETURN(ShuffleCustom::isValidFormStatic(arguments...)); |
| break; |
| case Patch: |
| OPGEN_RETURN(PatchCustom::isValidFormStatic(arguments...)); |
| break; |
| case CCall: |
| OPGEN_RETURN(CCallCustom::isValidFormStatic(arguments...)); |
| break; |
| case ColdCCall: |
| OPGEN_RETURN(ColdCCallCustom::isValidFormStatic(arguments...)); |
| break; |
| default: |
| break; |
| } |
| return false; |
| } |
| inline bool isDefinitelyTerminal(Opcode opcode) |
| { |
| switch (opcode) { |
| case Branch8: |
| case Branch32: |
| case Branch64: |
| case BranchTest8: |
| case BranchTest32: |
| case BranchTest64: |
| case BranchDouble: |
| case BranchFloat: |
| case BranchAdd32: |
| case BranchAdd64: |
| case BranchMul32: |
| case BranchMul64: |
| case BranchSub32: |
| case BranchSub64: |
| case BranchNeg32: |
| case BranchNeg64: |
| case Jump: |
| case RetVoid: |
| case Ret32: |
| case Ret64: |
| case RetFloat: |
| case RetDouble: |
| case Oops: |
| return true; |
| default: |
| return false; |
| } |
| } |
| inline bool isReturn(Opcode opcode) |
| { |
| switch (opcode) { |
| case RetVoid: |
| case Ret32: |
| case Ret64: |
| case RetFloat: |
| case RetDouble: |
| return true; |
| default: |
| return false; |
| } |
| } |
| } } } // namespace JSC::B3::Air |
| #endif // AirOpcodeUtils_h |