12 #include "../../MCInst.h"
13 #include "../../LEB128.h"
16 #define FieldFromInstruction(fname, InsnType) \
17 static InsnType fname(InsnType insn, unsigned startBit, \
21 if (numBits == sizeof(InsnType)*8) \
22 fieldMask = (InsnType)(-1LL); \
24 fieldMask = (((InsnType)1 << numBits) - 1) << startBit; \
25 return (insn & fieldMask) >> startBit; \
29 FieldFromInstruction(fieldFromInstruction_4,
uint32_t)
31 static const uint8_t DecoderTable32[] = {
2378 static uint8_t DecoderTableQPX32[] = {
2799 static bool checkDecoderPredicate(
unsigned Idx,
uint64_t Bits)
2805 #define DecodeToMCInst(fname,fieldname, InsnType) \
2806 static DecodeStatus fname(DecodeStatus S, unsigned Idx, InsnType insn, MCInst *MI, \
2807 uint64_t Address, const void *Decoder) \
2815 tmp = fieldname(insn, 21, 5); \
2816 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2817 tmp = fieldname(insn, 16, 5); \
2818 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2819 tmp = fieldname(insn, 0, 16); \
2820 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2823 tmp = fieldname(insn, 21, 5); \
2824 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2825 tmp = fieldname(insn, 16, 5); \
2826 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2827 tmp = fieldname(insn, 0, 16); \
2828 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2831 tmp = fieldname(insn, 21, 5); \
2832 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2833 tmp = fieldname(insn, 16, 5); \
2834 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2835 tmp = fieldname(insn, 11, 5); \
2836 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2839 tmp = fieldname(insn, 21, 5); \
2840 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2841 tmp = fieldname(insn, 11, 5); \
2842 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2845 tmp = fieldname(insn, 21, 5); \
2846 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2849 tmp = fieldname(insn, 11, 5); \
2850 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2853 tmp = fieldname(insn, 21, 5); \
2854 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2855 tmp = fieldname(insn, 16, 5); \
2856 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2857 tmp = fieldname(insn, 11, 5); \
2858 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2861 tmp = fieldname(insn, 21, 5); \
2862 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2863 tmp = fieldname(insn, 16, 5); \
2864 if (decodeSImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2867 tmp = fieldname(insn, 21, 5); \
2868 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2869 tmp = fieldname(insn, 16, 5); \
2870 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2871 tmp = fieldname(insn, 11, 5); \
2872 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2873 tmp = fieldname(insn, 6, 5); \
2874 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2877 tmp = fieldname(insn, 21, 5); \
2878 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2879 tmp = fieldname(insn, 16, 5); \
2880 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2881 tmp = fieldname(insn, 11, 5); \
2882 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2883 tmp = fieldname(insn, 6, 4); \
2884 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2887 tmp = fieldname(insn, 21, 5); \
2888 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2889 tmp = fieldname(insn, 16, 5); \
2890 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2891 tmp = fieldname(insn, 6, 5); \
2892 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2893 tmp = fieldname(insn, 11, 5); \
2894 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2897 tmp = fieldname(insn, 21, 5); \
2898 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2899 tmp = fieldname(insn, 16, 5); \
2900 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2901 tmp = fieldname(insn, 0, 16); \
2902 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2905 tmp = fieldname(insn, 23, 3); \
2906 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2907 tmp = fieldname(insn, 16, 5); \
2908 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2909 tmp = fieldname(insn, 0, 16); \
2910 if (decodeUImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2913 tmp = fieldname(insn, 23, 3); \
2914 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2915 tmp = fieldname(insn, 16, 5); \
2916 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2917 tmp = fieldname(insn, 0, 16); \
2918 if (decodeUImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2921 tmp = fieldname(insn, 23, 3); \
2922 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2923 tmp = fieldname(insn, 16, 5); \
2924 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2925 tmp = fieldname(insn, 0, 16); \
2926 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2929 tmp = fieldname(insn, 23, 3); \
2930 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2931 tmp = fieldname(insn, 16, 5); \
2932 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2933 tmp = fieldname(insn, 0, 16); \
2934 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2937 tmp = fieldname(insn, 21, 5); \
2938 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2939 tmp = fieldname(insn, 0, 16); \
2940 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2943 tmp = fieldname(insn, 21, 5); \
2944 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2945 tmp = fieldname(insn, 16, 5); \
2946 if (DecodeGPRC_NOR0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2947 tmp = fieldname(insn, 0, 16); \
2948 if (decodeSImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2951 tmp = fieldname(insn, 2, 14); \
2952 MCOperand_CreateImm0(MI, tmp); \
2955 tmp = fieldname(insn, 21, 5); \
2956 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2957 tmp = fieldname(insn, 16, 5); \
2958 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2959 tmp = fieldname(insn, 2, 14); \
2960 MCOperand_CreateImm0(MI, tmp); \
2963 tmp = fieldname(insn, 5, 7); \
2964 MCOperand_CreateImm0(MI, tmp); \
2967 tmp = fieldname(insn, 2, 24); \
2968 MCOperand_CreateImm0(MI, tmp); \
2971 tmp = fieldname(insn, 23, 3); \
2972 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2973 tmp = fieldname(insn, 18, 3); \
2974 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2977 tmp = fieldname(insn, 21, 5); \
2978 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2979 tmp = fieldname(insn, 16, 5); \
2980 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2981 tmp = fieldname(insn, 11, 2); \
2982 MCOperand_CreateImm0(MI, tmp); \
2985 tmp = fieldname(insn, 21, 5); \
2986 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2987 tmp = fieldname(insn, 16, 5); \
2988 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2989 tmp = fieldname(insn, 11, 5); \
2990 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2993 tmp = fieldname(insn, 16, 5); \
2994 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2995 tmp = fieldname(insn, 16, 5); \
2996 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2997 tmp = fieldname(insn, 21, 5); \
2998 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
2999 tmp = fieldname(insn, 11, 5); \
3000 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3001 tmp = fieldname(insn, 6, 5); \
3002 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3003 tmp = fieldname(insn, 1, 5); \
3004 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3007 tmp = fieldname(insn, 16, 5); \
3008 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3009 tmp = fieldname(insn, 21, 5); \
3010 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3011 tmp = fieldname(insn, 11, 5); \
3012 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3013 tmp = fieldname(insn, 6, 5); \
3014 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3015 tmp = fieldname(insn, 1, 5); \
3016 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3019 tmp = fieldname(insn, 16, 5); \
3020 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3021 tmp = fieldname(insn, 21, 5); \
3022 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3023 tmp = fieldname(insn, 11, 5); \
3024 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3025 tmp = fieldname(insn, 6, 5); \
3026 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3027 tmp = fieldname(insn, 1, 5); \
3028 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3031 tmp = fieldname(insn, 16, 5); \
3032 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3033 tmp = fieldname(insn, 21, 5); \
3034 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3035 tmp = fieldname(insn, 0, 16); \
3036 if (decodeUImmOperand(MI, tmp, Address, Decoder, 16) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3039 tmp = fieldname(insn, 16, 5); \
3040 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3041 tmp = fieldname(insn, 21, 5); \
3042 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3044 tmp |= fieldname(insn, 1, 1) << 5; \
3045 tmp |= fieldname(insn, 11, 5) << 0; \
3046 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3048 tmp |= fieldname(insn, 5, 1) << 5; \
3049 tmp |= fieldname(insn, 6, 5) << 0; \
3050 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3053 tmp = fieldname(insn, 16, 5); \
3054 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3055 tmp = fieldname(insn, 16, 5); \
3056 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3057 tmp = fieldname(insn, 21, 5); \
3058 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3060 tmp |= fieldname(insn, 1, 1) << 5; \
3061 tmp |= fieldname(insn, 11, 5) << 0; \
3062 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3064 tmp |= fieldname(insn, 5, 1) << 5; \
3065 tmp |= fieldname(insn, 6, 5) << 0; \
3066 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3069 tmp = fieldname(insn, 16, 5); \
3070 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3071 tmp = fieldname(insn, 21, 5); \
3072 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3073 tmp = fieldname(insn, 11, 5); \
3074 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3076 tmp |= fieldname(insn, 5, 1) << 5; \
3077 tmp |= fieldname(insn, 6, 5) << 0; \
3078 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3081 tmp = fieldname(insn, 23, 3); \
3082 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3083 tmp = fieldname(insn, 16, 5); \
3084 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3085 tmp = fieldname(insn, 11, 5); \
3086 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3089 tmp = fieldname(insn, 23, 3); \
3090 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3091 tmp = fieldname(insn, 16, 5); \
3092 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3093 tmp = fieldname(insn, 11, 5); \
3094 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3097 tmp = fieldname(insn, 21, 5); \
3098 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3101 tmp = fieldname(insn, 15, 1); \
3102 MCOperand_CreateImm0(MI, tmp); \
3105 tmp = fieldname(insn, 21, 5); \
3106 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3108 tmp |= fieldname(insn, 11, 5) << 5; \
3109 tmp |= fieldname(insn, 16, 5) << 0; \
3110 MCOperand_CreateImm0(MI, tmp); \
3113 tmp = fieldname(insn, 21, 5); \
3114 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3115 tmp = fieldname(insn, 16, 5); \
3116 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3117 tmp = fieldname(insn, 11, 5); \
3118 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3121 tmp = fieldname(insn, 21, 5); \
3122 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3123 tmp = fieldname(insn, 16, 5); \
3124 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3125 tmp = fieldname(insn, 11, 5); \
3126 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3129 tmp = fieldname(insn, 21, 5); \
3130 if (DecodeVRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3131 tmp = fieldname(insn, 16, 5); \
3132 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3133 tmp = fieldname(insn, 11, 5); \
3134 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3137 tmp = fieldname(insn, 16, 5); \
3138 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3139 tmp = fieldname(insn, 11, 5); \
3140 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3143 tmp = fieldname(insn, 21, 5); \
3144 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3145 tmp = fieldname(insn, 16, 5); \
3146 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3147 tmp = fieldname(insn, 11, 5); \
3148 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3151 tmp = fieldname(insn, 21, 5); \
3152 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3153 tmp = fieldname(insn, 16, 5); \
3154 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3155 tmp = fieldname(insn, 11, 5); \
3156 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3159 tmp = fieldname(insn, 21, 5); \
3160 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3161 tmp = fieldname(insn, 16, 5); \
3162 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3166 tmp |= fieldname(insn, 0, 1) << 5; \
3167 tmp |= fieldname(insn, 21, 5) << 0; \
3168 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3169 tmp = fieldname(insn, 16, 5); \
3170 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3171 tmp = fieldname(insn, 11, 5); \
3172 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3176 tmp |= fieldname(insn, 0, 1) << 5; \
3177 tmp |= fieldname(insn, 21, 5) << 0; \
3178 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3179 tmp = fieldname(insn, 16, 5); \
3180 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3181 tmp = fieldname(insn, 11, 5); \
3182 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3185 tmp = fieldname(insn, 21, 5); \
3186 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3187 tmp = fieldname(insn, 16, 5); \
3188 if (DecodeGPRC_NOR0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3189 tmp = fieldname(insn, 11, 5); \
3190 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3191 tmp = fieldname(insn, 6, 5); \
3192 if (DecodeCRBITRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3195 tmp = fieldname(insn, 12, 8); \
3196 MCOperand_CreateImm0(MI, tmp); \
3197 tmp = fieldname(insn, 21, 5); \
3198 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3201 tmp = fieldname(insn, 12, 8); \
3202 if (decodeCRBitMOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3203 tmp = fieldname(insn, 21, 5); \
3204 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3207 tmp = fieldname(insn, 21, 5); \
3208 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3209 tmp = fieldname(insn, 12, 8); \
3210 if (decodeCRBitMOperand(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3213 tmp = fieldname(insn, 21, 5); \
3214 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3215 tmp = fieldname(insn, 16, 1); \
3216 MCOperand_CreateImm0(MI, tmp); \
3219 tmp = fieldname(insn, 21, 5); \
3220 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3221 tmp = fieldname(insn, 16, 4); \
3222 MCOperand_CreateImm0(MI, tmp); \
3225 tmp = fieldname(insn, 21, 5); \
3226 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3227 tmp = fieldname(insn, 11, 5); \
3228 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3231 tmp = fieldname(insn, 11, 5); \
3232 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3236 tmp |= fieldname(insn, 11, 5) << 5; \
3237 tmp |= fieldname(insn, 16, 5) << 0; \
3238 MCOperand_CreateImm0(MI, tmp); \
3239 tmp = fieldname(insn, 21, 5); \
3240 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3243 tmp = fieldname(insn, 21, 5); \
3244 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3245 tmp = fieldname(insn, 16, 5); \
3246 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3247 tmp = fieldname(insn, 11, 1); \
3248 MCOperand_CreateImm0(MI, tmp); \
3251 tmp = fieldname(insn, 21, 5); \
3252 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3253 tmp = fieldname(insn, 16, 5); \
3254 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3255 tmp = fieldname(insn, 11, 5); \
3256 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3259 tmp = fieldname(insn, 21, 5); \
3260 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3261 tmp = fieldname(insn, 16, 5); \
3262 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3263 tmp = fieldname(insn, 11, 5); \
3264 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3267 tmp = fieldname(insn, 21, 5); \
3268 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3269 tmp = fieldname(insn, 16, 5); \
3270 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3271 tmp = fieldname(insn, 16, 5); \
3272 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3273 tmp = fieldname(insn, 11, 5); \
3274 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3277 tmp = fieldname(insn, 16, 5); \
3278 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3279 tmp = fieldname(insn, 21, 5); \
3280 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3281 tmp = fieldname(insn, 16, 5); \
3282 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3283 tmp = fieldname(insn, 11, 5); \
3284 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3287 tmp = fieldname(insn, 21, 5); \
3288 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3289 tmp = fieldname(insn, 16, 5); \
3290 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3291 tmp = fieldname(insn, 11, 5); \
3292 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3295 tmp = fieldname(insn, 21, 4); \
3296 MCOperand_CreateImm0(MI, tmp); \
3297 tmp = fieldname(insn, 16, 5); \
3298 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3299 tmp = fieldname(insn, 11, 5); \
3300 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3303 tmp = fieldname(insn, 16, 5); \
3304 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3305 tmp = fieldname(insn, 11, 5); \
3306 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3309 tmp = fieldname(insn, 21, 5); \
3310 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3311 tmp = fieldname(insn, 16, 5); \
3312 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3313 tmp = fieldname(insn, 16, 5); \
3314 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3315 tmp = fieldname(insn, 11, 5); \
3316 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3319 tmp = fieldname(insn, 16, 5); \
3320 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3321 tmp = fieldname(insn, 21, 5); \
3322 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3323 tmp = fieldname(insn, 16, 5); \
3324 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3325 tmp = fieldname(insn, 11, 5); \
3326 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3329 tmp = fieldname(insn, 21, 2); \
3330 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3331 tmp = fieldname(insn, 16, 5); \
3332 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3333 tmp = fieldname(insn, 11, 5); \
3334 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3337 tmp = fieldname(insn, 21, 5); \
3338 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3339 tmp = fieldname(insn, 16, 5); \
3340 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3341 tmp = fieldname(insn, 11, 5); \
3342 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3345 tmp = fieldname(insn, 21, 5); \
3346 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3347 tmp = fieldname(insn, 16, 5); \
3348 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3349 tmp = fieldname(insn, 16, 5); \
3350 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3351 tmp = fieldname(insn, 11, 5); \
3352 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3355 tmp = fieldname(insn, 21, 2); \
3356 MCOperand_CreateImm0(MI, tmp); \
3359 tmp = fieldname(insn, 21, 5); \
3360 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3361 tmp = fieldname(insn, 16, 5); \
3362 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3363 tmp = fieldname(insn, 11, 5); \
3364 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3367 tmp = fieldname(insn, 21, 5); \
3368 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3369 tmp = fieldname(insn, 16, 5); \
3370 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3371 tmp = fieldname(insn, 16, 5); \
3372 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3373 tmp = fieldname(insn, 11, 5); \
3374 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3377 tmp = fieldname(insn, 16, 5); \
3378 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3379 tmp = fieldname(insn, 21, 5); \
3380 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3381 tmp = fieldname(insn, 16, 5); \
3382 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3383 tmp = fieldname(insn, 11, 5); \
3384 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3387 tmp = fieldname(insn, 16, 5); \
3388 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3389 tmp = fieldname(insn, 21, 5); \
3390 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3391 tmp = fieldname(insn, 16, 5); \
3392 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3393 tmp = fieldname(insn, 11, 5); \
3394 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3397 tmp = fieldname(insn, 21, 2); \
3398 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3401 tmp = fieldname(insn, 21, 5); \
3402 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3405 tmp = fieldname(insn, 16, 5); \
3406 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3407 tmp = fieldname(insn, 21, 5); \
3408 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3409 tmp = fieldname(insn, 11, 5); \
3410 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3413 tmp = fieldname(insn, 16, 5); \
3414 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3415 tmp = fieldname(insn, 21, 5); \
3416 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3417 tmp = fieldname(insn, 11, 5); \
3418 if (decodeUImmOperand(MI, tmp, Address, Decoder, 5) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3421 tmp = fieldname(insn, 16, 5); \
3422 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3423 tmp = fieldname(insn, 21, 5); \
3424 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3427 tmp = fieldname(insn, 16, 5); \
3428 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3429 tmp = fieldname(insn, 21, 5); \
3430 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3431 tmp = fieldname(insn, 11, 5); \
3432 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3435 tmp = fieldname(insn, 16, 5); \
3436 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3437 tmp = fieldname(insn, 21, 5); \
3438 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3441 tmp = fieldname(insn, 16, 5); \
3442 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3443 tmp = fieldname(insn, 21, 5); \
3444 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3446 tmp |= fieldname(insn, 1, 1) << 5; \
3447 tmp |= fieldname(insn, 11, 5) << 0; \
3448 if (decodeUImmOperand(MI, tmp, Address, Decoder, 6) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3451 tmp = fieldname(insn, 21, 5); \
3452 if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3453 tmp = fieldname(insn, 0, 21); \
3454 if (decodeMemRIOperands(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3457 tmp = fieldname(insn, 21, 5); \
3458 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3459 tmp = fieldname(insn, 0, 21); \
3460 if (decodeMemRIOperands(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3463 tmp = fieldname(insn, 21, 5); \
3464 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3465 tmp = fieldname(insn, 0, 21); \
3466 if (decodeMemRIOperands(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3469 tmp = fieldname(insn, 21, 5); \
3470 if (DecodeG8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3471 tmp = fieldname(insn, 2, 19); \
3472 if (decodeMemRIXOperands(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3475 tmp = fieldname(insn, 21, 5); \
3476 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3477 tmp = fieldname(insn, 11, 5); \
3478 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3481 tmp = fieldname(insn, 21, 5); \
3482 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3483 tmp = fieldname(insn, 16, 5); \
3484 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3485 tmp = fieldname(insn, 11, 5); \
3486 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3489 tmp = fieldname(insn, 21, 5); \
3490 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3491 tmp = fieldname(insn, 11, 5); \
3492 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3495 tmp = fieldname(insn, 21, 5); \
3496 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3497 tmp = fieldname(insn, 16, 5); \
3498 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3499 tmp = fieldname(insn, 6, 5); \
3500 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3503 tmp = fieldname(insn, 21, 5); \
3504 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3505 tmp = fieldname(insn, 16, 5); \
3506 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3507 tmp = fieldname(insn, 6, 5); \
3508 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3509 tmp = fieldname(insn, 11, 5); \
3510 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3514 tmp |= fieldname(insn, 0, 1) << 5; \
3515 tmp |= fieldname(insn, 21, 5) << 0; \
3516 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3518 tmp |= fieldname(insn, 2, 1) << 5; \
3519 tmp |= fieldname(insn, 16, 5) << 0; \
3520 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3522 tmp |= fieldname(insn, 1, 1) << 5; \
3523 tmp |= fieldname(insn, 11, 5) << 0; \
3524 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3528 tmp |= fieldname(insn, 0, 1) << 5; \
3529 tmp |= fieldname(insn, 21, 5) << 0; \
3530 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3532 tmp |= fieldname(insn, 0, 1) << 5; \
3533 tmp |= fieldname(insn, 21, 5) << 0; \
3534 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3536 tmp |= fieldname(insn, 2, 1) << 5; \
3537 tmp |= fieldname(insn, 16, 5) << 0; \
3538 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3540 tmp |= fieldname(insn, 1, 1) << 5; \
3541 tmp |= fieldname(insn, 11, 5) << 0; \
3542 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3546 tmp |= fieldname(insn, 0, 1) << 5; \
3547 tmp |= fieldname(insn, 21, 5) << 0; \
3548 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3550 tmp |= fieldname(insn, 2, 1) << 5; \
3551 tmp |= fieldname(insn, 16, 5) << 0; \
3552 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3554 tmp |= fieldname(insn, 1, 1) << 5; \
3555 tmp |= fieldname(insn, 11, 5) << 0; \
3556 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3560 tmp |= fieldname(insn, 0, 1) << 5; \
3561 tmp |= fieldname(insn, 21, 5) << 0; \
3562 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3564 tmp |= fieldname(insn, 0, 1) << 5; \
3565 tmp |= fieldname(insn, 21, 5) << 0; \
3566 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3568 tmp |= fieldname(insn, 2, 1) << 5; \
3569 tmp |= fieldname(insn, 16, 5) << 0; \
3570 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3572 tmp |= fieldname(insn, 1, 1) << 5; \
3573 tmp |= fieldname(insn, 11, 5) << 0; \
3574 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3578 tmp |= fieldname(insn, 0, 1) << 5; \
3579 tmp |= fieldname(insn, 21, 5) << 0; \
3580 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3582 tmp |= fieldname(insn, 2, 1) << 5; \
3583 tmp |= fieldname(insn, 16, 5) << 0; \
3584 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3586 tmp |= fieldname(insn, 1, 1) << 5; \
3587 tmp |= fieldname(insn, 11, 5) << 0; \
3588 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3589 tmp = fieldname(insn, 8, 2); \
3590 MCOperand_CreateImm0(MI, tmp); \
3593 tmp = fieldname(insn, 23, 3); \
3594 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3596 tmp |= fieldname(insn, 2, 1) << 5; \
3597 tmp |= fieldname(insn, 16, 5) << 0; \
3598 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3600 tmp |= fieldname(insn, 1, 1) << 5; \
3601 tmp |= fieldname(insn, 11, 5) << 0; \
3602 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3606 tmp |= fieldname(insn, 0, 1) << 5; \
3607 tmp |= fieldname(insn, 21, 5) << 0; \
3608 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3610 tmp |= fieldname(insn, 1, 1) << 5; \
3611 tmp |= fieldname(insn, 11, 5) << 0; \
3612 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3613 tmp = fieldname(insn, 16, 2); \
3614 MCOperand_CreateImm0(MI, tmp); \
3618 tmp |= fieldname(insn, 0, 1) << 5; \
3619 tmp |= fieldname(insn, 21, 5) << 0; \
3620 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3622 tmp |= fieldname(insn, 1, 1) << 5; \
3623 tmp |= fieldname(insn, 11, 5) << 0; \
3624 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3627 tmp = fieldname(insn, 23, 3); \
3628 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3630 tmp |= fieldname(insn, 1, 1) << 5; \
3631 tmp |= fieldname(insn, 11, 5) << 0; \
3632 if (DecodeVSFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3636 tmp |= fieldname(insn, 0, 1) << 5; \
3637 tmp |= fieldname(insn, 21, 5) << 0; \
3638 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3640 tmp |= fieldname(insn, 1, 1) << 5; \
3641 tmp |= fieldname(insn, 11, 5) << 0; \
3642 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3645 tmp = fieldname(insn, 23, 3); \
3646 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3648 tmp |= fieldname(insn, 1, 1) << 5; \
3649 tmp |= fieldname(insn, 11, 5) << 0; \
3650 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3653 tmp = fieldname(insn, 23, 3); \
3654 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3656 tmp |= fieldname(insn, 2, 1) << 5; \
3657 tmp |= fieldname(insn, 16, 5) << 0; \
3658 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3660 tmp |= fieldname(insn, 1, 1) << 5; \
3661 tmp |= fieldname(insn, 11, 5) << 0; \
3662 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3666 tmp |= fieldname(insn, 0, 1) << 5; \
3667 tmp |= fieldname(insn, 21, 5) << 0; \
3668 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3670 tmp |= fieldname(insn, 2, 1) << 5; \
3671 tmp |= fieldname(insn, 16, 5) << 0; \
3672 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3674 tmp |= fieldname(insn, 1, 1) << 5; \
3675 tmp |= fieldname(insn, 11, 5) << 0; \
3676 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3678 tmp |= fieldname(insn, 3, 1) << 5; \
3679 tmp |= fieldname(insn, 6, 5) << 0; \
3680 if (DecodeVSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3683 tmp = fieldname(insn, 23, 3); \
3684 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3685 tmp = fieldname(insn, 16, 5); \
3686 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3687 tmp = fieldname(insn, 11, 5); \
3688 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3691 tmp = fieldname(insn, 23, 3); \
3692 if (DecodeCRRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3693 tmp = fieldname(insn, 12, 4); \
3694 MCOperand_CreateImm0(MI, tmp); \
3695 tmp = fieldname(insn, 16, 1); \
3696 MCOperand_CreateImm0(MI, tmp); \
3699 tmp = fieldname(insn, 21, 5); \
3700 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3703 tmp = fieldname(insn, 17, 8); \
3704 MCOperand_CreateImm0(MI, tmp); \
3705 tmp = fieldname(insn, 11, 5); \
3706 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3707 tmp = fieldname(insn, 25, 1); \
3708 MCOperand_CreateImm0(MI, tmp); \
3709 tmp = fieldname(insn, 16, 1); \
3710 MCOperand_CreateImm0(MI, tmp); \
3713 tmp = fieldname(insn, 21, 5); \
3714 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3715 tmp = fieldname(insn, 11, 5); \
3716 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3719 tmp = fieldname(insn, 21, 5); \
3720 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3721 tmp = fieldname(insn, 16, 5); \
3722 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3723 tmp = fieldname(insn, 11, 5); \
3724 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3727 tmp = fieldname(insn, 21, 5); \
3728 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3729 tmp = fieldname(insn, 16, 5); \
3730 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3731 tmp = fieldname(insn, 6, 5); \
3732 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3733 tmp = fieldname(insn, 11, 5); \
3734 if (DecodeF4RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3737 tmp = fieldname(insn, 21, 5); \
3738 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3739 tmp = fieldname(insn, 16, 5); \
3740 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3741 tmp = fieldname(insn, 6, 5); \
3742 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3745 tmp = fieldname(insn, 21, 5); \
3746 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3747 tmp = fieldname(insn, 16, 5); \
3748 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3749 tmp = fieldname(insn, 6, 5); \
3750 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3751 tmp = fieldname(insn, 11, 5); \
3752 if (DecodeF8RCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3755 tmp = fieldname(insn, 21, 5); \
3756 if (DecodeQBRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3757 tmp = fieldname(insn, 16, 5); \
3758 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3759 tmp = fieldname(insn, 11, 5); \
3760 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3763 tmp = fieldname(insn, 21, 5); \
3764 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3765 tmp = fieldname(insn, 16, 5); \
3766 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3767 tmp = fieldname(insn, 11, 5); \
3768 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3769 tmp = fieldname(insn, 6, 5); \
3770 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3773 tmp = fieldname(insn, 21, 5); \
3774 if (DecodeQBRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3775 tmp = fieldname(insn, 16, 5); \
3776 if (DecodeQBRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3777 tmp = fieldname(insn, 11, 5); \
3778 if (DecodeQBRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3779 tmp = fieldname(insn, 7, 4); \
3780 if (decodeUImmOperand(MI, tmp, Address, Decoder, 12) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3783 tmp = fieldname(insn, 21, 5); \
3784 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3785 tmp = fieldname(insn, 16, 5); \
3786 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3787 tmp = fieldname(insn, 11, 5); \
3788 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3789 tmp = fieldname(insn, 9, 2); \
3790 MCOperand_CreateImm0(MI, tmp); \
3793 tmp = fieldname(insn, 21, 5); \
3794 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3795 tmp = fieldname(insn, 16, 5); \
3796 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3797 tmp = fieldname(insn, 9, 2); \
3798 MCOperand_CreateImm0(MI, tmp); \
3801 tmp = fieldname(insn, 21, 5); \
3802 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3803 tmp = fieldname(insn, 9, 12); \
3804 if (decodeUImmOperand(MI, tmp, Address, Decoder, 12) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3807 tmp = fieldname(insn, 21, 5); \
3808 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3809 tmp = fieldname(insn, 16, 5); \
3810 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3811 tmp = fieldname(insn, 11, 5); \
3812 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3815 tmp = fieldname(insn, 21, 5); \
3816 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3817 tmp = fieldname(insn, 16, 5); \
3818 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3819 tmp = fieldname(insn, 16, 5); \
3820 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3821 tmp = fieldname(insn, 11, 5); \
3822 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3825 tmp = fieldname(insn, 21, 5); \
3826 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3827 tmp = fieldname(insn, 16, 5); \
3828 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3829 tmp = fieldname(insn, 16, 5); \
3830 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3831 tmp = fieldname(insn, 11, 5); \
3832 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3835 tmp = fieldname(insn, 16, 5); \
3836 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3837 tmp = fieldname(insn, 21, 5); \
3838 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3839 tmp = fieldname(insn, 16, 5); \
3840 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3841 tmp = fieldname(insn, 11, 5); \
3842 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3845 tmp = fieldname(insn, 16, 5); \
3846 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3847 tmp = fieldname(insn, 21, 5); \
3848 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3849 tmp = fieldname(insn, 16, 5); \
3850 if (DecodePointerLikeRegClass1(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3851 tmp = fieldname(insn, 11, 5); \
3852 if (DecodePointerLikeRegClass0(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3855 tmp = fieldname(insn, 21, 5); \
3856 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3857 tmp = fieldname(insn, 16, 5); \
3858 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3859 tmp = fieldname(insn, 11, 5); \
3860 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3863 tmp = fieldname(insn, 21, 5); \
3864 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3865 tmp = fieldname(insn, 11, 5); \
3866 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3869 tmp = fieldname(insn, 21, 5); \
3870 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3871 tmp = fieldname(insn, 11, 5); \
3872 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3875 tmp = fieldname(insn, 21, 5); \
3876 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3877 tmp = fieldname(insn, 16, 5); \
3878 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3879 tmp = fieldname(insn, 6, 5); \
3880 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3883 tmp = fieldname(insn, 21, 5); \
3884 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3885 tmp = fieldname(insn, 16, 5); \
3886 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3887 tmp = fieldname(insn, 11, 5); \
3888 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3891 tmp = fieldname(insn, 21, 5); \
3892 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3893 tmp = fieldname(insn, 16, 5); \
3894 if (DecodeQBRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3895 tmp = fieldname(insn, 11, 5); \
3896 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3897 tmp = fieldname(insn, 6, 5); \
3898 if (DecodeQFRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3901 tmp = fieldname(insn, 21, 5); \
3902 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3903 tmp = fieldname(insn, 16, 5); \
3904 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3905 tmp = fieldname(insn, 6, 5); \
3906 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3909 tmp = fieldname(insn, 21, 5); \
3910 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3911 tmp = fieldname(insn, 16, 5); \
3912 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3913 tmp = fieldname(insn, 11, 5); \
3914 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3915 tmp = fieldname(insn, 6, 5); \
3916 if (DecodeQSRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler_Fail) return MCDisassembler_Fail; \
3922 DecodeToMCInst(decodeToMCInst_4, fieldFromInstruction_4,
uint32_t)
3924 #define DecodeInstruction(fname, fieldname, decoder, InsnType) \
3925 static DecodeStatus fname(const uint8_t DecodeTable[], MCInst *MI, \
3926 InsnType insn, uint64_t Address, \
3929 uint64_t Bits = getFeatureBits(feature); \
3930 const uint8_t *Ptr = DecodeTable; \
3931 uint32_t CurFieldValue = 0, ExpectedValue; \
3932 DecodeStatus S = MCDisassembler_Success; \
3933 unsigned Start, Len, NumToSkip, PIdx, Opc, DecodeIdx; \
3934 InsnType Val, FieldValue, PositiveMask, NegativeMask; \
3939 return MCDisassembler_Fail; \
3940 case MCD_OPC_ExtractField: { \
3944 CurFieldValue = (uint32_t)fieldname(insn, Start, Len); \
3947 case MCD_OPC_FilterValue: { \
3948 Val = (InsnType)decodeULEB128(++Ptr, &Len); \
3950 NumToSkip = *Ptr++; \
3951 NumToSkip |= (*Ptr++) << 8; \
3952 if (Val != CurFieldValue) \
3956 case MCD_OPC_CheckField: { \
3959 FieldValue = fieldname(insn, Start, Len); \
3960 ExpectedValue = (uint32_t)decodeULEB128(++Ptr, &Len); \
3962 NumToSkip = *Ptr++; \
3963 NumToSkip |= (*Ptr++) << 8; \
3964 if (ExpectedValue != FieldValue) \
3968 case MCD_OPC_CheckPredicate: { \
3969 PIdx = (uint32_t)decodeULEB128(++Ptr, &Len); \
3971 NumToSkip = *Ptr++; \
3972 NumToSkip |= (*Ptr++) << 8; \
3973 Pred = checkDecoderPredicate(PIdx, Bits); \
3979 case MCD_OPC_Decode: { \
3980 Opc = (unsigned)decodeULEB128(++Ptr, &Len); \
3982 DecodeIdx = (unsigned)decodeULEB128(Ptr, &Len); \
3984 MCInst_setOpcode(MI, Opc); \
3985 return decoder(S, DecodeIdx, insn, MI, Address, MI); \
3987 case MCD_OPC_SoftFail: { \
3988 PositiveMask = (InsnType)decodeULEB128(++Ptr, &Len); \
3990 NegativeMask = (InsnType)decodeULEB128(Ptr, &Len); \
3992 Fail = (insn & PositiveMask) || (~insn & NegativeMask); \
3994 S = MCDisassembler_SoftFail; \
3997 case MCD_OPC_Fail: { \
3998 return MCDisassembler_Fail; \
4006 DecodeInstruction(decodeInstruction_4, fieldFromInstruction_4, decodeToMCInst_4,
uint32_t)