evoasm 0.0.2.pre7 → 0.1.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/.gdbinit +41 -0
  3. data/.gitignore +1 -2
  4. data/.gitmodules +3 -0
  5. data/.rubocop.yml +8 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.md +660 -0
  8. data/Makefile +1 -1
  9. data/README.md +17 -9
  10. data/Rakefile +39 -107
  11. data/bin/gdb +1 -1
  12. data/bin/gdb_loop +4 -0
  13. data/docs/FindingInstructions.md +17 -0
  14. data/docs/JIT.md +14 -0
  15. data/docs/SymbolicRegression.md +102 -0
  16. data/docs/Visualization.md +29 -0
  17. data/docs/examples/bit_insts.rb +44 -0
  18. data/docs/examples/jit.rb +26 -0
  19. data/docs/examples/loss.gif +0 -0
  20. data/docs/examples/program.png +0 -0
  21. data/docs/examples/sym_reg.rb +64 -0
  22. data/docs/examples/vis.rb +38 -0
  23. data/evoasm.gemspec +21 -15
  24. data/ext/evoasm_ext/Rakefile +3 -0
  25. data/ext/evoasm_ext/compile.rake +35 -0
  26. data/ext/evoasm_ext/libevoasm/src/evoasm-alloc.c +226 -0
  27. data/ext/evoasm_ext/libevoasm/src/evoasm-alloc.h +84 -0
  28. data/ext/evoasm_ext/libevoasm/src/evoasm-arch.c +52 -0
  29. data/ext/evoasm_ext/libevoasm/src/evoasm-arch.h +101 -0
  30. data/ext/evoasm_ext/libevoasm/src/evoasm-bitmap.h +158 -0
  31. data/ext/evoasm_ext/libevoasm/src/evoasm-buf.c +204 -0
  32. data/ext/evoasm_ext/libevoasm/src/evoasm-buf.h +109 -0
  33. data/ext/evoasm_ext/libevoasm/src/evoasm-domain.c +124 -0
  34. data/ext/evoasm_ext/libevoasm/src/evoasm-domain.h +279 -0
  35. data/ext/evoasm_ext/libevoasm/src/evoasm-error.c +65 -0
  36. data/ext/evoasm_ext/libevoasm/src/evoasm-error.h +108 -0
  37. data/ext/evoasm_ext/{evoasm-log.c → libevoasm/src/evoasm-log.c} +36 -18
  38. data/ext/evoasm_ext/libevoasm/src/evoasm-log.h +93 -0
  39. data/ext/evoasm_ext/libevoasm/src/evoasm-param.c +22 -0
  40. data/ext/evoasm_ext/libevoasm/src/evoasm-param.h +33 -0
  41. data/ext/evoasm_ext/libevoasm/src/evoasm-pop-params.c +192 -0
  42. data/ext/evoasm_ext/libevoasm/src/evoasm-pop-params.h +60 -0
  43. data/ext/evoasm_ext/libevoasm/src/evoasm-pop.c +1323 -0
  44. data/ext/evoasm_ext/libevoasm/src/evoasm-pop.h +107 -0
  45. data/ext/evoasm_ext/libevoasm/src/evoasm-program-io.c +116 -0
  46. data/ext/evoasm_ext/libevoasm/src/evoasm-program-io.h +60 -0
  47. data/ext/evoasm_ext/libevoasm/src/evoasm-program.c +1827 -0
  48. data/ext/evoasm_ext/libevoasm/src/evoasm-program.h +167 -0
  49. data/ext/evoasm_ext/libevoasm/src/evoasm-rand.c +65 -0
  50. data/ext/evoasm_ext/libevoasm/src/evoasm-rand.h +76 -0
  51. data/ext/evoasm_ext/libevoasm/src/evoasm-signal.c +106 -0
  52. data/ext/evoasm_ext/libevoasm/src/evoasm-signal.h +58 -0
  53. data/ext/evoasm_ext/libevoasm/src/evoasm-util.h +112 -0
  54. data/ext/evoasm_ext/libevoasm/src/evoasm-x64.c +925 -0
  55. data/ext/evoasm_ext/libevoasm/src/evoasm-x64.h +277 -0
  56. data/ext/evoasm_ext/libevoasm/src/evoasm.c +28 -0
  57. data/ext/evoasm_ext/libevoasm/src/evoasm.h +35 -0
  58. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-enums.h +2077 -0
  59. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-insts.c +191203 -0
  60. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-insts.h +1713 -0
  61. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-misc.c +348 -0
  62. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-misc.h +93 -0
  63. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-params.c +51 -0
  64. data/ext/evoasm_ext/libevoasm/src/gen/evoasm-x64-params.h +509 -0
  65. data/lib/evoasm.rb +28 -11
  66. data/lib/evoasm/buffer.rb +105 -0
  67. data/lib/evoasm/capstone.rb +100 -0
  68. data/lib/evoasm/domain.rb +116 -0
  69. data/lib/evoasm/error.rb +37 -16
  70. data/lib/evoasm/exception_error.rb +19 -0
  71. data/lib/evoasm/ffi_ext.rb +53 -0
  72. data/lib/evoasm/libevoasm.rb +286 -0
  73. data/lib/evoasm/libevoasm/x64_enums.rb +1967 -0
  74. data/lib/evoasm/parameter.rb +20 -0
  75. data/lib/evoasm/population.rb +145 -0
  76. data/lib/evoasm/population/parameters.rb +227 -0
  77. data/lib/evoasm/population/plotter.rb +89 -0
  78. data/lib/evoasm/prng.rb +64 -0
  79. data/lib/evoasm/program.rb +195 -12
  80. data/lib/evoasm/program/io.rb +144 -0
  81. data/lib/evoasm/test.rb +8 -0
  82. data/lib/evoasm/version.rb +1 -1
  83. data/lib/evoasm/x64.rb +115 -0
  84. data/lib/evoasm/x64/cpu_state.rb +95 -0
  85. data/lib/evoasm/x64/instruction.rb +109 -0
  86. data/lib/evoasm/x64/operand.rb +156 -0
  87. data/lib/evoasm/x64/parameters.rb +211 -0
  88. data/test/helpers/population_helper.rb +128 -0
  89. data/test/helpers/test_helper.rb +1 -0
  90. data/test/helpers/x64_helper.rb +24 -0
  91. data/test/integration/bitwise_reverse_test.rb +41 -0
  92. data/test/integration/gcd_test.rb +52 -0
  93. data/test/integration/popcnt_test.rb +46 -0
  94. data/test/integration/sym_reg_test.rb +68 -0
  95. data/test/unit/evoasm/buffer_test.rb +48 -0
  96. data/test/unit/evoasm/capstone_test.rb +18 -0
  97. data/test/unit/evoasm/domain_test.rb +55 -0
  98. data/test/unit/evoasm/population/parameters_test.rb +106 -0
  99. data/test/unit/evoasm/population_test.rb +96 -0
  100. data/test/unit/evoasm/prng_test.rb +47 -0
  101. data/test/unit/evoasm/x64/cpu_state_test.rb +73 -0
  102. data/test/unit/evoasm/x64/encoding_test.rb +320 -0
  103. data/test/unit/evoasm/x64/instruction_access_test.rb +177 -0
  104. data/test/unit/evoasm/x64/instruction_encoding_test.rb +780 -0
  105. data/test/unit/evoasm/x64/instruction_test.rb +62 -0
  106. data/test/unit/evoasm/x64/parameters_test.rb +65 -0
  107. data/test/unit/evoasm/x64_test.rb +52 -0
  108. metadata +195 -89
  109. data/Gemfile.rake +0 -8
  110. data/Gemfile.rake.lock +0 -51
  111. data/LICENSE.txt +0 -373
  112. data/data/tables/README.md +0 -19
  113. data/data/tables/x64.csv +0 -1684
  114. data/data/templates/evoasm-x64.c.erb +0 -319
  115. data/data/templates/evoasm-x64.h.erb +0 -126
  116. data/examples/abs.yml +0 -20
  117. data/examples/popcnt.yml +0 -17
  118. data/examples/sym_reg.yml +0 -26
  119. data/exe/evoasm-search +0 -13
  120. data/ext/evoasm_ext/evoasm-alloc.c +0 -145
  121. data/ext/evoasm_ext/evoasm-alloc.h +0 -59
  122. data/ext/evoasm_ext/evoasm-arch.c +0 -44
  123. data/ext/evoasm_ext/evoasm-arch.h +0 -161
  124. data/ext/evoasm_ext/evoasm-bitmap.h +0 -114
  125. data/ext/evoasm_ext/evoasm-buf.c +0 -130
  126. data/ext/evoasm_ext/evoasm-buf.h +0 -47
  127. data/ext/evoasm_ext/evoasm-error.c +0 -31
  128. data/ext/evoasm_ext/evoasm-error.h +0 -75
  129. data/ext/evoasm_ext/evoasm-free-list.c.tmpl +0 -121
  130. data/ext/evoasm_ext/evoasm-free-list.h.tmpl +0 -86
  131. data/ext/evoasm_ext/evoasm-log.h +0 -69
  132. data/ext/evoasm_ext/evoasm-misc.c +0 -23
  133. data/ext/evoasm_ext/evoasm-misc.h +0 -282
  134. data/ext/evoasm_ext/evoasm-param.h +0 -37
  135. data/ext/evoasm_ext/evoasm-search.c +0 -2145
  136. data/ext/evoasm_ext/evoasm-search.h +0 -214
  137. data/ext/evoasm_ext/evoasm-util.h +0 -40
  138. data/ext/evoasm_ext/evoasm-x64.c +0 -275624
  139. data/ext/evoasm_ext/evoasm-x64.h +0 -5436
  140. data/ext/evoasm_ext/evoasm.c +0 -7
  141. data/ext/evoasm_ext/evoasm.h +0 -23
  142. data/ext/evoasm_ext/evoasm_ext.c +0 -1757
  143. data/ext/evoasm_ext/extconf.rb +0 -31
  144. data/lib/evoasm/cli.rb +0 -6
  145. data/lib/evoasm/cli/search.rb +0 -127
  146. data/lib/evoasm/core_ext.rb +0 -1
  147. data/lib/evoasm/core_ext/array.rb +0 -9
  148. data/lib/evoasm/core_ext/integer.rb +0 -10
  149. data/lib/evoasm/core_ext/kwstruct.rb +0 -13
  150. data/lib/evoasm/core_ext/range.rb +0 -5
  151. data/lib/evoasm/examples.rb +0 -27
  152. data/lib/evoasm/gen.rb +0 -8
  153. data/lib/evoasm/gen/enum.rb +0 -169
  154. data/lib/evoasm/gen/name_util.rb +0 -80
  155. data/lib/evoasm/gen/state.rb +0 -176
  156. data/lib/evoasm/gen/state_dsl.rb +0 -152
  157. data/lib/evoasm/gen/strio.rb +0 -27
  158. data/lib/evoasm/gen/translator.rb +0 -1102
  159. data/lib/evoasm/gen/version.rb +0 -5
  160. data/lib/evoasm/gen/x64.rb +0 -237
  161. data/lib/evoasm/gen/x64/funcs.rb +0 -495
  162. data/lib/evoasm/gen/x64/inst.rb +0 -781
  163. data/lib/evoasm/search.rb +0 -40
  164. data/lib/evoasm/tasks/gen_task.rb +0 -86
  165. data/lib/evoasm/tasks/template_task.rb +0 -52
  166. data/test/test_helper.rb +0 -1
  167. data/test/x64/test_helper.rb +0 -19
  168. data/test/x64/x64_test.rb +0 -87
@@ -0,0 +1,53 @@
1
+ require 'ffi'
2
+
3
+ # @!visibility private
4
+ module FFI
5
+ class Enum
6
+ def flags(flags, shift: false)
7
+ flags.inject(0) do |acc, flag|
8
+ flag_value = self[flag]
9
+ raise ArgumentError, "unknown flag '#{flag}'" if flag_value.nil?
10
+ flag_value = 1 << flag_value if shift
11
+ acc | flag_value
12
+ end
13
+ end
14
+
15
+ def values(keys)
16
+ keys.map do |key|
17
+ enum_value = self[key]
18
+ raise ArgumentError, "unknown enum key '#{key}'" if enum_value.nil?
19
+ enum_value
20
+ end
21
+ end
22
+
23
+ def keys(values)
24
+ values.map do |value|
25
+ enum_key = self[value]
26
+ raise ArgumentError, "unknown enum value '#{value}'" if enum_key.nil?
27
+ enum_key
28
+ end
29
+ end
30
+ end
31
+
32
+ class AbstractMemory
33
+ def read_size_t
34
+ case FFI.find_type :size_t
35
+ when FFI::Type::Builtin::ULONG_LONG
36
+ read_ulong_long
37
+ when FFI::Type::Builtin::ULONG
38
+ read_ulong
39
+ when FFI::Type::Builtin::UINT
40
+ read_uint
41
+ else
42
+ raise
43
+ end
44
+ end
45
+ end
46
+
47
+ class Pointer
48
+ def to_ptr
49
+ self
50
+ end
51
+ end
52
+ end
53
+
@@ -0,0 +1,286 @@
1
+ require 'evoasm/ffi_ext'
2
+
3
+ module Evoasm
4
+ # @!visibility private
5
+ module Libevoasm
6
+ extend FFI::Library
7
+
8
+ require 'evoasm/libevoasm/x64_enums'
9
+
10
+ ffi_lib File.join(Evoasm.ext_dir, 'evoasm_ext', FFI.map_library_name('evoasm'))
11
+
12
+ enum :io_val_type, [
13
+ :i64,
14
+ :u64,
15
+ :f64
16
+ ]
17
+
18
+ typedef :uint16, :inst_id
19
+ typedef :uint8, :param_id
20
+ typedef :float, :loss
21
+
22
+ enum :domain_type, [
23
+ :enum,
24
+ :range,
25
+ :int64,
26
+ :int32,
27
+ :int16,
28
+ :int8
29
+ ]
30
+
31
+ enum :arch_id, [
32
+ :x64
33
+ ]
34
+
35
+ enum :error_type, [
36
+ :buf,
37
+ :alloc,
38
+ :arch,
39
+ :program,
40
+ :pop_params,
41
+ :pop
42
+ ]
43
+
44
+ enum :error_code, [
45
+ :missing_parameter,
46
+ :not_encodable
47
+ ]
48
+
49
+ enum :x64_insts_flags, [
50
+ :include_useless, 1 << 0,
51
+ :only_basic, 1 << 1
52
+ ]
53
+
54
+ enum :buf_type, [
55
+ :mmap,
56
+ :malloc,
57
+ :none
58
+ ]
59
+
60
+ enum :log_level, [
61
+ :trace,
62
+ :debug,
63
+ :info,
64
+ :warn,
65
+ :error,
66
+ :fatal,
67
+ :none
68
+ ]
69
+
70
+ enum :mprot_mode, [
71
+ :rw,
72
+ :rx,
73
+ :rwx
74
+ ]
75
+
76
+ enum :x64_abi, [
77
+ :sysv
78
+ ]
79
+
80
+ enum :x64_cpu_state_flags, [
81
+ :ip, 1 << 0,
82
+ :sp, 1 << 1,
83
+ :mxcsr, 1 << 2,
84
+ :rflags, 1 << 3,
85
+ ]
86
+
87
+ def self.attach_evoasm_function(name, args, returns, options = {})
88
+ attach_function name, :"evoasm_#{name}", args, returns, options
89
+ end
90
+
91
+ attach_evoasm_function :init, [:int, :pointer, :pointer], :void
92
+ attach_evoasm_function :get_last_error, [], :pointer
93
+ attach_evoasm_function :set_log_level, [:log_level], :void
94
+
95
+ attach_evoasm_function :get_arch_info, [:arch_id], :pointer
96
+ attach_evoasm_function :arch_info_get_features, [:pointer], :uint64
97
+ attach_evoasm_function :get_current_arch, [], :arch_id
98
+
99
+ attach_evoasm_function :buf_ref_alloc, [], :pointer
100
+ attach_evoasm_function :buf_ref_init, [:pointer, :pointer, :pointer], :void
101
+ attach_evoasm_function :buf_ref_free, [:pointer], :void
102
+
103
+ attach_evoasm_function :buf_alloc, [], :pointer
104
+ attach_evoasm_function :buf_init, [:pointer, :buf_type, :size_t], :bool
105
+ attach_evoasm_function :buf_free, [:pointer], :void
106
+ attach_evoasm_function :buf_destroy, [:pointer], :void
107
+ attach_evoasm_function :buf_exec, [:pointer], :size_t
108
+ attach_evoasm_function :buf_safe_exec, [:pointer, :uint64, :pointer], :bool
109
+ attach_evoasm_function :buf_log, [:pointer, :log_level], :void
110
+ attach_evoasm_function :buf_reset, [:pointer], :void
111
+ attach_evoasm_function :buf_protect, [:pointer, :mprot_mode], :bool
112
+ attach_evoasm_function :buf_to_buf_ref, [:pointer, :pointer], :void
113
+ attach_evoasm_function :buf_get_capa, [:pointer], :size_t
114
+ attach_evoasm_function :buf_get_pos, [:pointer], :size_t
115
+ attach_evoasm_function :buf_get_data, [:pointer], :pointer
116
+ attach_evoasm_function :buf_get_type, [:pointer], :buf_type
117
+ attach_evoasm_function :buf_write, [:pointer, :pointer, :size_t], :size_t
118
+
119
+ attach_evoasm_function :x64_cpu_state_alloc, [], :pointer
120
+ attach_evoasm_function :x64_cpu_state_init, [:pointer, :int], :void
121
+ attach_evoasm_function :x64_cpu_state_free, [:pointer], :void
122
+ attach_evoasm_function :x64_cpu_state_destroy, [:pointer], :void
123
+ attach_evoasm_function :x64_cpu_state_set, [:pointer, :x64_reg_id, :pointer, :size_t], :void
124
+ attach_evoasm_function :x64_cpu_state_get, [:pointer, :x64_reg_id, :x64_operand_word, :pointer, :size_t], :size_t
125
+ attach_evoasm_function :x64_cpu_state_get_rflags_flag, [:pointer, :x64_rflags_flag], :bool
126
+ attach_evoasm_function :x64_cpu_state_clone, [:pointer, :pointer], :void
127
+ attach_evoasm_function :x64_cpu_state_xor, [:pointer, :pointer, :pointer], :void
128
+ attach_evoasm_function :x64_cpu_state_memset, [:pointer, :int], :void
129
+ attach_evoasm_function :x64_cpu_state_emit_load, [:pointer, :pointer], :bool
130
+ attach_evoasm_function :x64_cpu_state_emit_store, [:pointer, :pointer], :bool
131
+
132
+ attach_evoasm_function :x64_params_init, [:pointer], :void
133
+ attach_evoasm_function :x64_params_alloc, [], :pointer
134
+ attach_evoasm_function :x64_params_free, [:pointer], :void
135
+ attach_evoasm_function :x64_params_set, [:pointer, :x64_param_id, :int64], :void
136
+ attach_evoasm_function :x64_params_get, [:pointer, :x64_param_id], :int64
137
+ attach_evoasm_function :x64_params_get_type, [:x64_param_id], :x64_param_type
138
+
139
+ attach_evoasm_function :x64_basic_params_init, [:pointer], :void
140
+ attach_evoasm_function :x64_basic_params_alloc, [], :pointer
141
+ attach_evoasm_function :x64_basic_params_free, [:pointer], :void
142
+ attach_evoasm_function :x64_basic_params_set, [:pointer, :x64_basic_param_id, :int64], :void
143
+ attach_evoasm_function :x64_basic_params_get, [:pointer, :x64_basic_param_id], :int64
144
+ attach_evoasm_function :x64_basic_params_get_type, [:x64_basic_param_id], :x64_param_type
145
+
146
+ attach_evoasm_function :param_get_id, [:pointer], :int
147
+ attach_evoasm_function :param_get_domain, [:pointer], :pointer
148
+
149
+ attach_evoasm_function :x64_init, [], :bool
150
+ attach_evoasm_function :x64_insts, [:uint64, :uint64, :uint64, :uint64, :pointer], :size_t
151
+
152
+ attach_evoasm_function :x64_enc, [:x64_inst_id, :pointer, :pointer], :bool
153
+ attach_evoasm_function :x64_enc_basic, [:x64_inst_id, :pointer, :pointer], :bool
154
+
155
+ attach_evoasm_function :x64_emit_func_prolog, [:x64_abi, :pointer], :bool
156
+ attach_evoasm_function :x64_emit_func_epilog, [:x64_abi, :pointer], :bool
157
+
158
+ attach_evoasm_function :x64_inst, [:x64_inst_id], :pointer
159
+ attach_evoasm_function :x64_inst_get_param, [:pointer, :size_t], :pointer
160
+ attach_evoasm_function :x64_inst_get_n_params, [:pointer], :size_t
161
+ attach_evoasm_function :x64_inst_get_operand, [:pointer, :size_t], :pointer
162
+ attach_evoasm_function :x64_inst_get_n_operands, [:pointer], :size_t
163
+ attach_evoasm_function :x64_inst_get_mnem, [:pointer], :string
164
+ attach_evoasm_function :x64_inst_enc, [:pointer, :pointer, :pointer], :bool
165
+ attach_evoasm_function :x64_inst_enc_basic, [:pointer, :pointer, :pointer], :bool
166
+ attach_evoasm_function :x64_inst_is_basic, [:pointer], :bool
167
+
168
+ attach_evoasm_function :x64_operand_get_param_idx, [:pointer], :size_t
169
+ attach_evoasm_function :x64_operand_is_read, [:pointer], :bool
170
+ attach_evoasm_function :x64_operand_is_written, [:pointer], :bool
171
+ attach_evoasm_function :x64_operand_is_maybe_written, [:pointer], :bool
172
+ attach_evoasm_function :x64_operand_is_implicit, [:pointer], :bool
173
+ attach_evoasm_function :x64_operand_is_mnem, [:pointer], :bool
174
+ attach_evoasm_function :x64_operand_get_type, [:pointer], :x64_operand_type
175
+ attach_evoasm_function :x64_operand_get_word, [:pointer], :x64_operand_word
176
+ attach_evoasm_function :x64_operand_get_size, [:pointer], :x64_operand_size
177
+ attach_evoasm_function :x64_operand_get_reg_size, [:pointer], :x64_operand_size
178
+ attach_evoasm_function :x64_operand_get_index_reg_size, [:pointer], :x64_operand_size
179
+ attach_evoasm_function :x64_operand_get_mem_size, [:pointer], :x64_operand_size
180
+ attach_evoasm_function :x64_operand_get_reg_type, [:pointer], :x64_reg_type
181
+ attach_evoasm_function :x64_operand_get_reg_id, [:pointer], :x64_reg_id
182
+ attach_evoasm_function :x64_operand_get_imm, [:pointer], :int8
183
+
184
+ attach_evoasm_function :program_destroy, [:pointer], :bool
185
+ attach_evoasm_function :program_alloc, [], :pointer
186
+ attach_evoasm_function :program_free, [:pointer], :void
187
+ attach_evoasm_function :program_run, [:pointer, :pointer], :pointer
188
+
189
+ attach_evoasm_function :program_get_size, [:pointer], :size_t
190
+ attach_evoasm_function :program_get_kernel_code, [:pointer, :size_t, :pointer], :size_t
191
+ attach_evoasm_function :program_get_code, [:pointer, :bool, :pointer], :size_t
192
+ attach_evoasm_function :program_get_jmp_off, [:pointer, :size_t], :int
193
+ attach_evoasm_function :program_eliminate_introns, [:pointer, :pointer], :bool
194
+ attach_evoasm_function :program_is_input_reg, [:pointer, :size_t, :uint8], :bool
195
+ attach_evoasm_function :program_is_output_reg, [:pointer, :size_t, :uint8], :bool
196
+
197
+ attach_evoasm_function :program_io_alloc, [:size_t], :pointer
198
+ attach_evoasm_function :program_io_free, [:pointer], :void
199
+ attach_evoasm_function :program_io_init, [:pointer, :size_t, :varargs], :bool
200
+ attach_evoasm_function :program_io_get_arity, [:pointer], :uint8
201
+ attach_evoasm_function :program_io_get_len, [:pointer], :uint16
202
+ attach_evoasm_function :program_io_get_value_f64, [:pointer, :size_t], :double
203
+ attach_evoasm_function :program_io_get_value_i64, [:pointer, :size_t], :int64
204
+ attach_evoasm_function :program_io_get_type, [:pointer, :size_t], :io_val_type
205
+ attach_evoasm_function :program_io_destroy, [:pointer], :void
206
+
207
+ attach_evoasm_function :pop_seed, [:pointer], :void
208
+ attach_evoasm_function :pop_eval, [:pointer], :bool
209
+ attach_evoasm_function :pop_next_gen, [:pointer], :void
210
+ attach_evoasm_function :pop_alloc, [], :pointer
211
+ attach_evoasm_function :pop_destroy, [:pointer], :void
212
+ attach_evoasm_function :pop_free, [:pointer], :void
213
+ attach_evoasm_function :pop_init, [:pointer, :arch_id, :pointer], :bool
214
+ attach_evoasm_function :pop_calc_summary, [:pointer, :pointer], :bool
215
+ attach_evoasm_function :pop_get_best_loss, [:pointer], :loss
216
+ attach_evoasm_function :pop_summary_len, [:pointer], :size_t
217
+ attach_evoasm_function :pop_load_best_program, [:pointer, :pointer], :bool
218
+ attach_evoasm_function :pop_find_median_loss, [:pointer, :size_t], :loss
219
+ attach_evoasm_function :pop_get_loss_samples, [:pointer, :size_t, :pointer], :size_t
220
+
221
+ attach_evoasm_function :pop_params_get_mut_rate, [:pointer], :float
222
+ attach_evoasm_function :pop_params_get_n_params, [:pointer], :uint8
223
+ attach_evoasm_function :pop_params_set_mut_rate, [:pointer, :float], :void
224
+ attach_evoasm_function :pop_params_set_n_params, [:pointer, :uint8], :void
225
+ attach_evoasm_function :pop_params_set_domain, [:pointer, :uint8, :pointer], :bool
226
+ attach_evoasm_function :pop_params_get_domain, [:pointer, :uint8], :pointer
227
+ attach_evoasm_function :pop_params_alloc, [], :pointer
228
+ attach_evoasm_function :pop_params_free, [:pointer], :void
229
+ attach_evoasm_function :pop_params_init, [:pointer], :void
230
+ attach_evoasm_function :pop_params_get_recur_limit, [:pointer], :size_t
231
+ attach_evoasm_function :pop_params_get_program_input, [:pointer], :pointer
232
+ attach_evoasm_function :pop_params_get_program_output, [:pointer], :pointer
233
+ attach_evoasm_function :pop_params_get_n_insts, [:pointer], :size_t
234
+ attach_evoasm_function :pop_params_get_inst, [:pointer, :size_t], :inst_id
235
+ attach_evoasm_function :pop_params_get_deme_size, [:pointer], :size_t
236
+ attach_evoasm_function :pop_params_get_deme_height, [:pointer], :size_t
237
+ attach_evoasm_function :pop_params_set_deme_size, [:pointer, :size_t], :void
238
+ attach_evoasm_function :pop_params_get_n_demes, [:pointer], :size_t
239
+ attach_evoasm_function :pop_params_set_n_demes, [:pointer, :size_t], :void
240
+ attach_evoasm_function :pop_params_set_kernel_size, [:pointer, :size_t], :void
241
+ attach_evoasm_function :pop_params_get_kernel_size, [:pointer], :size_t
242
+ attach_evoasm_function :pop_params_set_program_size, [:pointer, :size_t], :void
243
+ attach_evoasm_function :pop_params_get_program_size, [:pointer], :size_t
244
+ attach_evoasm_function :pop_params_set_recur_limit, [:pointer, :size_t], :void
245
+ attach_evoasm_function :pop_params_set_n_insts, [:pointer, :size_t], :void
246
+ attach_evoasm_function :pop_params_set_program_input, [:pointer, :pointer], :void
247
+ attach_evoasm_function :pop_params_set_program_output, [:pointer, :pointer], :void
248
+ attach_evoasm_function :pop_params_set_inst, [:pointer, :size_t, :inst_id], :void
249
+ attach_evoasm_function :pop_params_set_param, [:pointer, :size_t, :param_id], :void
250
+ attach_evoasm_function :pop_params_get_param, [:pointer, :size_t], :param_id
251
+ attach_evoasm_function :pop_params_get_seed, [:pointer, :size_t], :uint64
252
+ attach_evoasm_function :pop_params_set_seed, [:pointer, :size_t, :uint64], :void
253
+ attach_evoasm_function :pop_params_validate, [:pointer], :bool
254
+
255
+ attach_evoasm_function :prng_init, [:pointer, :pointer], :void
256
+ attach_evoasm_function :prng_alloc, [], :pointer
257
+ attach_evoasm_function :prng_free, [:pointer], :void
258
+ attach_evoasm_function :prng_rand64, [:pointer], :uint64
259
+ attach_evoasm_function :prng_rand32, [:pointer], :uint32
260
+ attach_evoasm_function :prng_rand16, [:pointer], :uint16
261
+ attach_evoasm_function :prng_rand8, [:pointer], :uint8
262
+ attach_evoasm_function :prng_randf, [:pointer], :float
263
+ attach_evoasm_function :prng_rand_between, [:pointer, :int64, :int64], :int64
264
+
265
+ attach_evoasm_function :program_io_alloc, [:size_t], :pointer
266
+ attach_evoasm_function :program_io_init, [:pointer, :uint16, :varargs], :bool
267
+
268
+ attach_evoasm_function :enum_domain_get_len, [:pointer], :size_t
269
+ attach_evoasm_function :enum_domain_get_val, [:pointer, :size_t], :int64
270
+ attach_evoasm_function :domain_alloc, [], :pointer
271
+ attach_evoasm_function :domain_free, [:pointer], :void
272
+ attach_evoasm_function :domain_rand, [:pointer, :pointer], :int64
273
+ attach_evoasm_function :domain_init, [:pointer, :domain_type, :varargs], :bool
274
+ attach_evoasm_function :domain_get_bounds, [:pointer, :pointer, :pointer], :void
275
+ attach_evoasm_function :domain_get_type, [:pointer], :domain_type
276
+
277
+ attach_evoasm_function :error_get_type, [:pointer], :error_type
278
+ attach_evoasm_function :error_get_code, [:pointer], :error_code
279
+ attach_evoasm_function :error_get_line, [:pointer], :uint
280
+ attach_evoasm_function :error_get_msg, [:pointer], :string
281
+ attach_evoasm_function :error_get_filename, [:pointer], :string
282
+ end
283
+
284
+ end
285
+
286
+
@@ -0,0 +1,1967 @@
1
+ require 'ffi'
2
+
3
+ module Evoasm
4
+ module Libevoasm
5
+ enum :x64_feature, [
6
+ :adx, 0,
7
+ :sse2, 1,
8
+ :avx, 2,
9
+ :sse, 3,
10
+ :sse3, 4,
11
+ :aes, 5,
12
+ :bmi1, 6,
13
+ :sse4_1, 7,
14
+ :bmi2, 8,
15
+ :clflsh, 9,
16
+ :clflushopt, 10,
17
+ :cmov, 11,
18
+ :cx8, 12,
19
+ :cx16, 13,
20
+ :sse4_2, 14,
21
+ :lahf_lm, 15,
22
+ :lzcnt, 16,
23
+ :movbe, 17,
24
+ :mmx, 18,
25
+ :avx2, 19,
26
+ :ssse3, 20,
27
+ :pclmulqdq, 21,
28
+ :popcnt, 22,
29
+ :prfchw, 23,
30
+ :prefetchwt1, 24,
31
+ :rdrand, 25,
32
+ :rdseed, 26,
33
+ :sha, 27,
34
+ :f16c, 28,
35
+ :fma, 29,
36
+ :rtm, 30,
37
+ :hle_rtm, 31,
38
+ :none
39
+ ]
40
+
41
+ enum :x64_inst_flag, [
42
+ :gp, 1 << 0,
43
+ :rflags, 1 << 1,
44
+ :xmm, 1 << 2,
45
+ :ip, 1 << 3,
46
+ :mem, 1 << 4,
47
+ :mm, 1 << 5,
48
+ :sp, 1 << 6,
49
+ ]
50
+
51
+ enum :x64_exception, [
52
+ :ssx, 0,
53
+ :gpx, 1,
54
+ :pf, 2,
55
+ :ac, 3,
56
+ :ud, 4,
57
+ :gps, 5,
58
+ :pfs, 6,
59
+ :xfss, 7,
60
+ :gp, 8,
61
+ :acs, 9,
62
+ :xfs, 10,
63
+ :udx, 11,
64
+ :ss, 12,
65
+ :ts, 13,
66
+ :npx, 14,
67
+ :ssxxx, 15,
68
+ :pfxx, 16,
69
+ :de, 17,
70
+ :ssxx, 18,
71
+ :nm, 19,
72
+ :nms, 20,
73
+ :udcpuid, 21,
74
+ :xf, 22,
75
+ :pfx, 23,
76
+ :none
77
+ ]
78
+
79
+ enum :x64_reg_type, [
80
+ :ip, 0,
81
+ :rflags, 1,
82
+ :mxcsr, 2,
83
+ :gp, 3,
84
+ :mm, 4,
85
+ :xmm, 5,
86
+ :zmm, 6,
87
+ :none
88
+ ]
89
+
90
+ enum :x64_reg_id, [
91
+ :ip, 0,
92
+ :rflags, 1,
93
+ :mxcsr, 2,
94
+ :a, 3,
95
+ :c, 4,
96
+ :d, 5,
97
+ :b, 6,
98
+ :sp, 7,
99
+ :bp, 8,
100
+ :si, 9,
101
+ :di, 10,
102
+ :r8, 11,
103
+ :r9, 12,
104
+ :r10, 13,
105
+ :r11, 14,
106
+ :r12, 15,
107
+ :r13, 16,
108
+ :r14, 17,
109
+ :r15, 18,
110
+ :mm0, 19,
111
+ :mm1, 20,
112
+ :mm2, 21,
113
+ :mm3, 22,
114
+ :mm4, 23,
115
+ :mm5, 24,
116
+ :mm6, 25,
117
+ :mm7, 26,
118
+ :xmm0, 27,
119
+ :xmm1, 28,
120
+ :xmm2, 29,
121
+ :xmm3, 30,
122
+ :xmm4, 31,
123
+ :xmm5, 32,
124
+ :xmm6, 33,
125
+ :xmm7, 34,
126
+ :xmm8, 35,
127
+ :xmm9, 36,
128
+ :xmm10, 37,
129
+ :xmm11, 38,
130
+ :xmm12, 39,
131
+ :xmm13, 40,
132
+ :xmm14, 41,
133
+ :xmm15, 42,
134
+ :zmm16, 43,
135
+ :zmm17, 44,
136
+ :zmm18, 45,
137
+ :zmm19, 46,
138
+ :zmm20, 47,
139
+ :zmm21, 48,
140
+ :zmm22, 49,
141
+ :zmm23, 50,
142
+ :zmm24, 51,
143
+ :zmm25, 52,
144
+ :zmm26, 53,
145
+ :zmm27, 54,
146
+ :zmm28, 55,
147
+ :zmm29, 56,
148
+ :zmm30, 57,
149
+ :zmm31, 58,
150
+ :none
151
+ ]
152
+
153
+ enum :x64_param_id, [
154
+ :reg0, 0,
155
+ :reg1, 1,
156
+ :reg2, 2,
157
+ :reg3, 3,
158
+ :imm0, 4,
159
+ :force_rex?, 5,
160
+ :rex_r, 6,
161
+ :rex_x, 7,
162
+ :rex_b, 8,
163
+ :legacy_prefix_order, 9,
164
+ :lock?, 10,
165
+ :addr_size, 11,
166
+ :reg_base, 12,
167
+ :reg_index, 13,
168
+ :rex_w, 14,
169
+ :disp, 15,
170
+ :scale, 16,
171
+ :force_sib?, 17,
172
+ :force_disp32?, 18,
173
+ :reg0_high_byte?, 19,
174
+ :reg1_high_byte?, 20,
175
+ :force_long_vex?, 21,
176
+ :rel, 22,
177
+ :imm1, 23,
178
+ :moffs, 24,
179
+ :vex_l, 25,
180
+ :modrm_reg, 26,
181
+ :vex_v, 27,
182
+ :none
183
+ ]
184
+
185
+ enum :x64_basic_param_id, [
186
+ :reg0, 0,
187
+ :reg1, 1,
188
+ :reg2, 2,
189
+ :reg3, 3,
190
+ :imm0, 4,
191
+ :reg0_high_byte?, 5,
192
+ :reg1_high_byte?, 6,
193
+ :rel, 7,
194
+ :none
195
+ ]
196
+
197
+ enum :x64_operand_type, [
198
+ :reg, 0,
199
+ :rm, 1,
200
+ :vsib, 2,
201
+ :mem, 3,
202
+ :imm, 4,
203
+ :none
204
+ ]
205
+
206
+ enum :x64_scale, [
207
+ :scale1, 0,
208
+ :scale2, 1,
209
+ :scale4, 2,
210
+ :scale8, 3,
211
+ :none
212
+ ]
213
+
214
+ enum :x64_addr_size, [
215
+ :addr_size64, 0,
216
+ :addr_size32, 1,
217
+ :none
218
+ ]
219
+
220
+ enum :x64_inst_id, [
221
+ :adc_al_imm8, 0,
222
+ :adc_ax_imm16, 1,
223
+ :adc_eax_imm32, 2,
224
+ :adc_rax_imm32, 3,
225
+ :adc_rm8_imm8, 4,
226
+ :adc_rm16_imm16, 5,
227
+ :adc_rm32_imm32, 6,
228
+ :adc_rm64_imm32, 7,
229
+ :adc_rm16_imm8, 8,
230
+ :adc_rm32_imm8, 9,
231
+ :adc_rm64_imm8, 10,
232
+ :adc_rm8_r8, 11,
233
+ :adc_rm16_r16, 12,
234
+ :adc_rm32_r32, 13,
235
+ :adc_rm64_r64, 14,
236
+ :adc_r8_rm8, 15,
237
+ :adc_r16_rm16, 16,
238
+ :adc_r32_rm32, 17,
239
+ :adc_r64_rm64, 18,
240
+ :adcx_r32_rm32, 19,
241
+ :adcx_r64_rm64, 20,
242
+ :add_al_imm8, 21,
243
+ :add_ax_imm16, 22,
244
+ :add_eax_imm32, 23,
245
+ :add_rax_imm32, 24,
246
+ :add_rm8_imm8, 25,
247
+ :add_rm16_imm16, 26,
248
+ :add_rm32_imm32, 27,
249
+ :add_rm64_imm32, 28,
250
+ :add_rm16_imm8, 29,
251
+ :add_rm32_imm8, 30,
252
+ :add_rm64_imm8, 31,
253
+ :add_rm8_r8, 32,
254
+ :add_rm16_r16, 33,
255
+ :add_rm32_r32, 34,
256
+ :add_rm64_r64, 35,
257
+ :add_r8_rm8, 36,
258
+ :add_r16_rm16, 37,
259
+ :add_r32_rm32, 38,
260
+ :add_r64_rm64, 39,
261
+ :addpd_xmm_xmmm128, 40,
262
+ :vaddpd_xmm_xmm_xmmm128, 41,
263
+ :vaddpd_ymm_ymm_ymmm256, 42,
264
+ :addps_xmm_xmmm128, 43,
265
+ :vaddps_xmm_xmm_xmmm128, 44,
266
+ :vaddps_ymm_ymm_ymmm256, 45,
267
+ :addsd_xmm_xmmm64, 46,
268
+ :vaddsd_xmm_xmm_xmmm64, 47,
269
+ :addss_xmm_xmmm32, 48,
270
+ :vaddss_xmm_xmm_xmmm32, 49,
271
+ :addsubpd_xmm_xmmm128, 50,
272
+ :vaddsubpd_xmm_xmm_xmmm128, 51,
273
+ :vaddsubpd_ymm_ymm_ymmm256, 52,
274
+ :addsubps_xmm_xmmm128, 53,
275
+ :vaddsubps_xmm_xmm_xmmm128, 54,
276
+ :vaddsubps_ymm_ymm_ymmm256, 55,
277
+ :adox_r32_rm32, 56,
278
+ :adox_r64_rm64, 57,
279
+ :aesdec_xmm_xmmm128, 58,
280
+ :vaesdec_xmm_xmm_xmmm128, 59,
281
+ :aesdeclast_xmm_xmmm128, 60,
282
+ :vaesdeclast_xmm_xmm_xmmm128, 61,
283
+ :aesenc_xmm_xmmm128, 62,
284
+ :vaesenc_xmm_xmm_xmmm128, 63,
285
+ :aesenclast_xmm_xmmm128, 64,
286
+ :vaesenclast_xmm_xmm_xmmm128, 65,
287
+ :aesimc_xmm_xmmm128, 66,
288
+ :vaesimc_xmm_xmmm128, 67,
289
+ :aeskeygenassist_xmm_xmmm128_imm8, 68,
290
+ :vaeskeygenassist_xmm_xmmm128_imm8, 69,
291
+ :and_al_imm8, 70,
292
+ :and_ax_imm16, 71,
293
+ :and_eax_imm32, 72,
294
+ :and_rax_imm32, 73,
295
+ :and_rm8_imm8, 74,
296
+ :and_rm16_imm16, 75,
297
+ :and_rm32_imm32, 76,
298
+ :and_rm64_imm32, 77,
299
+ :and_rm16_imm8, 78,
300
+ :and_rm32_imm8, 79,
301
+ :and_rm64_imm8, 80,
302
+ :and_rm8_r8, 81,
303
+ :and_rm16_r16, 82,
304
+ :and_rm32_r32, 83,
305
+ :and_rm64_r64, 84,
306
+ :and_r8_rm8, 85,
307
+ :and_r16_rm16, 86,
308
+ :and_r32_rm32, 87,
309
+ :and_r64_rm64, 88,
310
+ :andn_r32_r32_rm32, 89,
311
+ :andn_r64_r64_rm64, 90,
312
+ :andpd_xmm_xmmm128, 91,
313
+ :vandpd_xmm_xmm_xmmm128, 92,
314
+ :vandpd_ymm_ymm_ymmm256, 93,
315
+ :andps_xmm_xmmm128, 94,
316
+ :vandps_xmm_xmm_xmmm128, 95,
317
+ :vandps_ymm_ymm_ymmm256, 96,
318
+ :andnpd_xmm_xmmm128, 97,
319
+ :vandnpd_xmm_xmm_xmmm128, 98,
320
+ :vandnpd_ymm_ymm_ymmm256, 99,
321
+ :andnps_xmm_xmmm128, 100,
322
+ :vandnps_xmm_xmm_xmmm128, 101,
323
+ :vandnps_ymm_ymm_ymmm256, 102,
324
+ :blendpd_xmm_xmmm128_imm8, 103,
325
+ :vblendpd_xmm_xmm_xmmm128_imm8, 104,
326
+ :vblendpd_ymm_ymm_ymmm256_imm8, 105,
327
+ :bextr_r32_rm32_r32, 106,
328
+ :bextr_r64_rm64_r64, 107,
329
+ :blendps_xmm_xmmm128_imm8, 108,
330
+ :vblendps_xmm_xmm_xmmm128_imm8, 109,
331
+ :vblendps_ymm_ymm_ymmm256_imm8, 110,
332
+ :blendvpd_xmm_xmmm128_xmm0, 111,
333
+ :vblendvpd_xmm_xmm_xmmm128_xmm, 112,
334
+ :vblendvpd_ymm_ymm_ymmm256_ymm, 113,
335
+ :blendvps_xmm_xmmm128_xmm0, 114,
336
+ :vblendvps_xmm_xmm_xmmm128_xmm, 115,
337
+ :vblendvps_ymm_ymm_ymmm256_ymm, 116,
338
+ :blsi_r32_rm32, 117,
339
+ :blsi_r64_rm64, 118,
340
+ :blsmsk_r32_rm32, 119,
341
+ :blsmsk_r64_rm64, 120,
342
+ :blsr_r32_rm32, 121,
343
+ :blsr_r64_rm64, 122,
344
+ :bsf_r16_rm16, 123,
345
+ :bsf_r32_rm32, 124,
346
+ :bsf_r64_rm64, 125,
347
+ :bsr_r16_rm16, 126,
348
+ :bsr_r32_rm32, 127,
349
+ :bsr_r64_rm64, 128,
350
+ :bswap_r32, 129,
351
+ :bswap_r64, 130,
352
+ :bt_rm16_r16, 131,
353
+ :bt_rm32_r32, 132,
354
+ :bt_rm64_r64, 133,
355
+ :bt_rm16_imm8, 134,
356
+ :bt_rm32_imm8, 135,
357
+ :bt_rm64_imm8, 136,
358
+ :btc_rm16_r16, 137,
359
+ :btc_rm32_r32, 138,
360
+ :btc_rm64_r64, 139,
361
+ :btc_rm16_imm8, 140,
362
+ :btc_rm32_imm8, 141,
363
+ :btc_rm64_imm8, 142,
364
+ :btr_rm16_r16, 143,
365
+ :btr_rm32_r32, 144,
366
+ :btr_rm64_r64, 145,
367
+ :btr_rm16_imm8, 146,
368
+ :btr_rm32_imm8, 147,
369
+ :btr_rm64_imm8, 148,
370
+ :bts_rm16_r16, 149,
371
+ :bts_rm32_r32, 150,
372
+ :bts_rm64_r64, 151,
373
+ :bts_rm16_imm8, 152,
374
+ :bts_rm32_imm8, 153,
375
+ :bts_rm64_imm8, 154,
376
+ :bzhi_r32_rm32_r32, 155,
377
+ :bzhi_r64_rm64_r64, 156,
378
+ :call_rel32, 157,
379
+ :call_rm64, 158,
380
+ :cbw, 159,
381
+ :cwde, 160,
382
+ :cdqe, 161,
383
+ :clc, 162,
384
+ :cld, 163,
385
+ :clflush_m8, 164,
386
+ :clflushopt_m8, 165,
387
+ :cmc, 166,
388
+ :cmova_r16_rm16, 167,
389
+ :cmova_r32_rm32, 168,
390
+ :cmova_r64_rm64, 169,
391
+ :cmovae_r16_rm16, 170,
392
+ :cmovae_r32_rm32, 171,
393
+ :cmovae_r64_rm64, 172,
394
+ :cmovc_r16_rm16, 173,
395
+ :cmovc_r32_rm32, 174,
396
+ :cmovc_r64_rm64, 175,
397
+ :cmovbe_r16_rm16, 176,
398
+ :cmovbe_r32_rm32, 177,
399
+ :cmovbe_r64_rm64, 178,
400
+ :cmove_r16_rm16, 179,
401
+ :cmove_r32_rm32, 180,
402
+ :cmove_r64_rm64, 181,
403
+ :cmovg_r16_rm16, 182,
404
+ :cmovg_r32_rm32, 183,
405
+ :cmovg_r64_rm64, 184,
406
+ :cmovge_r16_rm16, 185,
407
+ :cmovge_r32_rm32, 186,
408
+ :cmovge_r64_rm64, 187,
409
+ :cmovl_r16_rm16, 188,
410
+ :cmovl_r32_rm32, 189,
411
+ :cmovl_r64_rm64, 190,
412
+ :cmovle_r16_rm16, 191,
413
+ :cmovle_r32_rm32, 192,
414
+ :cmovle_r64_rm64, 193,
415
+ :cmovne_r16_rm16, 194,
416
+ :cmovne_r32_rm32, 195,
417
+ :cmovne_r64_rm64, 196,
418
+ :cmovno_r16_rm16, 197,
419
+ :cmovno_r32_rm32, 198,
420
+ :cmovno_r64_rm64, 199,
421
+ :cmovnp_r16_rm16, 200,
422
+ :cmovnp_r32_rm32, 201,
423
+ :cmovnp_r64_rm64, 202,
424
+ :cmovns_r16_rm16, 203,
425
+ :cmovns_r32_rm32, 204,
426
+ :cmovns_r64_rm64, 205,
427
+ :cmovo_r16_rm16, 206,
428
+ :cmovo_r32_rm32, 207,
429
+ :cmovo_r64_rm64, 208,
430
+ :cmovp_r16_rm16, 209,
431
+ :cmovp_r32_rm32, 210,
432
+ :cmovp_r64_rm64, 211,
433
+ :cmovs_r16_rm16, 212,
434
+ :cmovs_r32_rm32, 213,
435
+ :cmovs_r64_rm64, 214,
436
+ :cmp_al_imm8, 215,
437
+ :cmp_ax_imm16, 216,
438
+ :cmp_eax_imm32, 217,
439
+ :cmp_rax_imm32, 218,
440
+ :cmp_rm8_imm8, 219,
441
+ :cmp_rm16_imm16, 220,
442
+ :cmp_rm32_imm32, 221,
443
+ :cmp_rm64_imm32, 222,
444
+ :cmp_rm16_imm8, 223,
445
+ :cmp_rm32_imm8, 224,
446
+ :cmp_rm64_imm8, 225,
447
+ :cmp_rm8_r8, 226,
448
+ :cmp_rm16_r16, 227,
449
+ :cmp_rm32_r32, 228,
450
+ :cmp_rm64_r64, 229,
451
+ :cmp_r8_rm8, 230,
452
+ :cmp_r16_rm16, 231,
453
+ :cmp_r32_rm32, 232,
454
+ :cmp_r64_rm64, 233,
455
+ :cmppd_xmm_xmmm128_imm8, 234,
456
+ :vcmppd_xmm_xmm_xmmm128_imm8, 235,
457
+ :vcmppd_ymm_ymm_ymmm256_imm8, 236,
458
+ :cmpps_xmm_xmmm128_imm8, 237,
459
+ :vcmpps_xmm_xmm_xmmm128_imm8, 238,
460
+ :vcmpps_ymm_ymm_ymmm256_imm8, 239,
461
+ :cmpsb, 240,
462
+ :cmpsw, 241,
463
+ :cmpsd, 242,
464
+ :cmpsq, 243,
465
+ :cmpsd_xmm_xmmm64_imm8, 244,
466
+ :vcmpsd_xmm_xmm_xmmm64_imm8, 245,
467
+ :cmpss_xmm_xmmm32_imm8, 246,
468
+ :vcmpss_xmm_xmm_xmmm32_imm8, 247,
469
+ :cmpxchg_rm8_r8, 248,
470
+ :cmpxchg_rm16_r16, 249,
471
+ :cmpxchg_rm32_r32, 250,
472
+ :cmpxchg_rm64_r64, 251,
473
+ :cmpxchg8b_m64, 252,
474
+ :cmpxchg16b_m128, 253,
475
+ :comisd_xmm_xmmm64, 254,
476
+ :vcomisd_xmm_xmmm64, 255,
477
+ :comiss_xmm_xmmm32, 256,
478
+ :vcomiss_xmm_xmmm32, 257,
479
+ :cpuid, 258,
480
+ :crc32_r32_rm8, 259,
481
+ :crc32_r32_rm16, 260,
482
+ :crc32_r32_rm32, 261,
483
+ :crc32_r64_rm8, 262,
484
+ :crc32_r64_rm64, 263,
485
+ :cvtdq2pd_xmm_xmmm64, 264,
486
+ :vcvtdq2pd_xmm_xmmm64, 265,
487
+ :vcvtdq2pd_ymm_xmmm128, 266,
488
+ :cvtdq2ps_xmm_xmmm128, 267,
489
+ :vcvtdq2ps_xmm_xmmm128, 268,
490
+ :vcvtdq2ps_ymm_ymmm256, 269,
491
+ :cvtpd2dq_xmm_xmmm128, 270,
492
+ :vcvtpd2dq_xmm_xmmm128, 271,
493
+ :vcvtpd2dq_xmm_ymmm256, 272,
494
+ :cvtpd2pi_mm_xmmm128, 273,
495
+ :cvtpd2ps_xmm_xmmm128, 274,
496
+ :vcvtpd2ps_xmm_xmmm128, 275,
497
+ :vcvtpd2ps_xmm_ymmm256, 276,
498
+ :cvtpi2pd_xmm_mmm64, 277,
499
+ :cvtpi2ps_xmm_mmm64, 278,
500
+ :cvtps2dq_xmm_xmmm128, 279,
501
+ :vcvtps2dq_xmm_xmmm128, 280,
502
+ :vcvtps2dq_ymm_ymmm256, 281,
503
+ :cvtps2pd_xmm_xmmm64, 282,
504
+ :vcvtps2pd_xmm_xmmm64, 283,
505
+ :vcvtps2pd_ymm_xmmm128, 284,
506
+ :cvtps2pi_mm_xmmm64, 285,
507
+ :cvtsd2si_r32_xmmm64, 286,
508
+ :cvtsd2si_r64_xmmm64, 287,
509
+ :vcvtsd2si_r32_xmmm64, 288,
510
+ :vcvtsd2si_r64_xmmm64, 289,
511
+ :cvtsd2ss_xmm_xmmm64, 290,
512
+ :vcvtsd2ss_xmm_xmm_xmmm64, 291,
513
+ :cvtsi2sd_xmm_rm32, 292,
514
+ :cvtsi2sd_xmm_rm64, 293,
515
+ :vcvtsi2sd_xmm_xmm_rm32, 294,
516
+ :vcvtsi2sd_xmm_xmm_rm64, 295,
517
+ :cvtsi2ss_xmm_rm32, 296,
518
+ :cvtsi2ss_xmm_rm64, 297,
519
+ :vcvtsi2ss_xmm_xmm_rm32, 298,
520
+ :vcvtsi2ss_xmm_xmm_rm64, 299,
521
+ :cvtss2sd_xmm_xmmm32, 300,
522
+ :vcvtss2sd_xmm_xmm_xmmm32, 301,
523
+ :cvtss2si_r32_xmmm32, 302,
524
+ :cvtss2si_r64_xmmm32, 303,
525
+ :vcvtss2si_r32_xmmm32, 304,
526
+ :vcvtss2si_r64_xmmm32, 305,
527
+ :cvttpd2dq_xmm_xmmm128, 306,
528
+ :vcvttpd2dq_xmm_xmmm128, 307,
529
+ :vcvttpd2dq_xmm_ymmm256, 308,
530
+ :cvttpd2pi_mm_xmmm128, 309,
531
+ :cvttps2dq_xmm_xmmm128, 310,
532
+ :vcvttps2dq_xmm_xmmm128, 311,
533
+ :vcvttps2dq_ymm_ymmm256, 312,
534
+ :cvttps2pi_mm_xmmm64, 313,
535
+ :cvttsd2si_r32_xmmm64, 314,
536
+ :cvttsd2si_r64_xmmm64, 315,
537
+ :vcvttsd2si_r32_xmmm64, 316,
538
+ :vcvttsd2si_r64_xmmm64, 317,
539
+ :cvttss2si_r32_xmmm32, 318,
540
+ :cvttss2si_r64_xmmm32, 319,
541
+ :vcvttss2si_r32_xmmm32, 320,
542
+ :vcvttss2si_r64_xmmm32, 321,
543
+ :cwd, 322,
544
+ :cdq, 323,
545
+ :cqo, 324,
546
+ :dec_rm8, 325,
547
+ :dec_rm16, 326,
548
+ :dec_rm32, 327,
549
+ :dec_rm64, 328,
550
+ :div_rm8, 329,
551
+ :div_rm16, 330,
552
+ :div_rm32, 331,
553
+ :div_rm64, 332,
554
+ :divpd_xmm_xmmm128, 333,
555
+ :vdivpd_xmm_xmm_xmmm128, 334,
556
+ :vdivpd_ymm_ymm_ymmm256, 335,
557
+ :divps_xmm_xmmm128, 336,
558
+ :vdivps_xmm_xmm_xmmm128, 337,
559
+ :vdivps_ymm_ymm_ymmm256, 338,
560
+ :divsd_xmm_xmmm64, 339,
561
+ :vdivsd_xmm_xmm_xmmm64, 340,
562
+ :divss_xmm_xmmm32, 341,
563
+ :vdivss_xmm_xmm_xmmm32, 342,
564
+ :dppd_xmm_xmmm128_imm8, 343,
565
+ :vdppd_xmm_xmm_xmmm128_imm8, 344,
566
+ :dpps_xmm_xmmm128_imm8, 345,
567
+ :vdpps_xmm_xmm_xmmm128_imm8, 346,
568
+ :vdpps_ymm_ymm_ymmm256_imm8, 347,
569
+ :enterq_imm16_imm8, 348,
570
+ :enterw_imm16_imm8, 349,
571
+ :extractps_rm32_xmm_imm8, 350,
572
+ :vextractps_rm32_xmm_imm8, 351,
573
+ :haddpd_xmm_xmmm128, 352,
574
+ :vhaddpd_xmm_xmm_xmmm128, 353,
575
+ :vhaddpd_ymm_ymm_ymmm256, 354,
576
+ :haddps_xmm_xmmm128, 355,
577
+ :vhaddps_xmm_xmm_xmmm128, 356,
578
+ :vhaddps_ymm_ymm_ymmm256, 357,
579
+ :hsubpd_xmm_xmmm128, 358,
580
+ :vhsubpd_xmm_xmm_xmmm128, 359,
581
+ :vhsubpd_ymm_ymm_ymmm256, 360,
582
+ :hsubps_xmm_xmmm128, 361,
583
+ :vhsubps_xmm_xmm_xmmm128, 362,
584
+ :vhsubps_ymm_ymm_ymmm256, 363,
585
+ :idiv_rm8, 364,
586
+ :idiv_rm16, 365,
587
+ :idiv_rm32, 366,
588
+ :idiv_rm64, 367,
589
+ :imul_rm8, 368,
590
+ :imul_rm16, 369,
591
+ :imul_rm32, 370,
592
+ :imul_rm64, 371,
593
+ :imul_r16_rm16, 372,
594
+ :imul_r32_rm32, 373,
595
+ :imul_r64_rm64, 374,
596
+ :imul_r16_rm16_imm8, 375,
597
+ :imul_r32_rm32_imm8, 376,
598
+ :imul_r64_rm64_imm8, 377,
599
+ :imul_r16_rm16_imm16, 378,
600
+ :imul_r32_rm32_imm32, 379,
601
+ :imul_r64_rm64_imm32, 380,
602
+ :inc_rm8, 381,
603
+ :inc_rm16, 382,
604
+ :inc_rm32, 383,
605
+ :inc_rm64, 384,
606
+ :insertps_xmm_xmmm32_imm8, 385,
607
+ :vinsertps_xmm_xmm_xmmm32_imm8, 386,
608
+ :ja_rel8, 387,
609
+ :jae_rel8, 388,
610
+ :jb_rel8, 389,
611
+ :jbe_rel8, 390,
612
+ :jecxz_rel8, 391,
613
+ :je_rel8, 392,
614
+ :jg_rel8, 393,
615
+ :jge_rel8, 394,
616
+ :jl_rel8, 395,
617
+ :jle_rel8, 396,
618
+ :jne_rel8, 397,
619
+ :jno_rel8, 398,
620
+ :jnp_rel8, 399,
621
+ :jns_rel8, 400,
622
+ :jo_rel8, 401,
623
+ :jp_rel8, 402,
624
+ :js_rel8, 403,
625
+ :ja_rel32, 404,
626
+ :jae_rel32, 405,
627
+ :jb_rel32, 406,
628
+ :jbe_rel32, 407,
629
+ :je_rel32, 408,
630
+ :jg_rel32, 409,
631
+ :jge_rel32, 410,
632
+ :jl_rel32, 411,
633
+ :jle_rel32, 412,
634
+ :jne_rel32, 413,
635
+ :jno_rel32, 414,
636
+ :jnp_rel32, 415,
637
+ :jns_rel32, 416,
638
+ :jo_rel32, 417,
639
+ :jp_rel32, 418,
640
+ :js_rel32, 419,
641
+ :jmp_rel8, 420,
642
+ :jmp_rel32, 421,
643
+ :jmp_rm64, 422,
644
+ :lahf, 423,
645
+ :lddqu_xmm_m128, 424,
646
+ :vlddqu_xmm_m128, 425,
647
+ :vlddqu_ymm_m256, 426,
648
+ :ldmxcsr_m32, 427,
649
+ :vldmxcsr_m32, 428,
650
+ :lea_r16_m16, 429,
651
+ :lea_r32_m32, 430,
652
+ :lea_r64_m64, 431,
653
+ :leavew, 432,
654
+ :leaveq, 433,
655
+ :lfence, 434,
656
+ :lodsb, 435,
657
+ :lodsw, 436,
658
+ :lodsd, 437,
659
+ :lodsq, 438,
660
+ :loop_rel8, 439,
661
+ :loope_rel8, 440,
662
+ :loopne_rel8, 441,
663
+ :lzcnt_r16_rm16, 442,
664
+ :lzcnt_r32_rm32, 443,
665
+ :lzcnt_r64_rm64, 444,
666
+ :maskmovdqu_xmm_xmm, 445,
667
+ :vmaskmovdqu_xmm_xmm, 446,
668
+ :maskmovq_mm_mm, 447,
669
+ :maxpd_xmm_xmmm128, 448,
670
+ :vmaxpd_xmm_xmm_xmmm128, 449,
671
+ :vmaxpd_ymm_ymm_ymmm256, 450,
672
+ :maxps_xmm_xmmm128, 451,
673
+ :vmaxps_xmm_xmm_xmmm128, 452,
674
+ :vmaxps_ymm_ymm_ymmm256, 453,
675
+ :maxsd_xmm_xmmm64, 454,
676
+ :vmaxsd_xmm_xmm_xmmm64, 455,
677
+ :maxss_xmm_xmmm32, 456,
678
+ :vmaxss_xmm_xmm_xmmm32, 457,
679
+ :mfence, 458,
680
+ :minpd_xmm_xmmm128, 459,
681
+ :vminpd_xmm_xmm_xmmm128, 460,
682
+ :vminpd_ymm_ymm_ymmm256, 461,
683
+ :minps_xmm_xmmm128, 462,
684
+ :vminps_xmm_xmm_xmmm128, 463,
685
+ :vminps_ymm_ymm_ymmm256, 464,
686
+ :minsd_xmm_xmmm64, 465,
687
+ :vminsd_xmm_xmm_xmmm64, 466,
688
+ :minss_xmm_xmmm32, 467,
689
+ :vminss_xmm_xmm_xmmm32, 468,
690
+ :mov_rm8_r8, 469,
691
+ :mov_rm16_r16, 470,
692
+ :mov_rm32_r32, 471,
693
+ :mov_rm64_r64, 472,
694
+ :mov_r8_rm8, 473,
695
+ :mov_r16_rm16, 474,
696
+ :mov_r32_rm32, 475,
697
+ :mov_r64_rm64, 476,
698
+ :mov_al_moffs8, 477,
699
+ :mov_ax_moffs16, 478,
700
+ :mov_eax_moffs32, 479,
701
+ :mov_rax_moffs64, 480,
702
+ :mov_moffs8_al, 481,
703
+ :mov_moffs16_ax, 482,
704
+ :mov_moffs32_eax, 483,
705
+ :mov_moffs64_rax, 484,
706
+ :mov_r8_imm8, 485,
707
+ :mov_r16_imm16, 486,
708
+ :mov_r32_imm32, 487,
709
+ :mov_r64_imm64, 488,
710
+ :mov_rm8_imm8, 489,
711
+ :mov_rm16_imm16, 490,
712
+ :mov_rm32_imm32, 491,
713
+ :mov_rm64_imm32, 492,
714
+ :movapd_xmm_xmmm128, 493,
715
+ :movapd_xmmm128_xmm, 494,
716
+ :vmovapd_xmm_xmmm128, 495,
717
+ :vmovapd_xmmm128_xmm, 496,
718
+ :vmovapd_ymm_ymmm256, 497,
719
+ :vmovapd_ymmm256_ymm, 498,
720
+ :movaps_xmm_xmmm128, 499,
721
+ :movaps_xmmm128_xmm, 500,
722
+ :vmovaps_xmm_xmmm128, 501,
723
+ :vmovaps_xmmm128_xmm, 502,
724
+ :vmovaps_ymm_ymmm256, 503,
725
+ :vmovaps_ymmm256_ymm, 504,
726
+ :movbe_r16_m16, 505,
727
+ :movbe_r32_m32, 506,
728
+ :movbe_r64_m64, 507,
729
+ :movbe_m16_r16, 508,
730
+ :movbe_m32_r32, 509,
731
+ :movbe_m64_r64, 510,
732
+ :movd_mm_rm32, 511,
733
+ :movq_mm_rm64, 512,
734
+ :movd_rm32_mm, 513,
735
+ :movq_rm64_mm, 514,
736
+ :movd_xmm_rm32, 515,
737
+ :movq_xmm_rm64, 516,
738
+ :movd_rm32_xmm, 517,
739
+ :movq_rm64_xmm, 518,
740
+ :vmovd_xmm_rm32, 519,
741
+ :vmovq_xmm_rm64, 520,
742
+ :vmovd_rm32_xmm, 521,
743
+ :vmovq_rm64_xmm, 522,
744
+ :movddup_xmm_xmmm64, 523,
745
+ :vmovddup_xmm_xmmm64, 524,
746
+ :vmovddup_ymm_ymmm256, 525,
747
+ :movdqa_xmm_xmmm128, 526,
748
+ :movdqa_xmmm128_xmm, 527,
749
+ :vmovdqa_xmm_xmmm128, 528,
750
+ :vmovdqa_xmmm128_xmm, 529,
751
+ :vmovdqa_ymm_ymmm256, 530,
752
+ :vmovdqa_ymmm256_ymm, 531,
753
+ :movdqu_xmm_xmmm128, 532,
754
+ :movdqu_xmmm128_xmm, 533,
755
+ :vmovdqu_xmm_xmmm128, 534,
756
+ :vmovdqu_xmmm128_xmm, 535,
757
+ :vmovdqu_ymm_ymmm256, 536,
758
+ :vmovdqu_ymmm256_ymm, 537,
759
+ :movdq2q_mm_xmm, 538,
760
+ :movhlps_xmm_xmm, 539,
761
+ :vmovhlps_xmm_xmm_xmm, 540,
762
+ :movhpd_xmm_m64, 541,
763
+ :vmovhpd_xmm_xmm_m64, 542,
764
+ :movhpd_m64_xmm, 543,
765
+ :vmovhpd_m64_xmm, 544,
766
+ :movhps_xmm_m64, 545,
767
+ :vmovhps_xmm_xmm_m64, 546,
768
+ :movhps_m64_xmm, 547,
769
+ :vmovhps_m64_xmm, 548,
770
+ :movlhps_xmm_xmm, 549,
771
+ :vmovlhps_xmm_xmm_xmm, 550,
772
+ :movlpd_xmm_m64, 551,
773
+ :vmovlpd_xmm_xmm_m64, 552,
774
+ :movlpd_m64_xmm, 553,
775
+ :vmovlpd_m64_xmm, 554,
776
+ :movlps_xmm_m64, 555,
777
+ :vmovlps_xmm_xmm_m64, 556,
778
+ :movlps_m64_xmm, 557,
779
+ :vmovlps_m64_xmm, 558,
780
+ :movmskpd_r32_xmm, 559,
781
+ :vmovmskpd_r32_xmm, 560,
782
+ :vmovmskpd_r32_ymm, 561,
783
+ :movmskps_r32_xmm, 562,
784
+ :vmovmskps_r32_xmm, 563,
785
+ :vmovmskps_r32_ymm, 564,
786
+ :movntdqa_xmm_m128, 565,
787
+ :vmovntdqa_xmm_m128, 566,
788
+ :vmovntdqa_ymm_m256, 567,
789
+ :movntdq_m128_xmm, 568,
790
+ :vmovntdq_m128_xmm, 569,
791
+ :vmovntdq_m256_ymm, 570,
792
+ :movnti_m32_r32, 571,
793
+ :movnti_m64_r64, 572,
794
+ :movntpd_m128_xmm, 573,
795
+ :vmovntpd_m128_xmm, 574,
796
+ :vmovntpd_m256_ymm, 575,
797
+ :movntps_m128_xmm, 576,
798
+ :vmovntps_m128_xmm, 577,
799
+ :vmovntps_m256_ymm, 578,
800
+ :movntq_m64_mm, 579,
801
+ :movq_mm_mmm64, 580,
802
+ :movq_mmm64_mm, 581,
803
+ :movq_xmm_xmmm64, 582,
804
+ :vmovq_xmm_xmmm64, 583,
805
+ :movq_xmmm64_xmm, 584,
806
+ :vmovq_xmmm64_xmm, 585,
807
+ :movq2dq_xmm_mm, 586,
808
+ :movsb, 587,
809
+ :movsw, 588,
810
+ :movsd, 589,
811
+ :movsq, 590,
812
+ :movsd_xmm_xmmm64, 591,
813
+ :movsd_xmmm64_xmm, 592,
814
+ :vmovsd0_xmm_xmm_xmm, 593,
815
+ :vmovsd_xmm_m64, 594,
816
+ :vmovsd1_xmm_xmm_xmm, 595,
817
+ :vmovsd_m64_xmm, 596,
818
+ :movshdup_xmm_xmmm128, 597,
819
+ :vmovshdup_xmm_xmmm128, 598,
820
+ :vmovshdup_ymm_ymmm256, 599,
821
+ :movsldup_xmm_xmmm128, 600,
822
+ :vmovsldup_xmm_xmmm128, 601,
823
+ :vmovsldup_ymm_ymmm256, 602,
824
+ :movss_xmm_xmmm32, 603,
825
+ :vmovss0_xmm_xmm_xmm, 604,
826
+ :vmovss_xmm_m32, 605,
827
+ :movss_xmmm32_xmm, 606,
828
+ :vmovss1_xmm_xmm_xmm, 607,
829
+ :vmovss_m32_xmm, 608,
830
+ :movsx_r16_rm8, 609,
831
+ :movsx_r32_rm8, 610,
832
+ :movsx_r64_rm8, 611,
833
+ :movsx_r32_rm16, 612,
834
+ :movsx_r64_rm16, 613,
835
+ :movsxd_r64_rm32, 614,
836
+ :movupd_xmm_xmmm128, 615,
837
+ :movupd_xmmm128_xmm, 616,
838
+ :vmovupd_xmm_xmmm128, 617,
839
+ :vmovupd_xmmm128_xmm, 618,
840
+ :vmovupd_ymm_ymmm256, 619,
841
+ :vmovupd_ymmm256_ymm, 620,
842
+ :movups_xmm_xmmm128, 621,
843
+ :movups_xmmm128_xmm, 622,
844
+ :vmovups_xmm_xmmm128, 623,
845
+ :vmovups_xmmm128_xmm, 624,
846
+ :vmovups_ymm_ymmm256, 625,
847
+ :vmovups_ymmm256_ymm, 626,
848
+ :movzx_r16_rm8, 627,
849
+ :movzx_r32_rm8, 628,
850
+ :movzx_r64_rm8, 629,
851
+ :movzx_r32_rm16, 630,
852
+ :movzx_r64_rm16, 631,
853
+ :mpsadbw_xmm_xmmm128_imm8, 632,
854
+ :vmpsadbw_xmm_xmm_xmmm128_imm8, 633,
855
+ :vmpsadbw_ymm_ymm_ymmm256_imm8, 634,
856
+ :mul_rm8, 635,
857
+ :mul_rm16, 636,
858
+ :mul_rm32, 637,
859
+ :mul_rm64, 638,
860
+ :mulpd_xmm_xmmm128, 639,
861
+ :vmulpd_xmm_xmm_xmmm128, 640,
862
+ :vmulpd_ymm_ymm_ymmm256, 641,
863
+ :mulps_xmm_xmmm128, 642,
864
+ :vmulps_xmm_xmm_xmmm128, 643,
865
+ :vmulps_ymm_ymm_ymmm256, 644,
866
+ :mulsd_xmm_xmmm64, 645,
867
+ :vmulsd_xmm_xmm_xmmm64, 646,
868
+ :mulss_xmm_xmmm32, 647,
869
+ :vmulss_xmm_xmm_xmmm32, 648,
870
+ :mulx_r32_r32_rm32, 649,
871
+ :mulx_r64_r64_rm64, 650,
872
+ :neg_rm8, 651,
873
+ :neg_rm16, 652,
874
+ :neg_rm32, 653,
875
+ :neg_rm64, 654,
876
+ :nop, 655,
877
+ :nop_rm16, 656,
878
+ :nop_rm32, 657,
879
+ :not_rm8, 658,
880
+ :not_rm16, 659,
881
+ :not_rm32, 660,
882
+ :not_rm64, 661,
883
+ :or_al_imm8, 662,
884
+ :or_ax_imm16, 663,
885
+ :or_eax_imm32, 664,
886
+ :or_rax_imm32, 665,
887
+ :or_rm8_imm8, 666,
888
+ :or_rm16_imm16, 667,
889
+ :or_rm32_imm32, 668,
890
+ :or_rm64_imm32, 669,
891
+ :or_rm16_imm8, 670,
892
+ :or_rm32_imm8, 671,
893
+ :or_rm64_imm8, 672,
894
+ :or_rm8_r8, 673,
895
+ :or_rm16_r16, 674,
896
+ :or_rm32_r32, 675,
897
+ :or_rm64_r64, 676,
898
+ :or_r8_rm8, 677,
899
+ :or_r16_rm16, 678,
900
+ :or_r32_rm32, 679,
901
+ :or_r64_rm64, 680,
902
+ :orpd_xmm_xmmm128, 681,
903
+ :vorpd_xmm_xmm_xmmm128, 682,
904
+ :vorpd_ymm_ymm_ymmm256, 683,
905
+ :orps_xmm_xmmm128, 684,
906
+ :vorps_xmm_xmm_xmmm128, 685,
907
+ :vorps_ymm_ymm_ymmm256, 686,
908
+ :pabsb_mm_mmm64, 687,
909
+ :pabsb_xmm_xmmm128, 688,
910
+ :pabsw_mm_mmm64, 689,
911
+ :pabsw_xmm_xmmm128, 690,
912
+ :pabsd_mm_mmm64, 691,
913
+ :pabsd_xmm_xmmm128, 692,
914
+ :vpabsb_xmm_xmmm128, 693,
915
+ :vpabsw_xmm_xmmm128, 694,
916
+ :vpabsd_xmm_xmmm128, 695,
917
+ :vpabsb_ymm_ymmm256, 696,
918
+ :vpabsw_ymm_ymmm256, 697,
919
+ :vpabsd_ymm_ymmm256, 698,
920
+ :packsswb_mm_mmm64, 699,
921
+ :packsswb_xmm_xmmm128, 700,
922
+ :packssdw_mm_mmm64, 701,
923
+ :packssdw_xmm_xmmm128, 702,
924
+ :vpacksswb_xmm_xmm_xmmm128, 703,
925
+ :vpackssdw_xmm_xmm_xmmm128, 704,
926
+ :vpacksswb_ymm_ymm_ymmm256, 705,
927
+ :vpackssdw_ymm_ymm_ymmm256, 706,
928
+ :packusdw_xmm_xmmm128, 707,
929
+ :vpackusdw_xmm_xmm_xmmm128, 708,
930
+ :vpackusdw_ymm_ymm_ymmm256, 709,
931
+ :packuswb_mm_mmm64, 710,
932
+ :packuswb_xmm_xmmm128, 711,
933
+ :vpackuswb_xmm_xmm_xmmm128, 712,
934
+ :vpackuswb_ymm_ymm_ymmm256, 713,
935
+ :paddb_mm_mmm64, 714,
936
+ :paddw_mm_mmm64, 715,
937
+ :paddb_xmm_xmmm128, 716,
938
+ :paddw_xmm_xmmm128, 717,
939
+ :paddd_xmm_xmmm128, 718,
940
+ :paddq_xmm_xmmm128, 719,
941
+ :vpaddb_xmm_xmm_xmmm128, 720,
942
+ :vpaddw_xmm_xmm_xmmm128, 721,
943
+ :vpaddd_xmm_xmm_xmmm128, 722,
944
+ :vpaddq_xmm_xmm_xmmm128, 723,
945
+ :vpaddb_ymm_ymm_ymmm256, 724,
946
+ :vpaddw_ymm_ymm_ymmm256, 725,
947
+ :vpaddd_ymm_ymm_ymmm256, 726,
948
+ :vpaddq_ymm_ymm_ymmm256, 727,
949
+ :paddsb_mm_mmm64, 728,
950
+ :paddsb_xmm_xmmm128, 729,
951
+ :paddsw_mm_mmm64, 730,
952
+ :paddsw_xmm_xmmm128, 731,
953
+ :vpaddsb_xmm_xmm_xmmm128, 732,
954
+ :vpaddsw_xmm_xmm_xmmm128, 733,
955
+ :vpaddsb_ymm_ymm_ymmm256, 734,
956
+ :vpaddsw_ymm_ymm_ymmm256, 735,
957
+ :paddusb_mm_mmm64, 736,
958
+ :paddusb_xmm_xmmm128, 737,
959
+ :paddusw_mm_mmm64, 738,
960
+ :paddusw_xmm_xmmm128, 739,
961
+ :vpaddusb_xmm_xmm_xmmm128, 740,
962
+ :vpaddusw_xmm_xmm_xmmm128, 741,
963
+ :vpaddusb_ymm_ymm_ymmm256, 742,
964
+ :vpaddusw_ymm_ymm_ymmm256, 743,
965
+ :palignr_mm_mmm64_imm8, 744,
966
+ :palignr_xmm_xmmm128_imm8, 745,
967
+ :vpalignr_xmm_xmm_xmmm128_imm8, 746,
968
+ :vpalignr_ymm_ymm_ymmm256_imm8, 747,
969
+ :pand_mm_mmm64, 748,
970
+ :pand_xmm_xmmm128, 749,
971
+ :vpand_xmm_xmm_xmmm128, 750,
972
+ :vpand_ymm_ymm_ymmm256, 751,
973
+ :pandn_mm_mmm64, 752,
974
+ :pandn_xmm_xmmm128, 753,
975
+ :vpandn_xmm_xmm_xmmm128, 754,
976
+ :vpandn_ymm_ymm_ymmm256, 755,
977
+ :pause, 756,
978
+ :pavgb_mm_mmm64, 757,
979
+ :pavgb_xmm_xmmm128, 758,
980
+ :pavgw_mm_mmm64, 759,
981
+ :pavgw_xmm_xmmm128, 760,
982
+ :vpavgb_xmm_xmm_xmmm128, 761,
983
+ :vpavgw_xmm_xmm_xmmm128, 762,
984
+ :vpavgb_ymm_ymm_ymmm256, 763,
985
+ :vpavgw_ymm_ymm_ymmm256, 764,
986
+ :pblendvb_xmm_xmmm128_xmm0, 765,
987
+ :vpblendvb_xmm_xmm_xmmm128_xmm, 766,
988
+ :vpblendvb_ymm_ymm_ymmm256_ymm, 767,
989
+ :pblendw_xmm_xmmm128_imm8, 768,
990
+ :vpblendw_xmm_xmm_xmmm128_imm8, 769,
991
+ :vpblendw_ymm_ymm_ymmm256_imm8, 770,
992
+ :pclmulqdq_xmm_xmmm128_imm8, 771,
993
+ :vpclmulqdq_xmm_xmm_xmmm128_imm8, 772,
994
+ :pcmpeqb_mm_mmm64, 773,
995
+ :pcmpeqb_xmm_xmmm128, 774,
996
+ :pcmpeqw_mm_mmm64, 775,
997
+ :pcmpeqw_xmm_xmmm128, 776,
998
+ :pcmpeqd_mm_mmm64, 777,
999
+ :pcmpeqd_xmm_xmmm128, 778,
1000
+ :vpcmpeqb_xmm_xmm_xmmm128, 779,
1001
+ :vpcmpeqw_xmm_xmm_xmmm128, 780,
1002
+ :vpcmpeqd_xmm_xmm_xmmm128, 781,
1003
+ :vpcmpeqb_ymm_ymm_ymmm256, 782,
1004
+ :vpcmpeqw_ymm_ymm_ymmm256, 783,
1005
+ :vpcmpeqd_ymm_ymm_ymmm256, 784,
1006
+ :pcmpeqq_xmm_xmmm128, 785,
1007
+ :vpcmpeqq_xmm_xmm_xmmm128, 786,
1008
+ :vpcmpeqq_ymm_ymm_ymmm256, 787,
1009
+ :pcmpestri_xmm_xmmm128_imm8, 788,
1010
+ :vpcmpestri_xmm_xmmm128_imm8, 789,
1011
+ :pcmpestrm_xmm_xmmm128_imm8, 790,
1012
+ :vpcmpestrm_xmm_xmmm128_imm8, 791,
1013
+ :pcmpgtb_mm_mmm64, 792,
1014
+ :pcmpgtb_xmm_xmmm128, 793,
1015
+ :pcmpgtw_mm_mmm64, 794,
1016
+ :pcmpgtw_xmm_xmmm128, 795,
1017
+ :pcmpgtd_mm_mmm64, 796,
1018
+ :pcmpgtd_xmm_xmmm128, 797,
1019
+ :vpcmpgtb_xmm_xmm_xmmm128, 798,
1020
+ :vpcmpgtw_xmm_xmm_xmmm128, 799,
1021
+ :vpcmpgtd_xmm_xmm_xmmm128, 800,
1022
+ :vpcmpgtb_ymm_ymm_ymmm256, 801,
1023
+ :vpcmpgtw_ymm_ymm_ymmm256, 802,
1024
+ :vpcmpgtd_ymm_ymm_ymmm256, 803,
1025
+ :pcmpgtq_xmm_xmmm128, 804,
1026
+ :vpcmpgtq_xmm_xmm_xmmm128, 805,
1027
+ :vpcmpgtq_ymm_ymm_ymmm256, 806,
1028
+ :pcmpistri_xmm_xmmm128_imm8, 807,
1029
+ :vpcmpistri_xmm_xmmm128_imm8, 808,
1030
+ :pcmpistrm_xmm_xmmm128_imm8, 809,
1031
+ :vpcmpistrm_xmm_xmmm128_imm8, 810,
1032
+ :pdep_r32_r32_rm32, 811,
1033
+ :pdep_r64_r64_rm64, 812,
1034
+ :pext_r32_r32_rm32, 813,
1035
+ :pext_r64_r64_rm64, 814,
1036
+ :pextrb_r32m8_xmm_imm8, 815,
1037
+ :pextrd_rm32_xmm_imm8, 816,
1038
+ :pextrq_rm64_xmm_imm8, 817,
1039
+ :vpextrb_r32m8_xmm_imm8, 818,
1040
+ :vpextrd_rm32_xmm_imm8, 819,
1041
+ :vpextrq_rm64_xmm_imm8, 820,
1042
+ :pextrw_r32_mm_imm8, 821,
1043
+ :pextrw_r32_xmm_imm8, 822,
1044
+ :pextrw_r32m16_xmm_imm8, 823,
1045
+ :vpextrw_r32_xmm_imm8, 824,
1046
+ :vpextrw_r32m16_xmm_imm8, 825,
1047
+ :phaddw_mm_mmm64, 826,
1048
+ :phaddw_xmm_xmmm128, 827,
1049
+ :phaddd_mm_mmm64, 828,
1050
+ :phaddd_xmm_xmmm128, 829,
1051
+ :vphaddw_xmm_xmm_xmmm128, 830,
1052
+ :vphaddd_xmm_xmm_xmmm128, 831,
1053
+ :vphaddw_ymm_ymm_ymmm256, 832,
1054
+ :vphaddd_ymm_ymm_ymmm256, 833,
1055
+ :phaddsw_mm_mmm64, 834,
1056
+ :phaddsw_xmm_xmmm128, 835,
1057
+ :vphaddsw_xmm_xmm_xmmm128, 836,
1058
+ :vphaddsw_ymm_ymm_ymmm256, 837,
1059
+ :phminposuw_xmm_xmmm128, 838,
1060
+ :vphminposuw_xmm_xmmm128, 839,
1061
+ :phsubw_mm_mmm64, 840,
1062
+ :phsubw_xmm_xmmm128, 841,
1063
+ :phsubd_mm_mmm64, 842,
1064
+ :phsubd_xmm_xmmm128, 843,
1065
+ :vphsubw_xmm_xmm_xmmm128, 844,
1066
+ :vphsubd_xmm_xmm_xmmm128, 845,
1067
+ :vphsubw_ymm_ymm_ymmm256, 846,
1068
+ :vphsubd_ymm_ymm_ymmm256, 847,
1069
+ :phsubsw_mm_mmm64, 848,
1070
+ :phsubsw_xmm_xmmm128, 849,
1071
+ :vphsubsw_xmm_xmm_xmmm128, 850,
1072
+ :vphsubsw_ymm_ymm_ymmm256, 851,
1073
+ :pinsrb_xmm_r32m8_imm8, 852,
1074
+ :pinsrd_xmm_rm32_imm8, 853,
1075
+ :pinsrq_xmm_rm64_imm8, 854,
1076
+ :vpinsrb_xmm_xmm_r32m8_imm8, 855,
1077
+ :vpinsrd_xmm_xmm_rm32_imm8, 856,
1078
+ :vpinsrq_xmm_xmm_rm64_imm8, 857,
1079
+ :pinsrw_mm_r32m16_imm8, 858,
1080
+ :pinsrw_xmm_r32m16_imm8, 859,
1081
+ :vpinsrw_xmm_xmm_r32m16_imm8, 860,
1082
+ :pmaddubsw_mm_mmm64, 861,
1083
+ :pmaddubsw_xmm_xmmm128, 862,
1084
+ :vpmaddubsw_xmm_xmm_xmmm128, 863,
1085
+ :vpmaddubsw_ymm_ymm_ymmm256, 864,
1086
+ :pmaddwd_mm_mmm64, 865,
1087
+ :pmaddwd_xmm_xmmm128, 866,
1088
+ :vpmaddwd_xmm_xmm_xmmm128, 867,
1089
+ :vpmaddwd_ymm_ymm_ymmm256, 868,
1090
+ :pmaxsw_mm_mmm64, 869,
1091
+ :pmaxsb_xmm_xmmm128, 870,
1092
+ :pmaxsw_xmm_xmmm128, 871,
1093
+ :pmaxsd_xmm_xmmm128, 872,
1094
+ :vpmaxsb_xmm_xmm_xmmm128, 873,
1095
+ :vpmaxsw_xmm_xmm_xmmm128, 874,
1096
+ :vpmaxsd_xmm_xmm_xmmm128, 875,
1097
+ :vpmaxsb_ymm_ymm_ymmm256, 876,
1098
+ :vpmaxsw_ymm_ymm_ymmm256, 877,
1099
+ :vpmaxsd_ymm_ymm_ymmm256, 878,
1100
+ :pmaxub_mm_mmm64, 879,
1101
+ :pmaxub_xmm_xmmm128, 880,
1102
+ :pmaxuw_xmm_xmmm128, 881,
1103
+ :vpmaxub_xmm_xmm_xmmm128, 882,
1104
+ :vpmaxuw_xmm_xmm_xmmm128, 883,
1105
+ :vpmaxub_ymm_ymm_ymmm256, 884,
1106
+ :vpmaxuw_ymm_ymm_ymmm256, 885,
1107
+ :pmaxud_xmm_xmmm128, 886,
1108
+ :vpmaxud_xmm_xmm_xmmm128, 887,
1109
+ :vpmaxud_ymm_ymm_ymmm256, 888,
1110
+ :pminsw_mm_mmm64, 889,
1111
+ :pminsb_xmm_xmmm128, 890,
1112
+ :pminsw_xmm_xmmm128, 891,
1113
+ :vpminsb_xmm_xmm_xmmm128, 892,
1114
+ :vpminsw_xmm_xmm_xmmm128, 893,
1115
+ :vpminsb_ymm_ymm_ymmm256, 894,
1116
+ :vpminsw_ymm_ymm_ymmm256, 895,
1117
+ :pminsd_xmm_xmmm128, 896,
1118
+ :vpminsd_xmm_xmm_xmmm128, 897,
1119
+ :vpminsd_ymm_ymm_ymmm256, 898,
1120
+ :pminub_mm_mmm64, 899,
1121
+ :pminub_xmm_xmmm128, 900,
1122
+ :pminuw_xmm_xmmm128, 901,
1123
+ :vpminub_xmm_xmm_xmmm128, 902,
1124
+ :vpminuw_xmm_xmm_xmmm128, 903,
1125
+ :vpminub_ymm_ymm_ymmm256, 904,
1126
+ :vpminuw_ymm_ymm_ymmm256, 905,
1127
+ :pminud_xmm_xmmm128, 906,
1128
+ :vpminud_xmm_xmm_xmmm128, 907,
1129
+ :vpminud_ymm_ymm_ymmm256, 908,
1130
+ :pmovmskb_r32_mm, 909,
1131
+ :pmovmskb_r32_xmm, 910,
1132
+ :vpmovmskb_r32_xmm, 911,
1133
+ :vpmovmskb_r32_ymm, 912,
1134
+ :pmovsxbw_xmm_xmmm64, 913,
1135
+ :pmovsxbd_xmm_xmmm32, 914,
1136
+ :pmovsxbq_xmm_xmmm16, 915,
1137
+ :pmovsxwd_xmm_xmmm64, 916,
1138
+ :pmovsxwq_xmm_xmmm32, 917,
1139
+ :pmovsxdq_xmm_xmmm64, 918,
1140
+ :vpmovsxbw_xmm_xmmm64, 919,
1141
+ :vpmovsxbd_xmm_xmmm32, 920,
1142
+ :vpmovsxbq_xmm_xmmm16, 921,
1143
+ :vpmovsxwd_xmm_xmmm64, 922,
1144
+ :vpmovsxwq_xmm_xmmm32, 923,
1145
+ :vpmovsxdq_xmm_xmmm64, 924,
1146
+ :vpmovsxbw_ymm_xmmm128, 925,
1147
+ :vpmovsxbd_ymm_xmmm64, 926,
1148
+ :vpmovsxbq_ymm_xmmm32, 927,
1149
+ :vpmovsxwd_ymm_xmmm128, 928,
1150
+ :vpmovsxwq_ymm_xmmm64, 929,
1151
+ :vpmovsxdq_ymm_xmmm128, 930,
1152
+ :pmovzxbw_xmm_xmmm64, 931,
1153
+ :pmovzxbd_xmm_xmmm32, 932,
1154
+ :pmovzxbq_xmm_xmmm16, 933,
1155
+ :pmovzxwd_xmm_xmmm64, 934,
1156
+ :pmovzxwq_xmm_xmmm32, 935,
1157
+ :pmovzxdq_xmm_xmmm64, 936,
1158
+ :vpmovzxbw_xmm_xmmm64, 937,
1159
+ :vpmovzxbd_xmm_xmmm32, 938,
1160
+ :vpmovzxbq_xmm_xmmm16, 939,
1161
+ :vpmovzxwd_xmm_xmmm64, 940,
1162
+ :vpmovzxwq_xmm_xmmm32, 941,
1163
+ :vpmovzxdq_xmm_xmmm64, 942,
1164
+ :vpmovzxbw_ymm_xmmm128, 943,
1165
+ :vpmovzxbd_ymm_xmmm64, 944,
1166
+ :vpmovzxbq_ymm_xmmm32, 945,
1167
+ :vpmovzxwd_ymm_xmmm128, 946,
1168
+ :vpmovzxwq_ymm_xmmm64, 947,
1169
+ :vpmovzxdq_ymm_xmmm128, 948,
1170
+ :pmuldq_xmm_xmmm128, 949,
1171
+ :vpmuldq_xmm_xmm_xmmm128, 950,
1172
+ :vpmuldq_ymm_ymm_ymmm256, 951,
1173
+ :pmulhrsw_mm_mmm64, 952,
1174
+ :pmulhrsw_xmm_xmmm128, 953,
1175
+ :vpmulhrsw_xmm_xmm_xmmm128, 954,
1176
+ :vpmulhrsw_ymm_ymm_ymmm256, 955,
1177
+ :pmulhuw_mm_mmm64, 956,
1178
+ :pmulhuw_xmm_xmmm128, 957,
1179
+ :vpmulhuw_xmm_xmm_xmmm128, 958,
1180
+ :vpmulhuw_ymm_ymm_ymmm256, 959,
1181
+ :pmulhw_mm_mmm64, 960,
1182
+ :pmulhw_xmm_xmmm128, 961,
1183
+ :vpmulhw_xmm_xmm_xmmm128, 962,
1184
+ :vpmulhw_ymm_ymm_ymmm256, 963,
1185
+ :pmulld_xmm_xmmm128, 964,
1186
+ :vpmulld_xmm_xmm_xmmm128, 965,
1187
+ :vpmulld_ymm_ymm_ymmm256, 966,
1188
+ :pmullw_mm_mmm64, 967,
1189
+ :pmullw_xmm_xmmm128, 968,
1190
+ :vpmullw_xmm_xmm_xmmm128, 969,
1191
+ :vpmullw_ymm_ymm_ymmm256, 970,
1192
+ :pmuludq_mm_mmm64, 971,
1193
+ :pmuludq_xmm_xmmm128, 972,
1194
+ :vpmuludq_xmm_xmm_xmmm128, 973,
1195
+ :vpmuludq_ymm_ymm_ymmm256, 974,
1196
+ :pop_rm16, 975,
1197
+ :pop_rm64, 976,
1198
+ :pop_r16, 977,
1199
+ :pop_r64, 978,
1200
+ :popcnt_r16_rm16, 979,
1201
+ :popcnt_r32_rm32, 980,
1202
+ :popcnt_r64_rm64, 981,
1203
+ :popf, 982,
1204
+ :popfq, 983,
1205
+ :por_mm_mmm64, 984,
1206
+ :por_xmm_xmmm128, 985,
1207
+ :vpor_xmm_xmm_xmmm128, 986,
1208
+ :vpor_ymm_ymm_ymmm256, 987,
1209
+ :prefetcht0_m8, 988,
1210
+ :prefetcht1_m8, 989,
1211
+ :prefetcht2_m8, 990,
1212
+ :prefetchnta_m8, 991,
1213
+ :prefetchw_m8, 992,
1214
+ :prefetchwt1_m8, 993,
1215
+ :psadbw_mm_mmm64, 994,
1216
+ :psadbw_xmm_xmmm128, 995,
1217
+ :vpsadbw_xmm_xmm_xmmm128, 996,
1218
+ :vpsadbw_ymm_ymm_ymmm256, 997,
1219
+ :pshufb_mm_mmm64, 998,
1220
+ :pshufb_xmm_xmmm128, 999,
1221
+ :vpshufb_xmm_xmm_xmmm128, 1000,
1222
+ :vpshufb_ymm_ymm_ymmm256, 1001,
1223
+ :pshufd_xmm_xmmm128_imm8, 1002,
1224
+ :vpshufd_xmm_xmmm128_imm8, 1003,
1225
+ :vpshufd_ymm_ymmm256_imm8, 1004,
1226
+ :pshufhw_xmm_xmmm128_imm8, 1005,
1227
+ :vpshufhw_xmm_xmmm128_imm8, 1006,
1228
+ :vpshufhw_ymm_ymmm256_imm8, 1007,
1229
+ :pshuflw_xmm_xmmm128_imm8, 1008,
1230
+ :vpshuflw_xmm_xmmm128_imm8, 1009,
1231
+ :vpshuflw_ymm_ymmm256_imm8, 1010,
1232
+ :pshufw_mm_mmm64_imm8, 1011,
1233
+ :psignb_mm_mmm64, 1012,
1234
+ :psignb_xmm_xmmm128, 1013,
1235
+ :psignw_mm_mmm64, 1014,
1236
+ :psignw_xmm_xmmm128, 1015,
1237
+ :psignd_mm_mmm64, 1016,
1238
+ :psignd_xmm_xmmm128, 1017,
1239
+ :vpsignb_xmm_xmm_xmmm128, 1018,
1240
+ :vpsignw_xmm_xmm_xmmm128, 1019,
1241
+ :vpsignd_xmm_xmm_xmmm128, 1020,
1242
+ :vpsignb_ymm_ymm_ymmm256, 1021,
1243
+ :vpsignw_ymm_ymm_ymmm256, 1022,
1244
+ :vpsignd_ymm_ymm_ymmm256, 1023,
1245
+ :pslldq_xmm_imm8, 1024,
1246
+ :vpslldq_xmm_xmm_imm8, 1025,
1247
+ :vpslldq_ymm_ymm_imm8, 1026,
1248
+ :psllw_mm_mmm64, 1027,
1249
+ :psllw_xmm_xmmm128, 1028,
1250
+ :psllw_mm_imm8, 1029,
1251
+ :psllw_xmm_imm8, 1030,
1252
+ :pslld_mm_mmm64, 1031,
1253
+ :pslld_xmm_xmmm128, 1032,
1254
+ :pslld_mm_imm8, 1033,
1255
+ :pslld_xmm_imm8, 1034,
1256
+ :psllq_mm_mmm64, 1035,
1257
+ :psllq_xmm_xmmm128, 1036,
1258
+ :psllq_mm_imm8, 1037,
1259
+ :psllq_xmm_imm8, 1038,
1260
+ :vpsllw_xmm_xmm_xmmm128, 1039,
1261
+ :vpsllw_xmm_xmm_imm8, 1040,
1262
+ :vpslld_xmm_xmm_xmmm128, 1041,
1263
+ :vpslld_xmm_xmm_imm8, 1042,
1264
+ :vpsllq_xmm_xmm_xmmm128, 1043,
1265
+ :vpsllq_xmm_xmm_imm8, 1044,
1266
+ :vpsllw_ymm_ymm_xmmm128, 1045,
1267
+ :vpsllw_ymm_ymm_imm8, 1046,
1268
+ :vpslld_ymm_ymm_xmmm128, 1047,
1269
+ :vpslld_ymm_ymm_imm8, 1048,
1270
+ :vpsllq_ymm_ymm_xmmm128, 1049,
1271
+ :vpsllq_ymm_ymm_imm8, 1050,
1272
+ :psraw_mm_mmm64, 1051,
1273
+ :psraw_xmm_xmmm128, 1052,
1274
+ :psraw_mm_imm8, 1053,
1275
+ :psraw_xmm_imm8, 1054,
1276
+ :psrad_mm_mmm64, 1055,
1277
+ :psrad_xmm_xmmm128, 1056,
1278
+ :psrad_mm_imm8, 1057,
1279
+ :psrad_xmm_imm8, 1058,
1280
+ :vpsraw_xmm_xmm_xmmm128, 1059,
1281
+ :vpsraw_xmm_xmm_imm8, 1060,
1282
+ :vpsrad_xmm_xmm_xmmm128, 1061,
1283
+ :vpsrad_xmm_xmm_imm8, 1062,
1284
+ :vpsraw_ymm_ymm_xmmm128, 1063,
1285
+ :vpsraw_ymm_ymm_imm8, 1064,
1286
+ :vpsrad_ymm_ymm_xmmm128, 1065,
1287
+ :vpsrad_ymm_ymm_imm8, 1066,
1288
+ :psrldq_xmm_imm8, 1067,
1289
+ :vpsrldq_xmm_xmm_imm8, 1068,
1290
+ :vpsrldq_ymm_ymm_imm8, 1069,
1291
+ :psrlw_mm_mmm64, 1070,
1292
+ :psrlw_xmm_xmmm128, 1071,
1293
+ :psrlw_mm_imm8, 1072,
1294
+ :psrlw_xmm_imm8, 1073,
1295
+ :psrld_mm_mmm64, 1074,
1296
+ :psrld_xmm_xmmm128, 1075,
1297
+ :psrld_mm_imm8, 1076,
1298
+ :psrld_xmm_imm8, 1077,
1299
+ :psrlq_mm_mmm64, 1078,
1300
+ :psrlq_xmm_xmmm128, 1079,
1301
+ :psrlq_mm_imm8, 1080,
1302
+ :psrlq_xmm_imm8, 1081,
1303
+ :vpsrlw_xmm_xmm_xmmm128, 1082,
1304
+ :vpsrlw_xmm_xmm_imm8, 1083,
1305
+ :vpsrld_xmm_xmm_xmmm128, 1084,
1306
+ :vpsrld_xmm_xmm_imm8, 1085,
1307
+ :vpsrlq_xmm_xmm_xmmm128, 1086,
1308
+ :vpsrlq_xmm_xmm_imm8, 1087,
1309
+ :vpsrlw_ymm_ymm_xmmm128, 1088,
1310
+ :vpsrlw_ymm_ymm_imm8, 1089,
1311
+ :vpsrld_ymm_ymm_xmmm128, 1090,
1312
+ :vpsrld_ymm_ymm_imm8, 1091,
1313
+ :vpsrlq_ymm_ymm_xmmm128, 1092,
1314
+ :vpsrlq_ymm_ymm_imm8, 1093,
1315
+ :psubb_mm_mmm64, 1094,
1316
+ :psubb_xmm_xmmm128, 1095,
1317
+ :psubw_mm_mmm64, 1096,
1318
+ :psubw_xmm_xmmm128, 1097,
1319
+ :psubd_mm_mmm64, 1098,
1320
+ :psubd_xmm_xmmm128, 1099,
1321
+ :vpsubb_xmm_xmm_xmmm128, 1100,
1322
+ :vpsubw_xmm_xmm_xmmm128, 1101,
1323
+ :vpsubd_xmm_xmm_xmmm128, 1102,
1324
+ :vpsubb_ymm_ymm_ymmm256, 1103,
1325
+ :vpsubw_ymm_ymm_ymmm256, 1104,
1326
+ :vpsubd_ymm_ymm_ymmm256, 1105,
1327
+ :psubq_mm_mmm64, 1106,
1328
+ :psubq_xmm_xmmm128, 1107,
1329
+ :vpsubq_xmm_xmm_xmmm128, 1108,
1330
+ :vpsubq_ymm_ymm_ymmm256, 1109,
1331
+ :psubsb_mm_mmm64, 1110,
1332
+ :psubsb_xmm_xmmm128, 1111,
1333
+ :psubsw_mm_mmm64, 1112,
1334
+ :psubsw_xmm_xmmm128, 1113,
1335
+ :vpsubsb_xmm_xmm_xmmm128, 1114,
1336
+ :vpsubsw_xmm_xmm_xmmm128, 1115,
1337
+ :vpsubsb_ymm_ymm_ymmm256, 1116,
1338
+ :vpsubsw_ymm_ymm_ymmm256, 1117,
1339
+ :psubusb_mm_mmm64, 1118,
1340
+ :psubusb_xmm_xmmm128, 1119,
1341
+ :psubusw_mm_mmm64, 1120,
1342
+ :psubusw_xmm_xmmm128, 1121,
1343
+ :vpsubusb_xmm_xmm_xmmm128, 1122,
1344
+ :vpsubusw_xmm_xmm_xmmm128, 1123,
1345
+ :vpsubusb_ymm_ymm_ymmm256, 1124,
1346
+ :vpsubusw_ymm_ymm_ymmm256, 1125,
1347
+ :ptest_xmm_xmmm128, 1126,
1348
+ :vptest_xmm_xmmm128, 1127,
1349
+ :vptest_ymm_ymmm256, 1128,
1350
+ :punpckhbw_mm_mmm64, 1129,
1351
+ :punpckhbw_xmm_xmmm128, 1130,
1352
+ :punpckhwd_mm_mmm64, 1131,
1353
+ :punpckhwd_xmm_xmmm128, 1132,
1354
+ :punpckhdq_mm_mmm64, 1133,
1355
+ :punpckhdq_xmm_xmmm128, 1134,
1356
+ :punpckhqdq_xmm_xmmm128, 1135,
1357
+ :vpunpckhbw_xmm_xmm_xmmm128, 1136,
1358
+ :vpunpckhwd_xmm_xmm_xmmm128, 1137,
1359
+ :vpunpckhdq_xmm_xmm_xmmm128, 1138,
1360
+ :vpunpckhqdq_xmm_xmm_xmmm128, 1139,
1361
+ :vpunpckhbw_ymm_ymm_ymmm256, 1140,
1362
+ :vpunpckhwd_ymm_ymm_ymmm256, 1141,
1363
+ :vpunpckhdq_ymm_ymm_ymmm256, 1142,
1364
+ :vpunpckhqdq_ymm_ymm_ymmm256, 1143,
1365
+ :punpcklbw_mm_mmm32, 1144,
1366
+ :punpcklbw_xmm_xmmm128, 1145,
1367
+ :punpcklwd_mm_mmm32, 1146,
1368
+ :punpcklwd_xmm_xmmm128, 1147,
1369
+ :punpckldq_mm_mmm32, 1148,
1370
+ :punpckldq_xmm_xmmm128, 1149,
1371
+ :punpcklqdq_xmm_xmmm128, 1150,
1372
+ :vpunpcklbw_xmm_xmm_xmmm128, 1151,
1373
+ :vpunpcklwd_xmm_xmm_xmmm128, 1152,
1374
+ :vpunpckldq_xmm_xmm_xmmm128, 1153,
1375
+ :vpunpcklqdq_xmm_xmm_xmmm128, 1154,
1376
+ :vpunpcklbw_ymm_ymm_ymmm256, 1155,
1377
+ :vpunpcklwd_ymm_ymm_ymmm256, 1156,
1378
+ :vpunpckldq_ymm_ymm_ymmm256, 1157,
1379
+ :vpunpcklqdq_ymm_ymm_ymmm256, 1158,
1380
+ :push_rm16, 1159,
1381
+ :push_rm64, 1160,
1382
+ :push_r16, 1161,
1383
+ :push_r64, 1162,
1384
+ :push_imm8, 1163,
1385
+ :push_imm16, 1164,
1386
+ :push_imm32, 1165,
1387
+ :pushf, 1166,
1388
+ :pushfq, 1167,
1389
+ :pxor_mm_mmm64, 1168,
1390
+ :pxor_xmm_xmmm128, 1169,
1391
+ :vpxor_xmm_xmm_xmmm128, 1170,
1392
+ :vpxor_ymm_ymm_ymmm256, 1171,
1393
+ :rcl_rm8_1, 1172,
1394
+ :rcl_rm8_cl, 1173,
1395
+ :rcl_rm8_imm8, 1174,
1396
+ :rcl_rm16_1, 1175,
1397
+ :rcl_rm16_cl, 1176,
1398
+ :rcl_rm16_imm8, 1177,
1399
+ :rcl_rm32_1, 1178,
1400
+ :rcl_rm64_1, 1179,
1401
+ :rcl_rm32_cl, 1180,
1402
+ :rcl_rm64_cl, 1181,
1403
+ :rcl_rm32_imm8, 1182,
1404
+ :rcl_rm64_imm8, 1183,
1405
+ :rcr_rm8_1, 1184,
1406
+ :rcr_rm8_cl, 1185,
1407
+ :rcr_rm8_imm8, 1186,
1408
+ :rcr_rm16_1, 1187,
1409
+ :rcr_rm16_cl, 1188,
1410
+ :rcr_rm16_imm8, 1189,
1411
+ :rcr_rm32_1, 1190,
1412
+ :rcr_rm64_1, 1191,
1413
+ :rcr_rm32_cl, 1192,
1414
+ :rcr_rm64_cl, 1193,
1415
+ :rcr_rm32_imm8, 1194,
1416
+ :rcr_rm64_imm8, 1195,
1417
+ :rol_rm8_1, 1196,
1418
+ :rol_rm8_cl, 1197,
1419
+ :rol_rm8_imm8, 1198,
1420
+ :rol_rm16_1, 1199,
1421
+ :rol_rm16_cl, 1200,
1422
+ :rol_rm16_imm8, 1201,
1423
+ :rol_rm32_1, 1202,
1424
+ :rol_rm64_1, 1203,
1425
+ :rol_rm32_cl, 1204,
1426
+ :rol_rm64_cl, 1205,
1427
+ :rol_rm32_imm8, 1206,
1428
+ :rol_rm64_imm8, 1207,
1429
+ :ror_rm8_1, 1208,
1430
+ :ror_rm8_cl, 1209,
1431
+ :ror_rm8_imm8, 1210,
1432
+ :ror_rm16_1, 1211,
1433
+ :ror_rm16_cl, 1212,
1434
+ :ror_rm16_imm8, 1213,
1435
+ :ror_rm32_1, 1214,
1436
+ :ror_rm64_1, 1215,
1437
+ :ror_rm32_cl, 1216,
1438
+ :ror_rm64_cl, 1217,
1439
+ :ror_rm32_imm8, 1218,
1440
+ :ror_rm64_imm8, 1219,
1441
+ :rcpps_xmm_xmmm128, 1220,
1442
+ :vrcpps_xmm_xmmm128, 1221,
1443
+ :vrcpps_ymm_ymmm256, 1222,
1444
+ :rcpss_xmm_xmmm32, 1223,
1445
+ :vrcpss_xmm_xmm_xmmm32, 1224,
1446
+ :rdrand_r16, 1225,
1447
+ :rdrand_r32, 1226,
1448
+ :rdrand_r64, 1227,
1449
+ :rdseed_r16, 1228,
1450
+ :rdseed_r32, 1229,
1451
+ :rdseed_r64, 1230,
1452
+ :rep_movsb, 1231,
1453
+ :rep_movsw, 1232,
1454
+ :rep_movsd, 1233,
1455
+ :rep_movsq, 1234,
1456
+ :rep_lodsb, 1235,
1457
+ :rep_lodsw, 1236,
1458
+ :rep_lodsd, 1237,
1459
+ :rep_lodsq, 1238,
1460
+ :rep_stosb, 1239,
1461
+ :rep_stosw, 1240,
1462
+ :rep_stosd, 1241,
1463
+ :rep_stosq, 1242,
1464
+ :repe_cmpsb, 1243,
1465
+ :repe_cmpsw, 1244,
1466
+ :repe_cmpsd, 1245,
1467
+ :repe_cmpsq, 1246,
1468
+ :repe_scasb, 1247,
1469
+ :repe_scasw, 1248,
1470
+ :repe_scasd, 1249,
1471
+ :repe_scasq, 1250,
1472
+ :repne_cmpsb, 1251,
1473
+ :repne_cmpsw, 1252,
1474
+ :repne_cmpsd, 1253,
1475
+ :repne_cmpsq, 1254,
1476
+ :repne_scasb, 1255,
1477
+ :repne_scasw, 1256,
1478
+ :repne_scasd, 1257,
1479
+ :repne_scasq, 1258,
1480
+ :ret, 1259,
1481
+ :ret_imm16, 1260,
1482
+ :rorx_r32_rm32_imm8, 1261,
1483
+ :rorx_r64_rm64_imm8, 1262,
1484
+ :roundpd_xmm_xmmm128_imm8, 1263,
1485
+ :vroundpd_xmm_xmmm128_imm8, 1264,
1486
+ :vroundpd_ymm_ymmm256_imm8, 1265,
1487
+ :roundps_xmm_xmmm128_imm8, 1266,
1488
+ :vroundps_xmm_xmmm128_imm8, 1267,
1489
+ :vroundps_ymm_ymmm256_imm8, 1268,
1490
+ :roundsd_xmm_xmmm64_imm8, 1269,
1491
+ :vroundsd_xmm_xmm_xmmm64_imm8, 1270,
1492
+ :roundss_xmm_xmmm32_imm8, 1271,
1493
+ :vroundss_xmm_xmm_xmmm32_imm8, 1272,
1494
+ :rsqrtps_xmm_xmmm128, 1273,
1495
+ :vrsqrtps_xmm_xmmm128, 1274,
1496
+ :vrsqrtps_ymm_ymmm256, 1275,
1497
+ :rsqrtss_xmm_xmmm32, 1276,
1498
+ :vrsqrtss_xmm_xmm_xmmm32, 1277,
1499
+ :sahf, 1278,
1500
+ :sal_rm8_1, 1279,
1501
+ :sal_rm8_cl, 1280,
1502
+ :sal_rm8_imm8, 1281,
1503
+ :sal0_rm16_1, 1282,
1504
+ :sal0_rm16_cl, 1283,
1505
+ :sal_rm16_imm8, 1284,
1506
+ :sal0_rm32_1, 1285,
1507
+ :sal0_rm64_1, 1286,
1508
+ :sal0_rm32_cl, 1287,
1509
+ :sal0_rm64_cl, 1288,
1510
+ :sal_rm32_imm8, 1289,
1511
+ :sal_rm64_imm8, 1290,
1512
+ :sar_rm8_1, 1291,
1513
+ :sar_rm8_cl, 1292,
1514
+ :sar_rm8_imm8, 1293,
1515
+ :sar_rm16_1, 1294,
1516
+ :sar_rm16_cl, 1295,
1517
+ :sar_rm16_imm8, 1296,
1518
+ :sar_rm32_1, 1297,
1519
+ :sar_rm64_1, 1298,
1520
+ :sar_rm32_cl, 1299,
1521
+ :sar_rm64_cl, 1300,
1522
+ :sar_rm32_imm8, 1301,
1523
+ :sar_rm64_imm8, 1302,
1524
+ :sal1_rm16_1, 1303,
1525
+ :sal1_rm16_cl, 1304,
1526
+ :sal1_rm32_1, 1305,
1527
+ :sal1_rm64_1, 1306,
1528
+ :sal1_rm32_cl, 1307,
1529
+ :sal1_rm64_cl, 1308,
1530
+ :shr_rm8_1, 1309,
1531
+ :shr_rm8_cl, 1310,
1532
+ :shr_rm8_imm8, 1311,
1533
+ :shr_rm16_1, 1312,
1534
+ :shr_rm16_cl, 1313,
1535
+ :shr_rm16_imm8, 1314,
1536
+ :shr_rm32_1, 1315,
1537
+ :shr_rm64_1, 1316,
1538
+ :shr_rm32_cl, 1317,
1539
+ :shr_rm64_cl, 1318,
1540
+ :shr_rm32_imm8, 1319,
1541
+ :shr_rm64_imm8, 1320,
1542
+ :sarx_r32_rm32_r32, 1321,
1543
+ :shlx_r32_rm32_r32, 1322,
1544
+ :shrx_r32_rm32_r32, 1323,
1545
+ :sarx_r64_rm64_r64, 1324,
1546
+ :shlx_r64_rm64_r64, 1325,
1547
+ :shrx_r64_rm64_r64, 1326,
1548
+ :sbb_al_imm8, 1327,
1549
+ :sbb_ax_imm16, 1328,
1550
+ :sbb_eax_imm32, 1329,
1551
+ :sbb_rax_imm32, 1330,
1552
+ :sbb_rm8_imm8, 1331,
1553
+ :sbb_rm16_imm16, 1332,
1554
+ :sbb_rm32_imm32, 1333,
1555
+ :sbb_rm64_imm32, 1334,
1556
+ :sbb_rm16_imm8, 1335,
1557
+ :sbb_rm32_imm8, 1336,
1558
+ :sbb_rm64_imm8, 1337,
1559
+ :sbb_rm8_r8, 1338,
1560
+ :sbb_rm16_r16, 1339,
1561
+ :sbb_rm32_r32, 1340,
1562
+ :sbb_rm64_r64, 1341,
1563
+ :sbb_r8_rm8, 1342,
1564
+ :sbb_r16_rm16, 1343,
1565
+ :sbb_r32_rm32, 1344,
1566
+ :sbb_r64_rm64, 1345,
1567
+ :scasb, 1346,
1568
+ :scasw, 1347,
1569
+ :scasd, 1348,
1570
+ :scasq, 1349,
1571
+ :seta_rm8, 1350,
1572
+ :setae_rm8, 1351,
1573
+ :setb_rm8, 1352,
1574
+ :setbe_rm8, 1353,
1575
+ :sete_rm8, 1354,
1576
+ :setg_rm8, 1355,
1577
+ :setge_rm8, 1356,
1578
+ :setnge_rm8, 1357,
1579
+ :setle_rm8, 1358,
1580
+ :setne_rm8, 1359,
1581
+ :setno_rm8, 1360,
1582
+ :setpo_rm8, 1361,
1583
+ :setns_rm8, 1362,
1584
+ :seto_rm8, 1363,
1585
+ :setp_rm8, 1364,
1586
+ :sets_rm8, 1365,
1587
+ :sfence, 1366,
1588
+ :sha1rnds4_xmm_xmmm128_imm8, 1367,
1589
+ :sha1nexte_xmm_xmmm128, 1368,
1590
+ :sha1msg1_xmm_xmmm128, 1369,
1591
+ :sha1msg2_xmm_xmmm128, 1370,
1592
+ :sha256rnds2_xmm_xmmm128_xmm0, 1371,
1593
+ :sha256msg1_xmm_xmmm128, 1372,
1594
+ :sha256msg2_xmm_xmmm128, 1373,
1595
+ :shld_rm16_r16_imm8, 1374,
1596
+ :shld_rm16_r16_cl, 1375,
1597
+ :shld_rm32_r32_imm8, 1376,
1598
+ :shld_rm64_r64_imm8, 1377,
1599
+ :shld_rm32_r32_cl, 1378,
1600
+ :shld_rm64_r64_cl, 1379,
1601
+ :shrd_rm16_r16_imm8, 1380,
1602
+ :shrd_rm16_r16_cl, 1381,
1603
+ :shrd_rm32_r32_imm8, 1382,
1604
+ :shrd_rm64_r64_imm8, 1383,
1605
+ :shrd_rm32_r32_cl, 1384,
1606
+ :shrd_rm64_r64_cl, 1385,
1607
+ :shufpd_xmm_xmmm128_imm8, 1386,
1608
+ :vshufpd_xmm_xmm_xmmm128_imm8, 1387,
1609
+ :vshufpd_ymm_ymm_ymmm256_imm8, 1388,
1610
+ :shufps_xmm_xmmm128_imm8, 1389,
1611
+ :vshufps_xmm_xmm_xmmm128_imm8, 1390,
1612
+ :vshufps_ymm_ymm_ymmm256_imm8, 1391,
1613
+ :sqrtpd_xmm_xmmm128, 1392,
1614
+ :vsqrtpd_xmm_xmmm128, 1393,
1615
+ :vsqrtpd_ymm_ymmm256, 1394,
1616
+ :sqrtps_xmm_xmmm128, 1395,
1617
+ :vsqrtps_xmm_xmmm128, 1396,
1618
+ :vsqrtps_ymm_ymmm256, 1397,
1619
+ :sqrtsd_xmm_xmmm64, 1398,
1620
+ :vsqrtsd_xmm_xmm_xmmm64, 1399,
1621
+ :sqrtss_xmm_xmmm32, 1400,
1622
+ :vsqrtss_xmm_xmm_xmmm32, 1401,
1623
+ :stc, 1402,
1624
+ :std, 1403,
1625
+ :stmxcsr_m32, 1404,
1626
+ :vstmxcsr_m32, 1405,
1627
+ :stosb, 1406,
1628
+ :stosw, 1407,
1629
+ :stosd, 1408,
1630
+ :stosq, 1409,
1631
+ :sub_al_imm8, 1410,
1632
+ :sub_ax_imm16, 1411,
1633
+ :sub_eax_imm32, 1412,
1634
+ :sub_rax_imm32, 1413,
1635
+ :sub_rm8_imm8, 1414,
1636
+ :sub_rm16_imm16, 1415,
1637
+ :sub_rm32_imm32, 1416,
1638
+ :sub_rm64_imm32, 1417,
1639
+ :sub_rm16_imm8, 1418,
1640
+ :sub_rm32_imm8, 1419,
1641
+ :sub_rm64_imm8, 1420,
1642
+ :sub_rm8_r8, 1421,
1643
+ :sub_rm16_r16, 1422,
1644
+ :sub_rm32_r32, 1423,
1645
+ :sub_rm64_r64, 1424,
1646
+ :sub_r8_rm8, 1425,
1647
+ :sub_r16_rm16, 1426,
1648
+ :sub_r32_rm32, 1427,
1649
+ :sub_r64_rm64, 1428,
1650
+ :subpd_xmm_xmmm128, 1429,
1651
+ :vsubpd_xmm_xmm_xmmm128, 1430,
1652
+ :vsubpd_ymm_ymm_ymmm256, 1431,
1653
+ :subps_xmm_xmmm128, 1432,
1654
+ :vsubps_xmm_xmm_xmmm128, 1433,
1655
+ :vsubps_ymm_ymm_ymmm256, 1434,
1656
+ :subsd_xmm_xmmm64, 1435,
1657
+ :vsubsd_xmm_xmm_xmmm64, 1436,
1658
+ :subss_xmm_xmmm32, 1437,
1659
+ :vsubss_xmm_xmm_xmmm32, 1438,
1660
+ :test_al_imm8, 1439,
1661
+ :test_ax_imm16, 1440,
1662
+ :test_eax_imm32, 1441,
1663
+ :test_rax_imm32, 1442,
1664
+ :test_rm8_imm8, 1443,
1665
+ :test_rm16_imm16, 1444,
1666
+ :test_rm32_imm32, 1445,
1667
+ :test_rm64_imm32, 1446,
1668
+ :test_rm8_r8, 1447,
1669
+ :test_rm16_r16, 1448,
1670
+ :test_rm32_r32, 1449,
1671
+ :test_rm64_r64, 1450,
1672
+ :tzcnt_r16_rm16, 1451,
1673
+ :tzcnt_r32_rm32, 1452,
1674
+ :tzcnt_r64_rm64, 1453,
1675
+ :ucomisd_xmm_xmmm64, 1454,
1676
+ :vucomisd_xmm_xmmm64, 1455,
1677
+ :ucomiss_xmm_xmmm32, 1456,
1678
+ :vucomiss_xmm_xmmm32, 1457,
1679
+ :ud2, 1458,
1680
+ :unpckhpd_xmm_xmmm128, 1459,
1681
+ :vunpckhpd_xmm_xmm_xmmm128, 1460,
1682
+ :vunpckhpd_ymm_ymm_ymmm256, 1461,
1683
+ :unpckhps_xmm_xmmm128, 1462,
1684
+ :vunpckhps_xmm_xmm_xmmm128, 1463,
1685
+ :vunpckhps_ymm_ymm_ymmm256, 1464,
1686
+ :unpcklpd_xmm_xmmm128, 1465,
1687
+ :vunpcklpd_xmm_xmm_xmmm128, 1466,
1688
+ :vunpcklpd_ymm_ymm_ymmm256, 1467,
1689
+ :unpcklps_xmm_xmmm128, 1468,
1690
+ :vunpcklps_xmm_xmm_xmmm128, 1469,
1691
+ :vunpcklps_ymm_ymm_ymmm256, 1470,
1692
+ :vbroadcastss_xmm_m32, 1471,
1693
+ :vbroadcastss_ymm_m32, 1472,
1694
+ :vbroadcastsd_ymm_m64, 1473,
1695
+ :vbroadcastf128_ymm_m128, 1474,
1696
+ :vcvtph2ps_xmm_xmmm64, 1475,
1697
+ :vcvtph2ps_ymm_xmmm128, 1476,
1698
+ :vcvtps2ph_xmmm64_xmm_imm8, 1477,
1699
+ :vcvtps2ph_xmmm128_ymm_imm8, 1478,
1700
+ :vextractf128_xmmm128_ymm_imm8, 1479,
1701
+ :vextracti128_xmmm128_ymm_imm8, 1480,
1702
+ :vfmadd132pd_xmm_xmm_xmmm128, 1481,
1703
+ :vfmadd213pd_xmm_xmm_xmmm128, 1482,
1704
+ :vfmadd231pd_xmm_xmm_xmmm128, 1483,
1705
+ :vfmadd132pd_ymm_ymm_ymmm256, 1484,
1706
+ :vfmadd213pd_ymm_ymm_ymmm256, 1485,
1707
+ :vfmadd231pd_ymm_ymm_ymmm256, 1486,
1708
+ :vfmadd132ps_xmm_xmm_xmmm128, 1487,
1709
+ :vfmadd213ps_xmm_xmm_xmmm128, 1488,
1710
+ :vfmadd231ps_xmm_xmm_xmmm128, 1489,
1711
+ :vfmadd132ps_ymm_ymm_ymmm256, 1490,
1712
+ :vfmadd213ps_ymm_ymm_ymmm256, 1491,
1713
+ :vfmadd231ps_ymm_ymm_ymmm256, 1492,
1714
+ :vfmadd132sd_xmm_xmm_xmmm64, 1493,
1715
+ :vfmadd213sd_xmm_xmm_xmmm64, 1494,
1716
+ :vfmadd231sd_xmm_xmm_xmmm64, 1495,
1717
+ :vfmadd132ss_xmm_xmm_xmmm32, 1496,
1718
+ :vfmadd213ss_xmm_xmm_xmmm32, 1497,
1719
+ :vfmadd231ss_xmm_xmm_xmmm32, 1498,
1720
+ :vfmaddsub132pd_xmm_xmm_xmmm128, 1499,
1721
+ :vfmaddsub213pd_xmm_xmm_xmmm128, 1500,
1722
+ :vfmaddsub231pd_xmm_xmm_xmmm128, 1501,
1723
+ :vfmaddsub132pd_ymm_ymm_ymmm256, 1502,
1724
+ :vfmaddsub213pd_ymm_ymm_ymmm256, 1503,
1725
+ :vfmaddsub231pd_ymm_ymm_ymmm256, 1504,
1726
+ :vfmaddsub132ps_xmm_xmm_xmmm128, 1505,
1727
+ :vfmaddsub213ps_xmm_xmm_xmmm128, 1506,
1728
+ :vfmaddsub231ps_xmm_xmm_xmmm128, 1507,
1729
+ :vfmaddsub132ps_ymm_ymm_ymmm256, 1508,
1730
+ :vfmaddsub213ps_ymm_ymm_ymmm256, 1509,
1731
+ :vfmaddsub231ps_ymm_ymm_ymmm256, 1510,
1732
+ :vfmsubadd132pd_xmm_xmm_xmmm128, 1511,
1733
+ :vfmsubadd213pd_xmm_xmm_xmmm128, 1512,
1734
+ :vfmsubadd231pd_xmm_xmm_xmmm128, 1513,
1735
+ :vfmsubadd132pd_ymm_ymm_ymmm256, 1514,
1736
+ :vfmsubadd213pd_ymm_ymm_ymmm256, 1515,
1737
+ :vfmsubadd231pd_ymm_ymm_ymmm256, 1516,
1738
+ :vfmsubadd132ps_xmm_xmm_xmmm128, 1517,
1739
+ :vfmsubadd213ps_xmm_xmm_xmmm128, 1518,
1740
+ :vfmsubadd231ps_xmm_xmm_xmmm128, 1519,
1741
+ :vfmsubadd132ps_ymm_ymm_ymmm256, 1520,
1742
+ :vfmsubadd213ps_ymm_ymm_ymmm256, 1521,
1743
+ :vfmsubadd231ps_ymm_ymm_ymmm256, 1522,
1744
+ :vfmsub132pd_xmm_xmm_xmmm128, 1523,
1745
+ :vfmsub213pd_xmm_xmm_xmmm128, 1524,
1746
+ :vfmsub231pd_xmm_xmm_xmmm128, 1525,
1747
+ :vfmsub132pd_ymm_ymm_ymmm256, 1526,
1748
+ :vfmsub213pd_ymm_ymm_ymmm256, 1527,
1749
+ :vfmsub231pd_ymm_ymm_ymmm256, 1528,
1750
+ :vfmsub132ps_xmm_xmm_xmmm128, 1529,
1751
+ :vfmsub213ps_xmm_xmm_xmmm128, 1530,
1752
+ :vfmsub231ps_xmm_xmm_xmmm128, 1531,
1753
+ :vfmsub132ps_ymm_ymm_ymmm256, 1532,
1754
+ :vfmsub213ps_ymm_ymm_ymmm256, 1533,
1755
+ :vfmsub231ps_ymm_ymm_ymmm256, 1534,
1756
+ :vfmsub132sd_xmm_xmm_xmmm64, 1535,
1757
+ :vfmsub213sd_xmm_xmm_xmmm64, 1536,
1758
+ :vfmsub231sd_xmm_xmm_xmmm64, 1537,
1759
+ :vfmsub132ss_xmm_xmm_xmmm32, 1538,
1760
+ :vfmsub213ss_xmm_xmm_xmmm32, 1539,
1761
+ :vfmsub231ss_xmm_xmm_xmmm32, 1540,
1762
+ :vfnmadd132pd_xmm_xmm_xmmm128, 1541,
1763
+ :vfnmadd213pd_xmm_xmm_xmmm128, 1542,
1764
+ :vfnmadd231pd_xmm_xmm_xmmm128, 1543,
1765
+ :vfnmadd132pd_ymm_ymm_ymmm256, 1544,
1766
+ :vfnmadd213pd_ymm_ymm_ymmm256, 1545,
1767
+ :vfnmadd231pd_ymm_ymm_ymmm256, 1546,
1768
+ :vfnmadd132ps_xmm_xmm_xmmm128, 1547,
1769
+ :vfnmadd213ps_xmm_xmm_xmmm128, 1548,
1770
+ :vfnmadd231ps_xmm_xmm_xmmm128, 1549,
1771
+ :vfnmadd132ps_ymm_ymm_ymmm256, 1550,
1772
+ :vfnmadd213ps_ymm_ymm_ymmm256, 1551,
1773
+ :vfnmadd231ps_ymm_ymm_ymmm256, 1552,
1774
+ :vfnmadd132sd_xmm_xmm_xmmm64, 1553,
1775
+ :vfnmadd213sd_xmm_xmm_xmmm64, 1554,
1776
+ :vfnmadd231sd_xmm_xmm_xmmm64, 1555,
1777
+ :vfnmadd132ss_xmm_xmm_xmmm32, 1556,
1778
+ :vfnmadd213ss_xmm_xmm_xmmm32, 1557,
1779
+ :vfnmadd231ss_xmm_xmm_xmmm32, 1558,
1780
+ :vfnmsub132pd_xmm_xmm_xmmm128, 1559,
1781
+ :vfnmsub213pd_xmm_xmm_xmmm128, 1560,
1782
+ :vfnmsub231pd_xmm_xmm_xmmm128, 1561,
1783
+ :vfnmsub132pd_ymm_ymm_ymmm256, 1562,
1784
+ :vfnmsub213pd_ymm_ymm_ymmm256, 1563,
1785
+ :vfnmsub231pd_ymm_ymm_ymmm256, 1564,
1786
+ :vfnmsub132ps_xmm_xmm_xmmm128, 1565,
1787
+ :vfnmsub213ps_xmm_xmm_xmmm128, 1566,
1788
+ :vfnmsub231ps_xmm_xmm_xmmm128, 1567,
1789
+ :vfnmsub132ps_ymm_ymm_ymmm256, 1568,
1790
+ :vfnmsub213ps_ymm_ymm_ymmm256, 1569,
1791
+ :vfnmsub231ps_ymm_ymm_ymmm256, 1570,
1792
+ :vfnmsub132sd_xmm_xmm_xmmm64, 1571,
1793
+ :vfnmsub213sd_xmm_xmm_xmmm64, 1572,
1794
+ :vfnmsub231sd_xmm_xmm_xmmm64, 1573,
1795
+ :vfnmsub132ss_xmm_xmm_xmmm32, 1574,
1796
+ :vfnmsub213ss_xmm_xmm_xmmm32, 1575,
1797
+ :vfnmsub231ss_xmm_xmm_xmmm32, 1576,
1798
+ :vgatherdpd_xmm_vm32x64_xmm, 1577,
1799
+ :vgatherqpd_xmm_vm64x64_xmm, 1578,
1800
+ :vgatherdpd_ymm_vm32x64_ymm, 1579,
1801
+ :vgatherqpd_ymm_vm64y64_ymm, 1580,
1802
+ :vgatherdps_xmm_vm32x32_xmm, 1581,
1803
+ :vgatherqps_xmm_vm64x32_xmm, 1582,
1804
+ :vgatherdps_ymm_vm32y32_ymm, 1583,
1805
+ :vgatherqps_xmm_vm64y32_xmm, 1584,
1806
+ :vpgatherdd_xmm_vm32x32_xmm, 1585,
1807
+ :vpgatherqd_xmm_vm64x32_xmm, 1586,
1808
+ :vpgatherdd_ymm_vm32y32_ymm, 1587,
1809
+ :vpgatherqd_xmm_vm64y32_xmm, 1588,
1810
+ :vpgatherdq_xmm_vm32x64_xmm, 1589,
1811
+ :vpgatherqq_xmm_vm64x64_xmm, 1590,
1812
+ :vpgatherdq_ymm_vm32x64_ymm, 1591,
1813
+ :vpgatherqq_ymm_vm64y64_ymm, 1592,
1814
+ :vinsertf128_ymm_ymm_xmmm128_imm8, 1593,
1815
+ :vinserti128_ymm_ymm_xmmm128_imm8, 1594,
1816
+ :vmaskmovps_xmm_xmm_m128, 1595,
1817
+ :vmaskmovps_ymm_ymm_m256, 1596,
1818
+ :vmaskmovpd_xmm_xmm_m128, 1597,
1819
+ :vmaskmovpd_ymm_ymm_m256, 1598,
1820
+ :vmaskmovps_m128_xmm_xmm, 1599,
1821
+ :vmaskmovps_m256_ymm_ymm, 1600,
1822
+ :vmaskmovpd_m128_xmm_xmm, 1601,
1823
+ :vmaskmovpd_m256_ymm_ymm, 1602,
1824
+ :vpblendd_xmm_xmm_xmmm128_imm8, 1603,
1825
+ :vpblendd_ymm_ymm_ymmm256_imm8, 1604,
1826
+ :vpbroadcastq_xmm_xmmm64, 1605,
1827
+ :vpbroadcastq_ymm_xmmm64, 1606,
1828
+ :vbroadcasti128_ymm_m128, 1607,
1829
+ :vperm2f128_ymm_ymm_ymmm256_imm8, 1608,
1830
+ :vperm2i128_ymm_ymm_ymmm256_imm8, 1609,
1831
+ :vpermd_ymm_ymm_ymmm256, 1610,
1832
+ :vpermilpd_xmm_xmm_xmmm128, 1611,
1833
+ :vpermilpd_ymm_ymm_ymmm256, 1612,
1834
+ :vpermilpd_xmm_xmmm128_imm8, 1613,
1835
+ :vpermilpd_ymm_ymmm256_imm8, 1614,
1836
+ :vpermilps_xmm_xmm_xmmm128, 1615,
1837
+ :vpermilps_xmm_xmmm128_imm8, 1616,
1838
+ :vpermilps_ymm_ymm_ymmm256, 1617,
1839
+ :vpermilps_ymm_ymmm256_imm8, 1618,
1840
+ :vpermpd_ymm_ymmm256_imm8, 1619,
1841
+ :vpermps_ymm_ymm_ymmm256, 1620,
1842
+ :vpermq_ymm_ymmm256_imm8, 1621,
1843
+ :vpmaskmovd_xmm_xmm_m128, 1622,
1844
+ :vpmaskmovd_ymm_ymm_m256, 1623,
1845
+ :vpmaskmovq_xmm_xmm_m128, 1624,
1846
+ :vpmaskmovq_ymm_ymm_m256, 1625,
1847
+ :vpmaskmovd_m128_xmm_xmm, 1626,
1848
+ :vpmaskmovd_m256_ymm_ymm, 1627,
1849
+ :vpmaskmovq_m128_xmm_xmm, 1628,
1850
+ :vpmaskmovq_m256_ymm_ymm, 1629,
1851
+ :vpsllvd_xmm_xmm_xmmm128, 1630,
1852
+ :vpsllvq_xmm_xmm_xmmm128, 1631,
1853
+ :vpsllvd_ymm_ymm_ymmm256, 1632,
1854
+ :vpsllvq_ymm_ymm_ymmm256, 1633,
1855
+ :vpsravd_xmm_xmm_xmmm128, 1634,
1856
+ :vpsravd_ymm_ymm_ymmm256, 1635,
1857
+ :vpsrlvd_xmm_xmm_xmmm128, 1636,
1858
+ :vpsrlvq_xmm_xmm_xmmm128, 1637,
1859
+ :vpsrlvd_ymm_ymm_ymmm256, 1638,
1860
+ :vpsrlvq_ymm_ymm_ymmm256, 1639,
1861
+ :vtestps_xmm_xmmm128, 1640,
1862
+ :vtestps_ymm_ymmm256, 1641,
1863
+ :vtestpd_xmm_xmmm128, 1642,
1864
+ :vtestpd_ymm_ymmm256, 1643,
1865
+ :vzeroall, 1644,
1866
+ :vzeroupper, 1645,
1867
+ :xabort_imm8, 1646,
1868
+ :xadd_rm8_r8, 1647,
1869
+ :xadd_rm16_r16, 1648,
1870
+ :xadd_rm32_r32, 1649,
1871
+ :xadd_rm64_r64, 1650,
1872
+ :xbegin_rel16, 1651,
1873
+ :xbegin_rel32, 1652,
1874
+ :xchg_ax_r16, 1653,
1875
+ :xchg_eax_r32, 1654,
1876
+ :xchg_rax_r64, 1655,
1877
+ :xchg_rm8_r8, 1656,
1878
+ :xchg_rm16_r16, 1657,
1879
+ :xchg_rm32_r32, 1658,
1880
+ :xchg_rm64_r64, 1659,
1881
+ :xend, 1660,
1882
+ :xlatb, 1661,
1883
+ :xor_al_imm8, 1662,
1884
+ :xor_ax_imm16, 1663,
1885
+ :xor_eax_imm32, 1664,
1886
+ :xor_rax_imm32, 1665,
1887
+ :xor_rm8_imm8, 1666,
1888
+ :xor_rm16_imm16, 1667,
1889
+ :xor_rm32_imm32, 1668,
1890
+ :xor_rm64_imm32, 1669,
1891
+ :xor_rm16_imm8, 1670,
1892
+ :xor_rm32_imm8, 1671,
1893
+ :xor_rm64_imm8, 1672,
1894
+ :xor_rm8_r8, 1673,
1895
+ :xor_rm16_r16, 1674,
1896
+ :xor_rm32_r32, 1675,
1897
+ :xor_rm64_r64, 1676,
1898
+ :xor_r8_rm8, 1677,
1899
+ :xor_r16_rm16, 1678,
1900
+ :xor_r32_rm32, 1679,
1901
+ :xor_r64_rm64, 1680,
1902
+ :xorpd_xmm_xmmm128, 1681,
1903
+ :vxorpd_xmm_xmm_xmmm128, 1682,
1904
+ :vxorpd_ymm_ymm_ymmm256, 1683,
1905
+ :xorps_xmm_xmmm128, 1684,
1906
+ :vxorps_xmm_xmm_xmmm128, 1685,
1907
+ :vxorps_ymm_ymm_ymmm256, 1686,
1908
+ :xtest, 1687,
1909
+ :none
1910
+ ]
1911
+
1912
+ enum :x64_rflags_flag, [
1913
+ :of, 0,
1914
+ :sf, 1,
1915
+ :zf, 2,
1916
+ :pf, 3,
1917
+ :cf, 4,
1918
+ :none
1919
+ ]
1920
+
1921
+ enum :x64_mxcsr_flag, [
1922
+ :fz, 0,
1923
+ :rc, 1,
1924
+ :daz, 2,
1925
+ :none
1926
+ ]
1927
+
1928
+ enum :x64_param_type, [
1929
+ :bool, 0,
1930
+ :uint1, 1,
1931
+ :int3, 2,
1932
+ :int4, 3,
1933
+ :int8, 4,
1934
+ :int32, 5,
1935
+ :int64, 6,
1936
+ :reg, 7,
1937
+ :addr_size, 8,
1938
+ :scale, 9,
1939
+ :none
1940
+ ]
1941
+
1942
+
1943
+ enum :x64_operand_size, [
1944
+ :'8',
1945
+ :'16',
1946
+ :'32',
1947
+ :'64',
1948
+ :'128',
1949
+ :'256',
1950
+ :'512',
1951
+ :none
1952
+ ]
1953
+
1954
+ enum :x64_operand_word, [
1955
+ :lb,
1956
+ :hb,
1957
+ :w,
1958
+ :dw,
1959
+ :lqw,
1960
+ :hqw,
1961
+ :dqw,
1962
+ :vw,
1963
+ :none,
1964
+ ]
1965
+
1966
+ end
1967
+ end