aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/bindings/ocaml
diff options
context:
space:
mode:
Diffstat (limited to 'capstone/bindings/ocaml')
-rw-r--r--capstone/bindings/ocaml/Makefile299
-rw-r--r--capstone/bindings/ocaml/README23
-rw-r--r--capstone/bindings/ocaml/arm.ml55
-rw-r--r--capstone/bindings/ocaml/arm64.ml45
-rw-r--r--capstone/bindings/ocaml/arm64_const.ml2249
-rw-r--r--capstone/bindings/ocaml/arm_const.ml830
-rw-r--r--capstone/bindings/ocaml/capstone.ml214
-rw-r--r--capstone/bindings/ocaml/evm_const.ml151
-rw-r--r--capstone/bindings/ocaml/m680x.ml48
-rw-r--r--capstone/bindings/ocaml/m680x_const.ml415
-rw-r--r--capstone/bindings/ocaml/m68k_const.ml485
-rw-r--r--capstone/bindings/ocaml/mips.ml24
-rw-r--r--capstone/bindings/ocaml/mips_const.ml861
-rw-r--r--capstone/bindings/ocaml/ocaml.c1104
-rw-r--r--capstone/bindings/ocaml/ppc.ml34
-rw-r--r--capstone/bindings/ocaml/ppc_const.ml1976
-rw-r--r--capstone/bindings/ocaml/sparc.ml27
-rw-r--r--capstone/bindings/ocaml/sparc_const.ml429
-rw-r--r--capstone/bindings/ocaml/systemz.ml27
-rw-r--r--capstone/bindings/ocaml/sysz_const.ml2523
-rw-r--r--capstone/bindings/ocaml/test_arm.ml105
-rw-r--r--capstone/bindings/ocaml/test_arm64.ml101
-rw-r--r--capstone/bindings/ocaml/test_basic.ml67
-rw-r--r--capstone/bindings/ocaml/test_detail.ml87
-rw-r--r--capstone/bindings/ocaml/test_m680x.ml167
-rw-r--r--capstone/bindings/ocaml/test_mips.ml75
-rw-r--r--capstone/bindings/ocaml/test_ppc.ml81
-rw-r--r--capstone/bindings/ocaml/test_sparc.ml79
-rw-r--r--capstone/bindings/ocaml/test_systemz.ml80
-rw-r--r--capstone/bindings/ocaml/test_x86.ml117
-rw-r--r--capstone/bindings/ocaml/test_xcore.ml78
-rw-r--r--capstone/bindings/ocaml/tms320c64x_const.ml277
-rw-r--r--capstone/bindings/ocaml/wasm_const.ml191
-rw-r--r--capstone/bindings/ocaml/x86.ml47
-rw-r--r--capstone/bindings/ocaml/x86_const.ml1989
-rw-r--r--capstone/bindings/ocaml/xcore.ml26
-rw-r--r--capstone/bindings/ocaml/xcore_const.ml161
37 files changed, 15547 insertions, 0 deletions
diff --git a/capstone/bindings/ocaml/Makefile b/capstone/bindings/ocaml/Makefile
new file mode 100644
index 000000000..0ce12a325
--- /dev/null
+++ b/capstone/bindings/ocaml/Makefile
@@ -0,0 +1,299 @@
+# Capstone Disassembler Engine
+# By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015
+
+LIB = capstone
+FLAGS = '-Wall -Wextra -Wwrite-strings'
+PYTHON2 ?= python
+
+all: arm_const.cmxa arm64_const.cmxa m680x_const.cmxa mips_const.cmxa ppc_const.cmxa sparc_const.cmxa sysz_const.cmxa x86_const.cmxa xcore_const.cmxa arm.cmxa arm64.cmxa m680x.cmxa mips.cmxa ppc.cmxa x86.cmxa sparc.cmxa systemz.cmxa xcore.cmxa capstone.cmxa test_basic.cmx test_detail.cmx test_x86.cmx test_arm.cmx test_arm64.cmx test_mips.cmx test_ppc.cmx test_sparc.cmx test_systemz.cmx test_xcore.cmx test_m680x.cmx ocaml.o
+ ocamlopt -o test_basic -ccopt $(FLAGS) ocaml.o capstone.cmx test_basic.cmx -cclib -l$(LIB)
+ ocamlopt -o test_detail -ccopt $(FLAGS) capstone.cmx ocaml.o test_detail.cmx -cclib -l$(LIB)
+ ocamlopt -o test_x86 -ccopt $(FLAGS) capstone.cmx ocaml.o x86.cmx x86_const.cmx test_x86.cmx -cclib -l$(LIB)
+ ocamlopt -o test_arm -ccopt $(FLAGS) capstone.cmx ocaml.o arm.cmx arm_const.cmx test_arm.cmx -cclib -l$(LIB)
+ ocamlopt -o test_arm64 -ccopt $(FLAGS) capstone.cmx ocaml.o arm64.cmx arm64_const.cmx test_arm64.cmx -cclib -l$(LIB)
+ ocamlopt -o test_mips -ccopt $(FLAGS) capstone.cmx ocaml.o mips.cmx mips_const.cmx test_mips.cmx -cclib -l$(LIB)
+ ocamlopt -o test_ppc -ccopt $(FLAGS) capstone.cmx ocaml.o ppc.cmx ppc_const.cmx test_ppc.cmx -cclib -l$(LIB)
+ ocamlopt -o test_sparc -ccopt $(FLAGS) capstone.cmx ocaml.o sparc.cmx sparc_const.cmx test_sparc.cmx -cclib -l$(LIB)
+ ocamlopt -o test_systemz -ccopt $(FLAGS) capstone.cmx ocaml.o systemz.cmx sysz_const.cmx test_systemz.cmx -cclib -l$(LIB)
+ ocamlopt -o test_xcore -ccopt $(FLAGS) capstone.cmx ocaml.o xcore.cmx xcore_const.cmx test_xcore.cmx -cclib -l$(LIB)
+ ocamlopt -o test_m680x -ccopt $(FLAGS) capstone.cmx ocaml.o m680x.cmx m680x_const.cmx test_m680x.cmx -cclib -l$(LIB)
+
+
+test_basic.cmx: test_basic.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_detail.cmx: test_detail.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_x86.cmx: test_x86.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_arm.cmx: test_arm.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_arm64.cmx: test_arm64.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_mips.cmx: test_mips.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_ppc.cmx: test_ppc.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_sparc.cmx: test_sparc.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_systemz.cmx: test_systemz.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_xcore.cmx: test_xcore.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+test_m680x.cmx: test_m680x.ml
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+ocaml.o: ocaml.c
+ ocamlc -ccopt $(FLAGS) -c $<
+
+capstone.mli: capstone.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+capstone.cmi: capstone.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+capstone.cmx: capstone.ml capstone.cmi
+ ocamlopt -ccopt $(FLAGS) -c $< -cclib -l$(LIB)
+
+capstone.cmxa: capstone.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $< -cclib -lsb_ocaml -cclib -l$(LIB)
+
+x86.mli: x86.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+x86.cmi: x86.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+x86.cmx: x86.ml x86.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+x86.cmxa: x86.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+x86_const.mli: x86_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+x86_const.cmi: x86_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+x86_const.cmx: x86_const.ml x86_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+x86_const.cmxa: x86_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+arm.mli: arm.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+arm.cmi: arm.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+arm.cmx: arm.ml arm.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+arm.cmxa: arm.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+arm_const.mli: arm_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+arm_const.cmi: arm_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+arm_const.cmx: arm_const.ml arm_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+arm_const.cmxa: arm_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+arm64.mli: arm64.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+arm64.cmi: arm64.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+arm64.cmx: arm64.ml arm64.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+arm64.cmxa: arm64.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+arm64_const.mli: arm64_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+arm64_const.cmi: arm64_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+arm64_const.cmx: arm64_const.ml arm64_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+arm64_const.cmxa: arm64_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+m680x.mli: m680x.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+m680x.cmi: m680x.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+m680x.cmx: m680x.ml m680x.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+m680x.cmxa: m680x.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+m680x_const.mli: m680x_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+m680x_const.cmi: m680x_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+m680x_const.cmx: m680x_const.ml m680x_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+m680x_const.cmxa: m680x_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+mips.mli: mips.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+mips.cmi: mips.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+mips.cmx: mips.ml mips.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+mips.cmxa: mips.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+mips_const.mli: mips_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+mips_const.cmi: mips_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+mips_const.cmx: mips_const.ml mips_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+mips_const.cmxa: mips_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+ppc.mli: ppc.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+ppc.cmi: ppc.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+ppc.cmx: ppc.ml ppc.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+ppc.cmxa: ppc.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+ppc_const.mli: ppc_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+ppc_const.cmi: ppc_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+ppc_const.cmx: ppc_const.ml ppc_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+ppc_const.cmxa: ppc_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+sparc.mli: sparc.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+sparc.cmi: sparc.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+sparc.cmx: sparc.ml sparc.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+sparc.cmxa: sparc.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+sparc_const.mli: sparc_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+sparc_const.cmi: sparc_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+sparc_const.cmx: sparc_const.ml sparc_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+sparc_const.cmxa: sparc_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+systemz.mli: systemz.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+systemz.cmi: systemz.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+systemz.cmx: systemz.ml systemz.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+systemz.cmxa: systemz.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+sysz_const.mli: sysz_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+sysz_const.cmi: sysz_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+sysz_const.cmx: sysz_const.ml sysz_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+sysz_const.cmxa: sysz_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+xcore.mli: xcore.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+xcore.cmi: xcore.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+xcore.cmx: xcore.ml xcore.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+xcore.cmxa: xcore.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+xcore_const.mli: xcore_const.ml
+ ocamlc -ccopt $(FLAGS) -i $< > $@
+
+xcore_const.cmi: xcore_const.mli
+ ocamlc -ccopt $(FLAGS) -c $<
+
+xcore_const.cmx: xcore_const.ml xcore_const.cmi
+ ocamlopt -ccopt $(FLAGS) -c $<
+
+xcore_const.cmxa: xcore_const.cmx
+ ocamlopt -ccopt $(FLAGS) -a -o $@ $<
+
+clean:
+ rm -f *.[oa] *.so *.cm[ixoa] *.cmxa *.mli test_basic test_detail test_x86 test_arm test_arm64 test_mips test_ppc test_sparc test_systemz test_xcore test_m680x
+
+gen_const:
+ cd .. && $(PYTHON2) const_generator.py ocaml
+
+TESTS = test_basic test_detail test_arm test_arm64 test_m680x test_mips test_ppc
+TESTS += test_sparc test_systemz test_x86 test_xcore
+check:
+ @for t in $(TESTS); do \
+ echo Check $$t ... ; \
+ ./$$t > /dev/null && echo OK || echo FAILED; \
+ done
+
diff --git a/capstone/bindings/ocaml/README b/capstone/bindings/ocaml/README
new file mode 100644
index 000000000..e395232a5
--- /dev/null
+++ b/capstone/bindings/ocaml/README
@@ -0,0 +1,23 @@
+To compile Ocaml binding, Ocaml toolchain is needed. On Ubuntu Linux,
+you can install Ocaml with:
+
+ $ sudo apt-get install ocaml-nox
+
+To compile Ocaml binding, simply run "make" on the command line.
+
+
+This directory also contains some test code to show how to use Capstone API.
+
+- test_basic.ml
+ This code shows the most simple form of API where we only want to get basic
+ information out of disassembled instruction, such as address, mnemonic and
+ operand string.
+
+- test_detail.ml:
+ This code shows how to access to architecture-neutral information in disassembled
+ instructions, such as implicit registers read/written, or groups of instructions
+ that this instruction belong to.
+
+- test_<arch>.ml
+ These code show how to access architecture-specific information for each
+ architecture.
diff --git a/capstone/bindings/ocaml/arm.ml b/capstone/bindings/ocaml/arm.ml
new file mode 100644
index 000000000..eb2de2758
--- /dev/null
+++ b/capstone/bindings/ocaml/arm.ml
@@ -0,0 +1,55 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Arm_const
+
+let _CS_OP_ARCH = 5;;
+let _CS_OP_CIMM = _CS_OP_ARCH (* C-Immediate *)
+let _CS_OP_PIMM = _CS_OP_ARCH + 1 (* P-Immediate *)
+
+
+(* architecture specific info of instruction *)
+type arm_op_shift = {
+ shift_type: int; (* TODO: covert this to pattern like arm_op_value? *)
+ shift_value: int;
+}
+
+type arm_op_mem = {
+ base: int;
+ index: int;
+ scale: int;
+ disp: int;
+ lshift: int;
+}
+
+type arm_op_value =
+ | ARM_OP_INVALID of int
+ | ARM_OP_REG of int
+ | ARM_OP_CIMM of int
+ | ARM_OP_PIMM of int
+ | ARM_OP_IMM of int
+ | ARM_OP_FP of float
+ | ARM_OP_MEM of arm_op_mem
+ | ARM_OP_SETEND of int
+
+type arm_op = {
+ vector_index: int;
+ shift: arm_op_shift;
+ value: arm_op_value;
+ subtracted: bool;
+ access: int;
+ neon_lane: int;
+}
+
+type cs_arm = {
+ usermode: bool;
+ vector_size: int;
+ vector_data: int;
+ cps_mode: int;
+ cps_flag: int;
+ cc: int;
+ update_flags: bool;
+ writeback: bool;
+ mem_barrier: int;
+ operands: arm_op array;
+}
diff --git a/capstone/bindings/ocaml/arm64.ml b/capstone/bindings/ocaml/arm64.ml
new file mode 100644
index 000000000..20d7030c8
--- /dev/null
+++ b/capstone/bindings/ocaml/arm64.ml
@@ -0,0 +1,45 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Arm64_const
+
+(* architecture specific info of instruction *)
+type arm64_op_shift = {
+ shift_type: int;
+ shift_value: int;
+}
+
+type arm64_op_mem = {
+ base: int;
+ index: int;
+ disp: int
+}
+
+type arm64_op_value =
+ | ARM64_OP_INVALID of int
+ | ARM64_OP_REG of int
+ | ARM64_OP_CIMM of int
+ | ARM64_OP_IMM of int
+ | ARM64_OP_FP of float
+ | ARM64_OP_MEM of arm64_op_mem
+ | ARM64_OP_REG_MRS of int
+ | ARM64_OP_REG_MSR of int
+ | ARM64_OP_PSTATE of int
+ | ARM64_OP_SYS of int
+ | ARM64_OP_PREFETCH of int
+ | ARM64_OP_BARRIER of int
+
+type arm64_op = {
+ vector_index: int;
+ vas: int;
+ shift: arm64_op_shift;
+ ext: int;
+ value: arm64_op_value;
+}
+
+type cs_arm64 = {
+ cc: int;
+ update_flags: bool;
+ writeback: bool;
+ operands: arm64_op array;
+}
diff --git a/capstone/bindings/ocaml/arm64_const.ml b/capstone/bindings/ocaml/arm64_const.ml
new file mode 100644
index 000000000..a8000311d
--- /dev/null
+++ b/capstone/bindings/ocaml/arm64_const.ml
@@ -0,0 +1,2249 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm64_const.ml] *)
+
+let _ARM64_SFT_INVALID = 0;;
+let _ARM64_SFT_LSL = 1;;
+let _ARM64_SFT_MSL = 2;;
+let _ARM64_SFT_LSR = 3;;
+let _ARM64_SFT_ASR = 4;;
+let _ARM64_SFT_ROR = 5;;
+
+let _ARM64_EXT_INVALID = 0;;
+let _ARM64_EXT_UXTB = 1;;
+let _ARM64_EXT_UXTH = 2;;
+let _ARM64_EXT_UXTW = 3;;
+let _ARM64_EXT_UXTX = 4;;
+let _ARM64_EXT_SXTB = 5;;
+let _ARM64_EXT_SXTH = 6;;
+let _ARM64_EXT_SXTW = 7;;
+let _ARM64_EXT_SXTX = 8;;
+
+let _ARM64_CC_INVALID = 0;;
+let _ARM64_CC_EQ = 1;;
+let _ARM64_CC_NE = 2;;
+let _ARM64_CC_HS = 3;;
+let _ARM64_CC_LO = 4;;
+let _ARM64_CC_MI = 5;;
+let _ARM64_CC_PL = 6;;
+let _ARM64_CC_VS = 7;;
+let _ARM64_CC_VC = 8;;
+let _ARM64_CC_HI = 9;;
+let _ARM64_CC_LS = 10;;
+let _ARM64_CC_GE = 11;;
+let _ARM64_CC_LT = 12;;
+let _ARM64_CC_GT = 13;;
+let _ARM64_CC_LE = 14;;
+let _ARM64_CC_AL = 15;;
+let _ARM64_CC_NV = 16;;
+
+let _ARM64_SYSREG_INVALID = 0;;
+let _ARM64_SYSREG_MDCCSR_EL0 = 0x9808;;
+let _ARM64_SYSREG_DBGDTRRX_EL0 = 0x9828;;
+let _ARM64_SYSREG_MDRAR_EL1 = 0x8080;;
+let _ARM64_SYSREG_OSLSR_EL1 = 0x808C;;
+let _ARM64_SYSREG_DBGAUTHSTATUS_EL1 = 0x83F6;;
+let _ARM64_SYSREG_PMCEID0_EL0 = 0xDCE6;;
+let _ARM64_SYSREG_PMCEID1_EL0 = 0xDCE7;;
+let _ARM64_SYSREG_MIDR_EL1 = 0xC000;;
+let _ARM64_SYSREG_CCSIDR_EL1 = 0xC800;;
+let _ARM64_SYSREG_CCSIDR2_EL1 = 0xC802;;
+let _ARM64_SYSREG_CLIDR_EL1 = 0xC801;;
+let _ARM64_SYSREG_CTR_EL0 = 0xD801;;
+let _ARM64_SYSREG_MPIDR_EL1 = 0xC005;;
+let _ARM64_SYSREG_REVIDR_EL1 = 0xC006;;
+let _ARM64_SYSREG_AIDR_EL1 = 0xC807;;
+let _ARM64_SYSREG_DCZID_EL0 = 0xD807;;
+let _ARM64_SYSREG_ID_PFR0_EL1 = 0xC008;;
+let _ARM64_SYSREG_ID_PFR1_EL1 = 0xC009;;
+let _ARM64_SYSREG_ID_DFR0_EL1 = 0xC00A;;
+let _ARM64_SYSREG_ID_AFR0_EL1 = 0xC00B;;
+let _ARM64_SYSREG_ID_MMFR0_EL1 = 0xC00C;;
+let _ARM64_SYSREG_ID_MMFR1_EL1 = 0xC00D;;
+let _ARM64_SYSREG_ID_MMFR2_EL1 = 0xC00E;;
+let _ARM64_SYSREG_ID_MMFR3_EL1 = 0xC00F;;
+let _ARM64_SYSREG_ID_ISAR0_EL1 = 0xC010;;
+let _ARM64_SYSREG_ID_ISAR1_EL1 = 0xC011;;
+let _ARM64_SYSREG_ID_ISAR2_EL1 = 0xC012;;
+let _ARM64_SYSREG_ID_ISAR3_EL1 = 0xC013;;
+let _ARM64_SYSREG_ID_ISAR4_EL1 = 0xC014;;
+let _ARM64_SYSREG_ID_ISAR5_EL1 = 0xC015;;
+let _ARM64_SYSREG_ID_ISAR6_EL1 = 0xC017;;
+let _ARM64_SYSREG_ID_AA64PFR0_EL1 = 0xC020;;
+let _ARM64_SYSREG_ID_AA64PFR1_EL1 = 0xC021;;
+let _ARM64_SYSREG_ID_AA64DFR0_EL1 = 0xC028;;
+let _ARM64_SYSREG_ID_AA64DFR1_EL1 = 0xC029;;
+let _ARM64_SYSREG_ID_AA64AFR0_EL1 = 0xC02C;;
+let _ARM64_SYSREG_ID_AA64AFR1_EL1 = 0xC02D;;
+let _ARM64_SYSREG_ID_AA64ISAR0_EL1 = 0xC030;;
+let _ARM64_SYSREG_ID_AA64ISAR1_EL1 = 0xC031;;
+let _ARM64_SYSREG_ID_AA64MMFR0_EL1 = 0xC038;;
+let _ARM64_SYSREG_ID_AA64MMFR1_EL1 = 0xC039;;
+let _ARM64_SYSREG_ID_AA64MMFR2_EL1 = 0xC03A;;
+let _ARM64_SYSREG_MVFR0_EL1 = 0xC018;;
+let _ARM64_SYSREG_MVFR1_EL1 = 0xC019;;
+let _ARM64_SYSREG_MVFR2_EL1 = 0xC01A;;
+let _ARM64_SYSREG_RVBAR_EL1 = 0xC601;;
+let _ARM64_SYSREG_RVBAR_EL2 = 0xE601;;
+let _ARM64_SYSREG_RVBAR_EL3 = 0xF601;;
+let _ARM64_SYSREG_ISR_EL1 = 0xC608;;
+let _ARM64_SYSREG_CNTPCT_EL0 = 0xDF01;;
+let _ARM64_SYSREG_CNTVCT_EL0 = 0xDF02;;
+let _ARM64_SYSREG_ID_MMFR4_EL1 = 0xC016;;
+let _ARM64_SYSREG_TRCSTATR = 0x8818;;
+let _ARM64_SYSREG_TRCIDR8 = 0x8806;;
+let _ARM64_SYSREG_TRCIDR9 = 0x880E;;
+let _ARM64_SYSREG_TRCIDR10 = 0x8816;;
+let _ARM64_SYSREG_TRCIDR11 = 0x881E;;
+let _ARM64_SYSREG_TRCIDR12 = 0x8826;;
+let _ARM64_SYSREG_TRCIDR13 = 0x882E;;
+let _ARM64_SYSREG_TRCIDR0 = 0x8847;;
+let _ARM64_SYSREG_TRCIDR1 = 0x884F;;
+let _ARM64_SYSREG_TRCIDR2 = 0x8857;;
+let _ARM64_SYSREG_TRCIDR3 = 0x885F;;
+let _ARM64_SYSREG_TRCIDR4 = 0x8867;;
+let _ARM64_SYSREG_TRCIDR5 = 0x886F;;
+let _ARM64_SYSREG_TRCIDR6 = 0x8877;;
+let _ARM64_SYSREG_TRCIDR7 = 0x887F;;
+let _ARM64_SYSREG_TRCOSLSR = 0x888C;;
+let _ARM64_SYSREG_TRCPDSR = 0x88AC;;
+let _ARM64_SYSREG_TRCDEVAFF0 = 0x8BD6;;
+let _ARM64_SYSREG_TRCDEVAFF1 = 0x8BDE;;
+let _ARM64_SYSREG_TRCLSR = 0x8BEE;;
+let _ARM64_SYSREG_TRCAUTHSTATUS = 0x8BF6;;
+let _ARM64_SYSREG_TRCDEVARCH = 0x8BFE;;
+let _ARM64_SYSREG_TRCDEVID = 0x8B97;;
+let _ARM64_SYSREG_TRCDEVTYPE = 0x8B9F;;
+let _ARM64_SYSREG_TRCPIDR4 = 0x8BA7;;
+let _ARM64_SYSREG_TRCPIDR5 = 0x8BAF;;
+let _ARM64_SYSREG_TRCPIDR6 = 0x8BB7;;
+let _ARM64_SYSREG_TRCPIDR7 = 0x8BBF;;
+let _ARM64_SYSREG_TRCPIDR0 = 0x8BC7;;
+let _ARM64_SYSREG_TRCPIDR1 = 0x8BCF;;
+let _ARM64_SYSREG_TRCPIDR2 = 0x8BD7;;
+let _ARM64_SYSREG_TRCPIDR3 = 0x8BDF;;
+let _ARM64_SYSREG_TRCCIDR0 = 0x8BE7;;
+let _ARM64_SYSREG_TRCCIDR1 = 0x8BEF;;
+let _ARM64_SYSREG_TRCCIDR2 = 0x8BF7;;
+let _ARM64_SYSREG_TRCCIDR3 = 0x8BFF;;
+let _ARM64_SYSREG_ICC_IAR1_EL1 = 0xC660;;
+let _ARM64_SYSREG_ICC_IAR0_EL1 = 0xC640;;
+let _ARM64_SYSREG_ICC_HPPIR1_EL1 = 0xC662;;
+let _ARM64_SYSREG_ICC_HPPIR0_EL1 = 0xC642;;
+let _ARM64_SYSREG_ICC_RPR_EL1 = 0xC65B;;
+let _ARM64_SYSREG_ICH_VTR_EL2 = 0xE659;;
+let _ARM64_SYSREG_ICH_EISR_EL2 = 0xE65B;;
+let _ARM64_SYSREG_ICH_ELRSR_EL2 = 0xE65D;;
+let _ARM64_SYSREG_ID_AA64ZFR0_EL1 = 0xC024;;
+let _ARM64_SYSREG_LORID_EL1 = 0xC527;;
+let _ARM64_SYSREG_ERRIDR_EL1 = 0xC298;;
+let _ARM64_SYSREG_ERXFR_EL1 = 0xC2A0;;
+let _ARM64_SYSREG_DBGDTRTX_EL0 = 0x9828;;
+let _ARM64_SYSREG_OSLAR_EL1 = 0x8084;;
+let _ARM64_SYSREG_PMSWINC_EL0 = 0xDCE4;;
+let _ARM64_SYSREG_TRCOSLAR = 0x8884;;
+let _ARM64_SYSREG_TRCLAR = 0x8BE6;;
+let _ARM64_SYSREG_ICC_EOIR1_EL1 = 0xC661;;
+let _ARM64_SYSREG_ICC_EOIR0_EL1 = 0xC641;;
+let _ARM64_SYSREG_ICC_DIR_EL1 = 0xC659;;
+let _ARM64_SYSREG_ICC_SGI1R_EL1 = 0xC65D;;
+let _ARM64_SYSREG_ICC_ASGI1R_EL1 = 0xC65E;;
+let _ARM64_SYSREG_ICC_SGI0R_EL1 = 0xC65F;;
+let _ARM64_SYSREG_OSDTRRX_EL1 = 0x8002;;
+let _ARM64_SYSREG_OSDTRTX_EL1 = 0x801A;;
+let _ARM64_SYSREG_TEECR32_EL1 = 0x9000;;
+let _ARM64_SYSREG_MDCCINT_EL1 = 0x8010;;
+let _ARM64_SYSREG_MDSCR_EL1 = 0x8012;;
+let _ARM64_SYSREG_DBGDTR_EL0 = 0x9820;;
+let _ARM64_SYSREG_OSECCR_EL1 = 0x8032;;
+let _ARM64_SYSREG_DBGVCR32_EL2 = 0xA038;;
+let _ARM64_SYSREG_DBGBVR0_EL1 = 0x8004;;
+let _ARM64_SYSREG_DBGBVR1_EL1 = 0x800C;;
+let _ARM64_SYSREG_DBGBVR2_EL1 = 0x8014;;
+let _ARM64_SYSREG_DBGBVR3_EL1 = 0x801C;;
+let _ARM64_SYSREG_DBGBVR4_EL1 = 0x8024;;
+let _ARM64_SYSREG_DBGBVR5_EL1 = 0x802C;;
+let _ARM64_SYSREG_DBGBVR6_EL1 = 0x8034;;
+let _ARM64_SYSREG_DBGBVR7_EL1 = 0x803C;;
+let _ARM64_SYSREG_DBGBVR8_EL1 = 0x8044;;
+let _ARM64_SYSREG_DBGBVR9_EL1 = 0x804C;;
+let _ARM64_SYSREG_DBGBVR10_EL1 = 0x8054;;
+let _ARM64_SYSREG_DBGBVR11_EL1 = 0x805C;;
+let _ARM64_SYSREG_DBGBVR12_EL1 = 0x8064;;
+let _ARM64_SYSREG_DBGBVR13_EL1 = 0x806C;;
+let _ARM64_SYSREG_DBGBVR14_EL1 = 0x8074;;
+let _ARM64_SYSREG_DBGBVR15_EL1 = 0x807C;;
+let _ARM64_SYSREG_DBGBCR0_EL1 = 0x8005;;
+let _ARM64_SYSREG_DBGBCR1_EL1 = 0x800D;;
+let _ARM64_SYSREG_DBGBCR2_EL1 = 0x8015;;
+let _ARM64_SYSREG_DBGBCR3_EL1 = 0x801D;;
+let _ARM64_SYSREG_DBGBCR4_EL1 = 0x8025;;
+let _ARM64_SYSREG_DBGBCR5_EL1 = 0x802D;;
+let _ARM64_SYSREG_DBGBCR6_EL1 = 0x8035;;
+let _ARM64_SYSREG_DBGBCR7_EL1 = 0x803D;;
+let _ARM64_SYSREG_DBGBCR8_EL1 = 0x8045;;
+let _ARM64_SYSREG_DBGBCR9_EL1 = 0x804D;;
+let _ARM64_SYSREG_DBGBCR10_EL1 = 0x8055;;
+let _ARM64_SYSREG_DBGBCR11_EL1 = 0x805D;;
+let _ARM64_SYSREG_DBGBCR12_EL1 = 0x8065;;
+let _ARM64_SYSREG_DBGBCR13_EL1 = 0x806D;;
+let _ARM64_SYSREG_DBGBCR14_EL1 = 0x8075;;
+let _ARM64_SYSREG_DBGBCR15_EL1 = 0x807D;;
+let _ARM64_SYSREG_DBGWVR0_EL1 = 0x8006;;
+let _ARM64_SYSREG_DBGWVR1_EL1 = 0x800E;;
+let _ARM64_SYSREG_DBGWVR2_EL1 = 0x8016;;
+let _ARM64_SYSREG_DBGWVR3_EL1 = 0x801E;;
+let _ARM64_SYSREG_DBGWVR4_EL1 = 0x8026;;
+let _ARM64_SYSREG_DBGWVR5_EL1 = 0x802E;;
+let _ARM64_SYSREG_DBGWVR6_EL1 = 0x8036;;
+let _ARM64_SYSREG_DBGWVR7_EL1 = 0x803E;;
+let _ARM64_SYSREG_DBGWVR8_EL1 = 0x8046;;
+let _ARM64_SYSREG_DBGWVR9_EL1 = 0x804E;;
+let _ARM64_SYSREG_DBGWVR10_EL1 = 0x8056;;
+let _ARM64_SYSREG_DBGWVR11_EL1 = 0x805E;;
+let _ARM64_SYSREG_DBGWVR12_EL1 = 0x8066;;
+let _ARM64_SYSREG_DBGWVR13_EL1 = 0x806E;;
+let _ARM64_SYSREG_DBGWVR14_EL1 = 0x8076;;
+let _ARM64_SYSREG_DBGWVR15_EL1 = 0x807E;;
+let _ARM64_SYSREG_DBGWCR0_EL1 = 0x8007;;
+let _ARM64_SYSREG_DBGWCR1_EL1 = 0x800F;;
+let _ARM64_SYSREG_DBGWCR2_EL1 = 0x8017;;
+let _ARM64_SYSREG_DBGWCR3_EL1 = 0x801F;;
+let _ARM64_SYSREG_DBGWCR4_EL1 = 0x8027;;
+let _ARM64_SYSREG_DBGWCR5_EL1 = 0x802F;;
+let _ARM64_SYSREG_DBGWCR6_EL1 = 0x8037;;
+let _ARM64_SYSREG_DBGWCR7_EL1 = 0x803F;;
+let _ARM64_SYSREG_DBGWCR8_EL1 = 0x8047;;
+let _ARM64_SYSREG_DBGWCR9_EL1 = 0x804F;;
+let _ARM64_SYSREG_DBGWCR10_EL1 = 0x8057;;
+let _ARM64_SYSREG_DBGWCR11_EL1 = 0x805F;;
+let _ARM64_SYSREG_DBGWCR12_EL1 = 0x8067;;
+let _ARM64_SYSREG_DBGWCR13_EL1 = 0x806F;;
+let _ARM64_SYSREG_DBGWCR14_EL1 = 0x8077;;
+let _ARM64_SYSREG_DBGWCR15_EL1 = 0x807F;;
+let _ARM64_SYSREG_TEEHBR32_EL1 = 0x9080;;
+let _ARM64_SYSREG_OSDLR_EL1 = 0x809C;;
+let _ARM64_SYSREG_DBGPRCR_EL1 = 0x80A4;;
+let _ARM64_SYSREG_DBGCLAIMSET_EL1 = 0x83C6;;
+let _ARM64_SYSREG_DBGCLAIMCLR_EL1 = 0x83CE;;
+let _ARM64_SYSREG_CSSELR_EL1 = 0xD000;;
+let _ARM64_SYSREG_VPIDR_EL2 = 0xE000;;
+let _ARM64_SYSREG_VMPIDR_EL2 = 0xE005;;
+let _ARM64_SYSREG_CPACR_EL1 = 0xC082;;
+let _ARM64_SYSREG_SCTLR_EL1 = 0xC080;;
+let _ARM64_SYSREG_SCTLR_EL2 = 0xE080;;
+let _ARM64_SYSREG_SCTLR_EL3 = 0xF080;;
+let _ARM64_SYSREG_ACTLR_EL1 = 0xC081;;
+let _ARM64_SYSREG_ACTLR_EL2 = 0xE081;;
+let _ARM64_SYSREG_ACTLR_EL3 = 0xF081;;
+let _ARM64_SYSREG_HCR_EL2 = 0xE088;;
+let _ARM64_SYSREG_SCR_EL3 = 0xF088;;
+let _ARM64_SYSREG_MDCR_EL2 = 0xE089;;
+let _ARM64_SYSREG_SDER32_EL3 = 0xF089;;
+let _ARM64_SYSREG_CPTR_EL2 = 0xE08A;;
+let _ARM64_SYSREG_CPTR_EL3 = 0xF08A;;
+let _ARM64_SYSREG_HSTR_EL2 = 0xE08B;;
+let _ARM64_SYSREG_HACR_EL2 = 0xE08F;;
+let _ARM64_SYSREG_MDCR_EL3 = 0xF099;;
+let _ARM64_SYSREG_TTBR0_EL1 = 0xC100;;
+let _ARM64_SYSREG_TTBR0_EL2 = 0xE100;;
+let _ARM64_SYSREG_TTBR0_EL3 = 0xF100;;
+let _ARM64_SYSREG_TTBR1_EL1 = 0xC101;;
+let _ARM64_SYSREG_TCR_EL1 = 0xC102;;
+let _ARM64_SYSREG_TCR_EL2 = 0xE102;;
+let _ARM64_SYSREG_TCR_EL3 = 0xF102;;
+let _ARM64_SYSREG_VTTBR_EL2 = 0xE108;;
+let _ARM64_SYSREG_VTCR_EL2 = 0xE10A;;
+let _ARM64_SYSREG_DACR32_EL2 = 0xE180;;
+let _ARM64_SYSREG_SPSR_EL1 = 0xC200;;
+let _ARM64_SYSREG_SPSR_EL2 = 0xE200;;
+let _ARM64_SYSREG_SPSR_EL3 = 0xF200;;
+let _ARM64_SYSREG_ELR_EL1 = 0xC201;;
+let _ARM64_SYSREG_ELR_EL2 = 0xE201;;
+let _ARM64_SYSREG_ELR_EL3 = 0xF201;;
+let _ARM64_SYSREG_SP_EL0 = 0xC208;;
+let _ARM64_SYSREG_SP_EL1 = 0xE208;;
+let _ARM64_SYSREG_SP_EL2 = 0xF208;;
+let _ARM64_SYSREG_SPSEL = 0xC210;;
+let _ARM64_SYSREG_NZCV = 0xDA10;;
+let _ARM64_SYSREG_DAIF = 0xDA11;;
+let _ARM64_SYSREG_CURRENTEL = 0xC212;;
+let _ARM64_SYSREG_SPSR_IRQ = 0xE218;;
+let _ARM64_SYSREG_SPSR_ABT = 0xE219;;
+let _ARM64_SYSREG_SPSR_UND = 0xE21A;;
+let _ARM64_SYSREG_SPSR_FIQ = 0xE21B;;
+let _ARM64_SYSREG_FPCR = 0xDA20;;
+let _ARM64_SYSREG_FPSR = 0xDA21;;
+let _ARM64_SYSREG_DSPSR_EL0 = 0xDA28;;
+let _ARM64_SYSREG_DLR_EL0 = 0xDA29;;
+let _ARM64_SYSREG_IFSR32_EL2 = 0xE281;;
+let _ARM64_SYSREG_AFSR0_EL1 = 0xC288;;
+let _ARM64_SYSREG_AFSR0_EL2 = 0xE288;;
+let _ARM64_SYSREG_AFSR0_EL3 = 0xF288;;
+let _ARM64_SYSREG_AFSR1_EL1 = 0xC289;;
+let _ARM64_SYSREG_AFSR1_EL2 = 0xE289;;
+let _ARM64_SYSREG_AFSR1_EL3 = 0xF289;;
+let _ARM64_SYSREG_ESR_EL1 = 0xC290;;
+let _ARM64_SYSREG_ESR_EL2 = 0xE290;;
+let _ARM64_SYSREG_ESR_EL3 = 0xF290;;
+let _ARM64_SYSREG_FPEXC32_EL2 = 0xE298;;
+let _ARM64_SYSREG_FAR_EL1 = 0xC300;;
+let _ARM64_SYSREG_FAR_EL2 = 0xE300;;
+let _ARM64_SYSREG_FAR_EL3 = 0xF300;;
+let _ARM64_SYSREG_HPFAR_EL2 = 0xE304;;
+let _ARM64_SYSREG_PAR_EL1 = 0xC3A0;;
+let _ARM64_SYSREG_PMCR_EL0 = 0xDCE0;;
+let _ARM64_SYSREG_PMCNTENSET_EL0 = 0xDCE1;;
+let _ARM64_SYSREG_PMCNTENCLR_EL0 = 0xDCE2;;
+let _ARM64_SYSREG_PMOVSCLR_EL0 = 0xDCE3;;
+let _ARM64_SYSREG_PMSELR_EL0 = 0xDCE5;;
+let _ARM64_SYSREG_PMCCNTR_EL0 = 0xDCE8;;
+let _ARM64_SYSREG_PMXEVTYPER_EL0 = 0xDCE9;;
+let _ARM64_SYSREG_PMXEVCNTR_EL0 = 0xDCEA;;
+let _ARM64_SYSREG_PMUSERENR_EL0 = 0xDCF0;;
+let _ARM64_SYSREG_PMINTENSET_EL1 = 0xC4F1;;
+let _ARM64_SYSREG_PMINTENCLR_EL1 = 0xC4F2;;
+let _ARM64_SYSREG_PMOVSSET_EL0 = 0xDCF3;;
+let _ARM64_SYSREG_MAIR_EL1 = 0xC510;;
+let _ARM64_SYSREG_MAIR_EL2 = 0xE510;;
+let _ARM64_SYSREG_MAIR_EL3 = 0xF510;;
+let _ARM64_SYSREG_AMAIR_EL1 = 0xC518;;
+let _ARM64_SYSREG_AMAIR_EL2 = 0xE518;;
+let _ARM64_SYSREG_AMAIR_EL3 = 0xF518;;
+let _ARM64_SYSREG_VBAR_EL1 = 0xC600;;
+let _ARM64_SYSREG_VBAR_EL2 = 0xE600;;
+let _ARM64_SYSREG_VBAR_EL3 = 0xF600;;
+let _ARM64_SYSREG_RMR_EL1 = 0xC602;;
+let _ARM64_SYSREG_RMR_EL2 = 0xE602;;
+let _ARM64_SYSREG_RMR_EL3 = 0xF602;;
+let _ARM64_SYSREG_CONTEXTIDR_EL1 = 0xC681;;
+let _ARM64_SYSREG_TPIDR_EL0 = 0xDE82;;
+let _ARM64_SYSREG_TPIDR_EL2 = 0xE682;;
+let _ARM64_SYSREG_TPIDR_EL3 = 0xF682;;
+let _ARM64_SYSREG_TPIDRRO_EL0 = 0xDE83;;
+let _ARM64_SYSREG_TPIDR_EL1 = 0xC684;;
+let _ARM64_SYSREG_CNTFRQ_EL0 = 0xDF00;;
+let _ARM64_SYSREG_CNTVOFF_EL2 = 0xE703;;
+let _ARM64_SYSREG_CNTKCTL_EL1 = 0xC708;;
+let _ARM64_SYSREG_CNTHCTL_EL2 = 0xE708;;
+let _ARM64_SYSREG_CNTP_TVAL_EL0 = 0xDF10;;
+let _ARM64_SYSREG_CNTHP_TVAL_EL2 = 0xE710;;
+let _ARM64_SYSREG_CNTPS_TVAL_EL1 = 0xFF10;;
+let _ARM64_SYSREG_CNTP_CTL_EL0 = 0xDF11;;
+let _ARM64_SYSREG_CNTHP_CTL_EL2 = 0xE711;;
+let _ARM64_SYSREG_CNTPS_CTL_EL1 = 0xFF11;;
+let _ARM64_SYSREG_CNTP_CVAL_EL0 = 0xDF12;;
+let _ARM64_SYSREG_CNTHP_CVAL_EL2 = 0xE712;;
+let _ARM64_SYSREG_CNTPS_CVAL_EL1 = 0xFF12;;
+let _ARM64_SYSREG_CNTV_TVAL_EL0 = 0xDF18;;
+let _ARM64_SYSREG_CNTV_CTL_EL0 = 0xDF19;;
+let _ARM64_SYSREG_CNTV_CVAL_EL0 = 0xDF1A;;
+let _ARM64_SYSREG_PMEVCNTR0_EL0 = 0xDF40;;
+let _ARM64_SYSREG_PMEVCNTR1_EL0 = 0xDF41;;
+let _ARM64_SYSREG_PMEVCNTR2_EL0 = 0xDF42;;
+let _ARM64_SYSREG_PMEVCNTR3_EL0 = 0xDF43;;
+let _ARM64_SYSREG_PMEVCNTR4_EL0 = 0xDF44;;
+let _ARM64_SYSREG_PMEVCNTR5_EL0 = 0xDF45;;
+let _ARM64_SYSREG_PMEVCNTR6_EL0 = 0xDF46;;
+let _ARM64_SYSREG_PMEVCNTR7_EL0 = 0xDF47;;
+let _ARM64_SYSREG_PMEVCNTR8_EL0 = 0xDF48;;
+let _ARM64_SYSREG_PMEVCNTR9_EL0 = 0xDF49;;
+let _ARM64_SYSREG_PMEVCNTR10_EL0 = 0xDF4A;;
+let _ARM64_SYSREG_PMEVCNTR11_EL0 = 0xDF4B;;
+let _ARM64_SYSREG_PMEVCNTR12_EL0 = 0xDF4C;;
+let _ARM64_SYSREG_PMEVCNTR13_EL0 = 0xDF4D;;
+let _ARM64_SYSREG_PMEVCNTR14_EL0 = 0xDF4E;;
+let _ARM64_SYSREG_PMEVCNTR15_EL0 = 0xDF4F;;
+let _ARM64_SYSREG_PMEVCNTR16_EL0 = 0xDF50;;
+let _ARM64_SYSREG_PMEVCNTR17_EL0 = 0xDF51;;
+let _ARM64_SYSREG_PMEVCNTR18_EL0 = 0xDF52;;
+let _ARM64_SYSREG_PMEVCNTR19_EL0 = 0xDF53;;
+let _ARM64_SYSREG_PMEVCNTR20_EL0 = 0xDF54;;
+let _ARM64_SYSREG_PMEVCNTR21_EL0 = 0xDF55;;
+let _ARM64_SYSREG_PMEVCNTR22_EL0 = 0xDF56;;
+let _ARM64_SYSREG_PMEVCNTR23_EL0 = 0xDF57;;
+let _ARM64_SYSREG_PMEVCNTR24_EL0 = 0xDF58;;
+let _ARM64_SYSREG_PMEVCNTR25_EL0 = 0xDF59;;
+let _ARM64_SYSREG_PMEVCNTR26_EL0 = 0xDF5A;;
+let _ARM64_SYSREG_PMEVCNTR27_EL0 = 0xDF5B;;
+let _ARM64_SYSREG_PMEVCNTR28_EL0 = 0xDF5C;;
+let _ARM64_SYSREG_PMEVCNTR29_EL0 = 0xDF5D;;
+let _ARM64_SYSREG_PMEVCNTR30_EL0 = 0xDF5E;;
+let _ARM64_SYSREG_PMCCFILTR_EL0 = 0xDF7F;;
+let _ARM64_SYSREG_PMEVTYPER0_EL0 = 0xDF60;;
+let _ARM64_SYSREG_PMEVTYPER1_EL0 = 0xDF61;;
+let _ARM64_SYSREG_PMEVTYPER2_EL0 = 0xDF62;;
+let _ARM64_SYSREG_PMEVTYPER3_EL0 = 0xDF63;;
+let _ARM64_SYSREG_PMEVTYPER4_EL0 = 0xDF64;;
+let _ARM64_SYSREG_PMEVTYPER5_EL0 = 0xDF65;;
+let _ARM64_SYSREG_PMEVTYPER6_EL0 = 0xDF66;;
+let _ARM64_SYSREG_PMEVTYPER7_EL0 = 0xDF67;;
+let _ARM64_SYSREG_PMEVTYPER8_EL0 = 0xDF68;;
+let _ARM64_SYSREG_PMEVTYPER9_EL0 = 0xDF69;;
+let _ARM64_SYSREG_PMEVTYPER10_EL0 = 0xDF6A;;
+let _ARM64_SYSREG_PMEVTYPER11_EL0 = 0xDF6B;;
+let _ARM64_SYSREG_PMEVTYPER12_EL0 = 0xDF6C;;
+let _ARM64_SYSREG_PMEVTYPER13_EL0 = 0xDF6D;;
+let _ARM64_SYSREG_PMEVTYPER14_EL0 = 0xDF6E;;
+let _ARM64_SYSREG_PMEVTYPER15_EL0 = 0xDF6F;;
+let _ARM64_SYSREG_PMEVTYPER16_EL0 = 0xDF70;;
+let _ARM64_SYSREG_PMEVTYPER17_EL0 = 0xDF71;;
+let _ARM64_SYSREG_PMEVTYPER18_EL0 = 0xDF72;;
+let _ARM64_SYSREG_PMEVTYPER19_EL0 = 0xDF73;;
+let _ARM64_SYSREG_PMEVTYPER20_EL0 = 0xDF74;;
+let _ARM64_SYSREG_PMEVTYPER21_EL0 = 0xDF75;;
+let _ARM64_SYSREG_PMEVTYPER22_EL0 = 0xDF76;;
+let _ARM64_SYSREG_PMEVTYPER23_EL0 = 0xDF77;;
+let _ARM64_SYSREG_PMEVTYPER24_EL0 = 0xDF78;;
+let _ARM64_SYSREG_PMEVTYPER25_EL0 = 0xDF79;;
+let _ARM64_SYSREG_PMEVTYPER26_EL0 = 0xDF7A;;
+let _ARM64_SYSREG_PMEVTYPER27_EL0 = 0xDF7B;;
+let _ARM64_SYSREG_PMEVTYPER28_EL0 = 0xDF7C;;
+let _ARM64_SYSREG_PMEVTYPER29_EL0 = 0xDF7D;;
+let _ARM64_SYSREG_PMEVTYPER30_EL0 = 0xDF7E;;
+let _ARM64_SYSREG_TRCPRGCTLR = 0x8808;;
+let _ARM64_SYSREG_TRCPROCSELR = 0x8810;;
+let _ARM64_SYSREG_TRCCONFIGR = 0x8820;;
+let _ARM64_SYSREG_TRCAUXCTLR = 0x8830;;
+let _ARM64_SYSREG_TRCEVENTCTL0R = 0x8840;;
+let _ARM64_SYSREG_TRCEVENTCTL1R = 0x8848;;
+let _ARM64_SYSREG_TRCSTALLCTLR = 0x8858;;
+let _ARM64_SYSREG_TRCTSCTLR = 0x8860;;
+let _ARM64_SYSREG_TRCSYNCPR = 0x8868;;
+let _ARM64_SYSREG_TRCCCCTLR = 0x8870;;
+let _ARM64_SYSREG_TRCBBCTLR = 0x8878;;
+let _ARM64_SYSREG_TRCTRACEIDR = 0x8801;;
+let _ARM64_SYSREG_TRCQCTLR = 0x8809;;
+let _ARM64_SYSREG_TRCVICTLR = 0x8802;;
+let _ARM64_SYSREG_TRCVIIECTLR = 0x880A;;
+let _ARM64_SYSREG_TRCVISSCTLR = 0x8812;;
+let _ARM64_SYSREG_TRCVIPCSSCTLR = 0x881A;;
+let _ARM64_SYSREG_TRCVDCTLR = 0x8842;;
+let _ARM64_SYSREG_TRCVDSACCTLR = 0x884A;;
+let _ARM64_SYSREG_TRCVDARCCTLR = 0x8852;;
+let _ARM64_SYSREG_TRCSEQEVR0 = 0x8804;;
+let _ARM64_SYSREG_TRCSEQEVR1 = 0x880C;;
+let _ARM64_SYSREG_TRCSEQEVR2 = 0x8814;;
+let _ARM64_SYSREG_TRCSEQRSTEVR = 0x8834;;
+let _ARM64_SYSREG_TRCSEQSTR = 0x883C;;
+let _ARM64_SYSREG_TRCEXTINSELR = 0x8844;;
+let _ARM64_SYSREG_TRCCNTRLDVR0 = 0x8805;;
+let _ARM64_SYSREG_TRCCNTRLDVR1 = 0x880D;;
+let _ARM64_SYSREG_TRCCNTRLDVR2 = 0x8815;;
+let _ARM64_SYSREG_TRCCNTRLDVR3 = 0x881D;;
+let _ARM64_SYSREG_TRCCNTCTLR0 = 0x8825;;
+let _ARM64_SYSREG_TRCCNTCTLR1 = 0x882D;;
+let _ARM64_SYSREG_TRCCNTCTLR2 = 0x8835;;
+let _ARM64_SYSREG_TRCCNTCTLR3 = 0x883D;;
+let _ARM64_SYSREG_TRCCNTVR0 = 0x8845;;
+let _ARM64_SYSREG_TRCCNTVR1 = 0x884D;;
+let _ARM64_SYSREG_TRCCNTVR2 = 0x8855;;
+let _ARM64_SYSREG_TRCCNTVR3 = 0x885D;;
+let _ARM64_SYSREG_TRCIMSPEC0 = 0x8807;;
+let _ARM64_SYSREG_TRCIMSPEC1 = 0x880F;;
+let _ARM64_SYSREG_TRCIMSPEC2 = 0x8817;;
+let _ARM64_SYSREG_TRCIMSPEC3 = 0x881F;;
+let _ARM64_SYSREG_TRCIMSPEC4 = 0x8827;;
+let _ARM64_SYSREG_TRCIMSPEC5 = 0x882F;;
+let _ARM64_SYSREG_TRCIMSPEC6 = 0x8837;;
+let _ARM64_SYSREG_TRCIMSPEC7 = 0x883F;;
+let _ARM64_SYSREG_TRCRSCTLR2 = 0x8890;;
+let _ARM64_SYSREG_TRCRSCTLR3 = 0x8898;;
+let _ARM64_SYSREG_TRCRSCTLR4 = 0x88A0;;
+let _ARM64_SYSREG_TRCRSCTLR5 = 0x88A8;;
+let _ARM64_SYSREG_TRCRSCTLR6 = 0x88B0;;
+let _ARM64_SYSREG_TRCRSCTLR7 = 0x88B8;;
+let _ARM64_SYSREG_TRCRSCTLR8 = 0x88C0;;
+let _ARM64_SYSREG_TRCRSCTLR9 = 0x88C8;;
+let _ARM64_SYSREG_TRCRSCTLR10 = 0x88D0;;
+let _ARM64_SYSREG_TRCRSCTLR11 = 0x88D8;;
+let _ARM64_SYSREG_TRCRSCTLR12 = 0x88E0;;
+let _ARM64_SYSREG_TRCRSCTLR13 = 0x88E8;;
+let _ARM64_SYSREG_TRCRSCTLR14 = 0x88F0;;
+let _ARM64_SYSREG_TRCRSCTLR15 = 0x88F8;;
+let _ARM64_SYSREG_TRCRSCTLR16 = 0x8881;;
+let _ARM64_SYSREG_TRCRSCTLR17 = 0x8889;;
+let _ARM64_SYSREG_TRCRSCTLR18 = 0x8891;;
+let _ARM64_SYSREG_TRCRSCTLR19 = 0x8899;;
+let _ARM64_SYSREG_TRCRSCTLR20 = 0x88A1;;
+let _ARM64_SYSREG_TRCRSCTLR21 = 0x88A9;;
+let _ARM64_SYSREG_TRCRSCTLR22 = 0x88B1;;
+let _ARM64_SYSREG_TRCRSCTLR23 = 0x88B9;;
+let _ARM64_SYSREG_TRCRSCTLR24 = 0x88C1;;
+let _ARM64_SYSREG_TRCRSCTLR25 = 0x88C9;;
+let _ARM64_SYSREG_TRCRSCTLR26 = 0x88D1;;
+let _ARM64_SYSREG_TRCRSCTLR27 = 0x88D9;;
+let _ARM64_SYSREG_TRCRSCTLR28 = 0x88E1;;
+let _ARM64_SYSREG_TRCRSCTLR29 = 0x88E9;;
+let _ARM64_SYSREG_TRCRSCTLR30 = 0x88F1;;
+let _ARM64_SYSREG_TRCRSCTLR31 = 0x88F9;;
+let _ARM64_SYSREG_TRCSSCCR0 = 0x8882;;
+let _ARM64_SYSREG_TRCSSCCR1 = 0x888A;;
+let _ARM64_SYSREG_TRCSSCCR2 = 0x8892;;
+let _ARM64_SYSREG_TRCSSCCR3 = 0x889A;;
+let _ARM64_SYSREG_TRCSSCCR4 = 0x88A2;;
+let _ARM64_SYSREG_TRCSSCCR5 = 0x88AA;;
+let _ARM64_SYSREG_TRCSSCCR6 = 0x88B2;;
+let _ARM64_SYSREG_TRCSSCCR7 = 0x88BA;;
+let _ARM64_SYSREG_TRCSSCSR0 = 0x88C2;;
+let _ARM64_SYSREG_TRCSSCSR1 = 0x88CA;;
+let _ARM64_SYSREG_TRCSSCSR2 = 0x88D2;;
+let _ARM64_SYSREG_TRCSSCSR3 = 0x88DA;;
+let _ARM64_SYSREG_TRCSSCSR4 = 0x88E2;;
+let _ARM64_SYSREG_TRCSSCSR5 = 0x88EA;;
+let _ARM64_SYSREG_TRCSSCSR6 = 0x88F2;;
+let _ARM64_SYSREG_TRCSSCSR7 = 0x88FA;;
+let _ARM64_SYSREG_TRCSSPCICR0 = 0x8883;;
+let _ARM64_SYSREG_TRCSSPCICR1 = 0x888B;;
+let _ARM64_SYSREG_TRCSSPCICR2 = 0x8893;;
+let _ARM64_SYSREG_TRCSSPCICR3 = 0x889B;;
+let _ARM64_SYSREG_TRCSSPCICR4 = 0x88A3;;
+let _ARM64_SYSREG_TRCSSPCICR5 = 0x88AB;;
+let _ARM64_SYSREG_TRCSSPCICR6 = 0x88B3;;
+let _ARM64_SYSREG_TRCSSPCICR7 = 0x88BB;;
+let _ARM64_SYSREG_TRCPDCR = 0x88A4;;
+let _ARM64_SYSREG_TRCACVR0 = 0x8900;;
+let _ARM64_SYSREG_TRCACVR1 = 0x8910;;
+let _ARM64_SYSREG_TRCACVR2 = 0x8920;;
+let _ARM64_SYSREG_TRCACVR3 = 0x8930;;
+let _ARM64_SYSREG_TRCACVR4 = 0x8940;;
+let _ARM64_SYSREG_TRCACVR5 = 0x8950;;
+let _ARM64_SYSREG_TRCACVR6 = 0x8960;;
+let _ARM64_SYSREG_TRCACVR7 = 0x8970;;
+let _ARM64_SYSREG_TRCACVR8 = 0x8901;;
+let _ARM64_SYSREG_TRCACVR9 = 0x8911;;
+let _ARM64_SYSREG_TRCACVR10 = 0x8921;;
+let _ARM64_SYSREG_TRCACVR11 = 0x8931;;
+let _ARM64_SYSREG_TRCACVR12 = 0x8941;;
+let _ARM64_SYSREG_TRCACVR13 = 0x8951;;
+let _ARM64_SYSREG_TRCACVR14 = 0x8961;;
+let _ARM64_SYSREG_TRCACVR15 = 0x8971;;
+let _ARM64_SYSREG_TRCACATR0 = 0x8902;;
+let _ARM64_SYSREG_TRCACATR1 = 0x8912;;
+let _ARM64_SYSREG_TRCACATR2 = 0x8922;;
+let _ARM64_SYSREG_TRCACATR3 = 0x8932;;
+let _ARM64_SYSREG_TRCACATR4 = 0x8942;;
+let _ARM64_SYSREG_TRCACATR5 = 0x8952;;
+let _ARM64_SYSREG_TRCACATR6 = 0x8962;;
+let _ARM64_SYSREG_TRCACATR7 = 0x8972;;
+let _ARM64_SYSREG_TRCACATR8 = 0x8903;;
+let _ARM64_SYSREG_TRCACATR9 = 0x8913;;
+let _ARM64_SYSREG_TRCACATR10 = 0x8923;;
+let _ARM64_SYSREG_TRCACATR11 = 0x8933;;
+let _ARM64_SYSREG_TRCACATR12 = 0x8943;;
+let _ARM64_SYSREG_TRCACATR13 = 0x8953;;
+let _ARM64_SYSREG_TRCACATR14 = 0x8963;;
+let _ARM64_SYSREG_TRCACATR15 = 0x8973;;
+let _ARM64_SYSREG_TRCDVCVR0 = 0x8904;;
+let _ARM64_SYSREG_TRCDVCVR1 = 0x8924;;
+let _ARM64_SYSREG_TRCDVCVR2 = 0x8944;;
+let _ARM64_SYSREG_TRCDVCVR3 = 0x8964;;
+let _ARM64_SYSREG_TRCDVCVR4 = 0x8905;;
+let _ARM64_SYSREG_TRCDVCVR5 = 0x8925;;
+let _ARM64_SYSREG_TRCDVCVR6 = 0x8945;;
+let _ARM64_SYSREG_TRCDVCVR7 = 0x8965;;
+let _ARM64_SYSREG_TRCDVCMR0 = 0x8906;;
+let _ARM64_SYSREG_TRCDVCMR1 = 0x8926;;
+let _ARM64_SYSREG_TRCDVCMR2 = 0x8946;;
+let _ARM64_SYSREG_TRCDVCMR3 = 0x8966;;
+let _ARM64_SYSREG_TRCDVCMR4 = 0x8907;;
+let _ARM64_SYSREG_TRCDVCMR5 = 0x8927;;
+let _ARM64_SYSREG_TRCDVCMR6 = 0x8947;;
+let _ARM64_SYSREG_TRCDVCMR7 = 0x8967;;
+let _ARM64_SYSREG_TRCCIDCVR0 = 0x8980;;
+let _ARM64_SYSREG_TRCCIDCVR1 = 0x8990;;
+let _ARM64_SYSREG_TRCCIDCVR2 = 0x89A0;;
+let _ARM64_SYSREG_TRCCIDCVR3 = 0x89B0;;
+let _ARM64_SYSREG_TRCCIDCVR4 = 0x89C0;;
+let _ARM64_SYSREG_TRCCIDCVR5 = 0x89D0;;
+let _ARM64_SYSREG_TRCCIDCVR6 = 0x89E0;;
+let _ARM64_SYSREG_TRCCIDCVR7 = 0x89F0;;
+let _ARM64_SYSREG_TRCVMIDCVR0 = 0x8981;;
+let _ARM64_SYSREG_TRCVMIDCVR1 = 0x8991;;
+let _ARM64_SYSREG_TRCVMIDCVR2 = 0x89A1;;
+let _ARM64_SYSREG_TRCVMIDCVR3 = 0x89B1;;
+let _ARM64_SYSREG_TRCVMIDCVR4 = 0x89C1;;
+let _ARM64_SYSREG_TRCVMIDCVR5 = 0x89D1;;
+let _ARM64_SYSREG_TRCVMIDCVR6 = 0x89E1;;
+let _ARM64_SYSREG_TRCVMIDCVR7 = 0x89F1;;
+let _ARM64_SYSREG_TRCCIDCCTLR0 = 0x8982;;
+let _ARM64_SYSREG_TRCCIDCCTLR1 = 0x898A;;
+let _ARM64_SYSREG_TRCVMIDCCTLR0 = 0x8992;;
+let _ARM64_SYSREG_TRCVMIDCCTLR1 = 0x899A;;
+let _ARM64_SYSREG_TRCITCTRL = 0x8B84;;
+let _ARM64_SYSREG_TRCCLAIMSET = 0x8BC6;;
+let _ARM64_SYSREG_TRCCLAIMCLR = 0x8BCE;;
+let _ARM64_SYSREG_ICC_BPR1_EL1 = 0xC663;;
+let _ARM64_SYSREG_ICC_BPR0_EL1 = 0xC643;;
+let _ARM64_SYSREG_ICC_PMR_EL1 = 0xC230;;
+let _ARM64_SYSREG_ICC_CTLR_EL1 = 0xC664;;
+let _ARM64_SYSREG_ICC_CTLR_EL3 = 0xF664;;
+let _ARM64_SYSREG_ICC_SRE_EL1 = 0xC665;;
+let _ARM64_SYSREG_ICC_SRE_EL2 = 0xE64D;;
+let _ARM64_SYSREG_ICC_SRE_EL3 = 0xF665;;
+let _ARM64_SYSREG_ICC_IGRPEN0_EL1 = 0xC666;;
+let _ARM64_SYSREG_ICC_IGRPEN1_EL1 = 0xC667;;
+let _ARM64_SYSREG_ICC_IGRPEN1_EL3 = 0xF667;;
+let _ARM64_SYSREG_ICC_SEIEN_EL1 = 0xC668;;
+let _ARM64_SYSREG_ICC_AP0R0_EL1 = 0xC644;;
+let _ARM64_SYSREG_ICC_AP0R1_EL1 = 0xC645;;
+let _ARM64_SYSREG_ICC_AP0R2_EL1 = 0xC646;;
+let _ARM64_SYSREG_ICC_AP0R3_EL1 = 0xC647;;
+let _ARM64_SYSREG_ICC_AP1R0_EL1 = 0xC648;;
+let _ARM64_SYSREG_ICC_AP1R1_EL1 = 0xC649;;
+let _ARM64_SYSREG_ICC_AP1R2_EL1 = 0xC64A;;
+let _ARM64_SYSREG_ICC_AP1R3_EL1 = 0xC64B;;
+let _ARM64_SYSREG_ICH_AP0R0_EL2 = 0xE640;;
+let _ARM64_SYSREG_ICH_AP0R1_EL2 = 0xE641;;
+let _ARM64_SYSREG_ICH_AP0R2_EL2 = 0xE642;;
+let _ARM64_SYSREG_ICH_AP0R3_EL2 = 0xE643;;
+let _ARM64_SYSREG_ICH_AP1R0_EL2 = 0xE648;;
+let _ARM64_SYSREG_ICH_AP1R1_EL2 = 0xE649;;
+let _ARM64_SYSREG_ICH_AP1R2_EL2 = 0xE64A;;
+let _ARM64_SYSREG_ICH_AP1R3_EL2 = 0xE64B;;
+let _ARM64_SYSREG_ICH_HCR_EL2 = 0xE658;;
+let _ARM64_SYSREG_ICH_MISR_EL2 = 0xE65A;;
+let _ARM64_SYSREG_ICH_VMCR_EL2 = 0xE65F;;
+let _ARM64_SYSREG_ICH_VSEIR_EL2 = 0xE64C;;
+let _ARM64_SYSREG_ICH_LR0_EL2 = 0xE660;;
+let _ARM64_SYSREG_ICH_LR1_EL2 = 0xE661;;
+let _ARM64_SYSREG_ICH_LR2_EL2 = 0xE662;;
+let _ARM64_SYSREG_ICH_LR3_EL2 = 0xE663;;
+let _ARM64_SYSREG_ICH_LR4_EL2 = 0xE664;;
+let _ARM64_SYSREG_ICH_LR5_EL2 = 0xE665;;
+let _ARM64_SYSREG_ICH_LR6_EL2 = 0xE666;;
+let _ARM64_SYSREG_ICH_LR7_EL2 = 0xE667;;
+let _ARM64_SYSREG_ICH_LR8_EL2 = 0xE668;;
+let _ARM64_SYSREG_ICH_LR9_EL2 = 0xE669;;
+let _ARM64_SYSREG_ICH_LR10_EL2 = 0xE66A;;
+let _ARM64_SYSREG_ICH_LR11_EL2 = 0xE66B;;
+let _ARM64_SYSREG_ICH_LR12_EL2 = 0xE66C;;
+let _ARM64_SYSREG_ICH_LR13_EL2 = 0xE66D;;
+let _ARM64_SYSREG_ICH_LR14_EL2 = 0xE66E;;
+let _ARM64_SYSREG_ICH_LR15_EL2 = 0xE66F;;
+let _ARM64_SYSREG_PAN = 0xC213;;
+let _ARM64_SYSREG_LORSA_EL1 = 0xC520;;
+let _ARM64_SYSREG_LOREA_EL1 = 0xC521;;
+let _ARM64_SYSREG_LORN_EL1 = 0xC522;;
+let _ARM64_SYSREG_LORC_EL1 = 0xC523;;
+let _ARM64_SYSREG_TTBR1_EL2 = 0xE101;;
+let _ARM64_SYSREG_CONTEXTIDR_EL2 = 0xE681;;
+let _ARM64_SYSREG_CNTHV_TVAL_EL2 = 0xE718;;
+let _ARM64_SYSREG_CNTHV_CVAL_EL2 = 0xE71A;;
+let _ARM64_SYSREG_CNTHV_CTL_EL2 = 0xE719;;
+let _ARM64_SYSREG_SCTLR_EL12 = 0xE880;;
+let _ARM64_SYSREG_CPACR_EL12 = 0xE882;;
+let _ARM64_SYSREG_TTBR0_EL12 = 0xE900;;
+let _ARM64_SYSREG_TTBR1_EL12 = 0xE901;;
+let _ARM64_SYSREG_TCR_EL12 = 0xE902;;
+let _ARM64_SYSREG_AFSR0_EL12 = 0xEA88;;
+let _ARM64_SYSREG_AFSR1_EL12 = 0xEA89;;
+let _ARM64_SYSREG_ESR_EL12 = 0xEA90;;
+let _ARM64_SYSREG_FAR_EL12 = 0xEB00;;
+let _ARM64_SYSREG_MAIR_EL12 = 0xED10;;
+let _ARM64_SYSREG_AMAIR_EL12 = 0xED18;;
+let _ARM64_SYSREG_VBAR_EL12 = 0xEE00;;
+let _ARM64_SYSREG_CONTEXTIDR_EL12 = 0xEE81;;
+let _ARM64_SYSREG_CNTKCTL_EL12 = 0xEF08;;
+let _ARM64_SYSREG_CNTP_TVAL_EL02 = 0xEF10;;
+let _ARM64_SYSREG_CNTP_CTL_EL02 = 0xEF11;;
+let _ARM64_SYSREG_CNTP_CVAL_EL02 = 0xEF12;;
+let _ARM64_SYSREG_CNTV_TVAL_EL02 = 0xEF18;;
+let _ARM64_SYSREG_CNTV_CTL_EL02 = 0xEF19;;
+let _ARM64_SYSREG_CNTV_CVAL_EL02 = 0xEF1A;;
+let _ARM64_SYSREG_SPSR_EL12 = 0xEA00;;
+let _ARM64_SYSREG_ELR_EL12 = 0xEA01;;
+let _ARM64_SYSREG_UAO = 0xC214;;
+let _ARM64_SYSREG_PMBLIMITR_EL1 = 0xC4D0;;
+let _ARM64_SYSREG_PMBPTR_EL1 = 0xC4D1;;
+let _ARM64_SYSREG_PMBSR_EL1 = 0xC4D3;;
+let _ARM64_SYSREG_PMBIDR_EL1 = 0xC4D7;;
+let _ARM64_SYSREG_PMSCR_EL2 = 0xE4C8;;
+let _ARM64_SYSREG_PMSCR_EL12 = 0xECC8;;
+let _ARM64_SYSREG_PMSCR_EL1 = 0xC4C8;;
+let _ARM64_SYSREG_PMSICR_EL1 = 0xC4CA;;
+let _ARM64_SYSREG_PMSIRR_EL1 = 0xC4CB;;
+let _ARM64_SYSREG_PMSFCR_EL1 = 0xC4CC;;
+let _ARM64_SYSREG_PMSEVFR_EL1 = 0xC4CD;;
+let _ARM64_SYSREG_PMSLATFR_EL1 = 0xC4CE;;
+let _ARM64_SYSREG_PMSIDR_EL1 = 0xC4CF;;
+let _ARM64_SYSREG_ERRSELR_EL1 = 0xC299;;
+let _ARM64_SYSREG_ERXCTLR_EL1 = 0xC2A1;;
+let _ARM64_SYSREG_ERXSTATUS_EL1 = 0xC2A2;;
+let _ARM64_SYSREG_ERXADDR_EL1 = 0xC2A3;;
+let _ARM64_SYSREG_ERXMISC0_EL1 = 0xC2A8;;
+let _ARM64_SYSREG_ERXMISC1_EL1 = 0xC2A9;;
+let _ARM64_SYSREG_DISR_EL1 = 0xC609;;
+let _ARM64_SYSREG_VDISR_EL2 = 0xE609;;
+let _ARM64_SYSREG_VSESR_EL2 = 0xE293;;
+let _ARM64_SYSREG_APIAKEYLO_EL1 = 0xC108;;
+let _ARM64_SYSREG_APIAKEYHI_EL1 = 0xC109;;
+let _ARM64_SYSREG_APIBKEYLO_EL1 = 0xC10A;;
+let _ARM64_SYSREG_APIBKEYHI_EL1 = 0xC10B;;
+let _ARM64_SYSREG_APDAKEYLO_EL1 = 0xC110;;
+let _ARM64_SYSREG_APDAKEYHI_EL1 = 0xC111;;
+let _ARM64_SYSREG_APDBKEYLO_EL1 = 0xC112;;
+let _ARM64_SYSREG_APDBKEYHI_EL1 = 0xC113;;
+let _ARM64_SYSREG_APGAKEYLO_EL1 = 0xC118;;
+let _ARM64_SYSREG_APGAKEYHI_EL1 = 0xC119;;
+let _ARM64_SYSREG_VSTCR_EL2 = 0xE132;;
+let _ARM64_SYSREG_VSTTBR_EL2 = 0xE130;;
+let _ARM64_SYSREG_CNTHVS_TVAL_EL2 = 0xE720;;
+let _ARM64_SYSREG_CNTHVS_CVAL_EL2 = 0xE722;;
+let _ARM64_SYSREG_CNTHVS_CTL_EL2 = 0xE721;;
+let _ARM64_SYSREG_CNTHPS_TVAL_EL2 = 0xE728;;
+let _ARM64_SYSREG_CNTHPS_CVAL_EL2 = 0xE72A;;
+let _ARM64_SYSREG_CNTHPS_CTL_EL2 = 0xE729;;
+let _ARM64_SYSREG_SDER32_EL2 = 0xE099;;
+let _ARM64_SYSREG_ERXPFGCTL_EL1 = 0xC2A5;;
+let _ARM64_SYSREG_ERXPFGCDN_EL1 = 0xC2A6;;
+let _ARM64_SYSREG_ERXTS_EL1 = 0xC2AF;;
+let _ARM64_SYSREG_ERXMISC2_EL1 = 0xC2AA;;
+let _ARM64_SYSREG_ERXMISC3_EL1 = 0xC2AB;;
+let _ARM64_SYSREG_ERXPFGF_EL1 = 0xC2A4;;
+let _ARM64_SYSREG_MPAM0_EL1 = 0xC529;;
+let _ARM64_SYSREG_MPAM1_EL1 = 0xC528;;
+let _ARM64_SYSREG_MPAM2_EL2 = 0xE528;;
+let _ARM64_SYSREG_MPAM3_EL3 = 0xF528;;
+let _ARM64_SYSREG_MPAM1_EL12 = 0xED28;;
+let _ARM64_SYSREG_MPAMHCR_EL2 = 0xE520;;
+let _ARM64_SYSREG_MPAMVPMV_EL2 = 0xE521;;
+let _ARM64_SYSREG_MPAMVPM0_EL2 = 0xE530;;
+let _ARM64_SYSREG_MPAMVPM1_EL2 = 0xE531;;
+let _ARM64_SYSREG_MPAMVPM2_EL2 = 0xE532;;
+let _ARM64_SYSREG_MPAMVPM3_EL2 = 0xE533;;
+let _ARM64_SYSREG_MPAMVPM4_EL2 = 0xE534;;
+let _ARM64_SYSREG_MPAMVPM5_EL2 = 0xE535;;
+let _ARM64_SYSREG_MPAMVPM6_EL2 = 0xE536;;
+let _ARM64_SYSREG_MPAMVPM7_EL2 = 0xE537;;
+let _ARM64_SYSREG_MPAMIDR_EL1 = 0xC524;;
+let _ARM64_SYSREG_AMCR_EL0 = 0xDE90;;
+let _ARM64_SYSREG_AMCFGR_EL0 = 0xDE91;;
+let _ARM64_SYSREG_AMCGCR_EL0 = 0xDE92;;
+let _ARM64_SYSREG_AMUSERENR_EL0 = 0xDE93;;
+let _ARM64_SYSREG_AMCNTENCLR0_EL0 = 0xDE94;;
+let _ARM64_SYSREG_AMCNTENSET0_EL0 = 0xDE95;;
+let _ARM64_SYSREG_AMEVCNTR00_EL0 = 0xDEA0;;
+let _ARM64_SYSREG_AMEVCNTR01_EL0 = 0xDEA1;;
+let _ARM64_SYSREG_AMEVCNTR02_EL0 = 0xDEA2;;
+let _ARM64_SYSREG_AMEVCNTR03_EL0 = 0xDEA3;;
+let _ARM64_SYSREG_AMEVTYPER00_EL0 = 0xDEB0;;
+let _ARM64_SYSREG_AMEVTYPER01_EL0 = 0xDEB1;;
+let _ARM64_SYSREG_AMEVTYPER02_EL0 = 0xDEB2;;
+let _ARM64_SYSREG_AMEVTYPER03_EL0 = 0xDEB3;;
+let _ARM64_SYSREG_AMCNTENCLR1_EL0 = 0xDE98;;
+let _ARM64_SYSREG_AMCNTENSET1_EL0 = 0xDE99;;
+let _ARM64_SYSREG_AMEVCNTR10_EL0 = 0xDEE0;;
+let _ARM64_SYSREG_AMEVCNTR11_EL0 = 0xDEE1;;
+let _ARM64_SYSREG_AMEVCNTR12_EL0 = 0xDEE2;;
+let _ARM64_SYSREG_AMEVCNTR13_EL0 = 0xDEE3;;
+let _ARM64_SYSREG_AMEVCNTR14_EL0 = 0xDEE4;;
+let _ARM64_SYSREG_AMEVCNTR15_EL0 = 0xDEE5;;
+let _ARM64_SYSREG_AMEVCNTR16_EL0 = 0xDEE6;;
+let _ARM64_SYSREG_AMEVCNTR17_EL0 = 0xDEE7;;
+let _ARM64_SYSREG_AMEVCNTR18_EL0 = 0xDEE8;;
+let _ARM64_SYSREG_AMEVCNTR19_EL0 = 0xDEE9;;
+let _ARM64_SYSREG_AMEVCNTR110_EL0 = 0xDEEA;;
+let _ARM64_SYSREG_AMEVCNTR111_EL0 = 0xDEEB;;
+let _ARM64_SYSREG_AMEVCNTR112_EL0 = 0xDEEC;;
+let _ARM64_SYSREG_AMEVCNTR113_EL0 = 0xDEED;;
+let _ARM64_SYSREG_AMEVCNTR114_EL0 = 0xDEEE;;
+let _ARM64_SYSREG_AMEVCNTR115_EL0 = 0xDEEF;;
+let _ARM64_SYSREG_AMEVTYPER10_EL0 = 0xDEF0;;
+let _ARM64_SYSREG_AMEVTYPER11_EL0 = 0xDEF1;;
+let _ARM64_SYSREG_AMEVTYPER12_EL0 = 0xDEF2;;
+let _ARM64_SYSREG_AMEVTYPER13_EL0 = 0xDEF3;;
+let _ARM64_SYSREG_AMEVTYPER14_EL0 = 0xDEF4;;
+let _ARM64_SYSREG_AMEVTYPER15_EL0 = 0xDEF5;;
+let _ARM64_SYSREG_AMEVTYPER16_EL0 = 0xDEF6;;
+let _ARM64_SYSREG_AMEVTYPER17_EL0 = 0xDEF7;;
+let _ARM64_SYSREG_AMEVTYPER18_EL0 = 0xDEF8;;
+let _ARM64_SYSREG_AMEVTYPER19_EL0 = 0xDEF9;;
+let _ARM64_SYSREG_AMEVTYPER110_EL0 = 0xDEFA;;
+let _ARM64_SYSREG_AMEVTYPER111_EL0 = 0xDEFB;;
+let _ARM64_SYSREG_AMEVTYPER112_EL0 = 0xDEFC;;
+let _ARM64_SYSREG_AMEVTYPER113_EL0 = 0xDEFD;;
+let _ARM64_SYSREG_AMEVTYPER114_EL0 = 0xDEFE;;
+let _ARM64_SYSREG_AMEVTYPER115_EL0 = 0xDEFF;;
+let _ARM64_SYSREG_TRFCR_EL1 = 0xC091;;
+let _ARM64_SYSREG_TRFCR_EL2 = 0xE091;;
+let _ARM64_SYSREG_TRFCR_EL12 = 0xE891;;
+let _ARM64_SYSREG_DIT = 0xDA15;;
+let _ARM64_SYSREG_VNCR_EL2 = 0xE110;;
+let _ARM64_SYSREG_ZCR_EL1 = 0xC090;;
+let _ARM64_SYSREG_ZCR_EL2 = 0xE090;;
+let _ARM64_SYSREG_ZCR_EL3 = 0xF090;;
+let _ARM64_SYSREG_ZCR_EL12 = 0xE890;;
+let _ARM64_SYSREG_CPM_IOACC_CTL_EL3 = 0xFF90;;
+
+let _ARM64_PSTATE_INVALID = 0;;
+let _ARM64_PSTATE_SPSEL = 0x05;;
+let _ARM64_PSTATE_DAIFSET = 0x1e;;
+let _ARM64_PSTATE_DAIFCLR = 0x1f;;
+let _ARM64_PSTATE_PAN = 0x4;;
+let _ARM64_PSTATE_UAO = 0x3;;
+let _ARM64_PSTATE_DIT = 0x1a;;
+
+let _ARM64_VAS_INVALID = 0;;
+let _ARM64_VAS_16B = 1;;
+let _ARM64_VAS_8B = 2;;
+let _ARM64_VAS_4B = 3;;
+let _ARM64_VAS_1B = 4;;
+let _ARM64_VAS_8H = 5;;
+let _ARM64_VAS_4H = 6;;
+let _ARM64_VAS_2H = 7;;
+let _ARM64_VAS_1H = 8;;
+let _ARM64_VAS_4S = 9;;
+let _ARM64_VAS_2S = 10;;
+let _ARM64_VAS_1S = 11;;
+let _ARM64_VAS_2D = 12;;
+let _ARM64_VAS_1D = 13;;
+let _ARM64_VAS_1Q = 14;;
+
+let _ARM64_BARRIER_INVALID = 0;;
+let _ARM64_BARRIER_OSHLD = 0x1;;
+let _ARM64_BARRIER_OSHST = 0x2;;
+let _ARM64_BARRIER_OSH = 0x3;;
+let _ARM64_BARRIER_NSHLD = 0x5;;
+let _ARM64_BARRIER_NSHST = 0x6;;
+let _ARM64_BARRIER_NSH = 0x7;;
+let _ARM64_BARRIER_ISHLD = 0x9;;
+let _ARM64_BARRIER_ISHST = 0xa;;
+let _ARM64_BARRIER_ISH = 0xb;;
+let _ARM64_BARRIER_LD = 0xd;;
+let _ARM64_BARRIER_ST = 0xe;;
+let _ARM64_BARRIER_SY = 0xf;;
+
+let _ARM64_OP_INVALID = 0;;
+let _ARM64_OP_REG = 1;;
+let _ARM64_OP_IMM = 2;;
+let _ARM64_OP_MEM = 3;;
+let _ARM64_OP_FP = 4;;
+let _ARM64_OP_CIMM = 64;;
+let _ARM64_OP_REG_MRS = 65;;
+let _ARM64_OP_REG_MSR = 66;;
+let _ARM64_OP_PSTATE = 67;;
+let _ARM64_OP_SYS = 68;;
+let _ARM64_OP_PREFETCH = 69;;
+let _ARM64_OP_BARRIER = 70;;
+
+let _ARM64_TLBI_INVALID = 0;;
+let _ARM64_TLBI_IPAS2E1IS = 1;;
+let _ARM64_TLBI_IPAS2LE1IS = 2;;
+let _ARM64_TLBI_VMALLE1IS = 3;;
+let _ARM64_TLBI_ALLE2IS = 4;;
+let _ARM64_TLBI_ALLE3IS = 5;;
+let _ARM64_TLBI_VAE1IS = 6;;
+let _ARM64_TLBI_VAE2IS = 7;;
+let _ARM64_TLBI_VAE3IS = 8;;
+let _ARM64_TLBI_ASIDE1IS = 9;;
+let _ARM64_TLBI_VAAE1IS = 10;;
+let _ARM64_TLBI_ALLE1IS = 11;;
+let _ARM64_TLBI_VALE1IS = 12;;
+let _ARM64_TLBI_VALE2IS = 13;;
+let _ARM64_TLBI_VALE3IS = 14;;
+let _ARM64_TLBI_VMALLS12E1IS = 15;;
+let _ARM64_TLBI_VAALE1IS = 16;;
+let _ARM64_TLBI_IPAS2E1 = 17;;
+let _ARM64_TLBI_IPAS2LE1 = 18;;
+let _ARM64_TLBI_VMALLE1 = 19;;
+let _ARM64_TLBI_ALLE2 = 20;;
+let _ARM64_TLBI_ALLE3 = 21;;
+let _ARM64_TLBI_VAE1 = 22;;
+let _ARM64_TLBI_VAE2 = 23;;
+let _ARM64_TLBI_VAE3 = 24;;
+let _ARM64_TLBI_ASIDE1 = 25;;
+let _ARM64_TLBI_VAAE1 = 26;;
+let _ARM64_TLBI_ALLE1 = 27;;
+let _ARM64_TLBI_VALE1 = 28;;
+let _ARM64_TLBI_VALE2 = 29;;
+let _ARM64_TLBI_VALE3 = 30;;
+let _ARM64_TLBI_VMALLS12E1 = 31;;
+let _ARM64_TLBI_VAALE1 = 32;;
+let _ARM64_TLBI_VMALLE1OS = 33;;
+let _ARM64_TLBI_VAE1OS = 34;;
+let _ARM64_TLBI_ASIDE1OS = 35;;
+let _ARM64_TLBI_VAAE1OS = 36;;
+let _ARM64_TLBI_VALE1OS = 37;;
+let _ARM64_TLBI_VAALE1OS = 38;;
+let _ARM64_TLBI_IPAS2E1OS = 39;;
+let _ARM64_TLBI_IPAS2LE1OS = 40;;
+let _ARM64_TLBI_VAE2OS = 41;;
+let _ARM64_TLBI_VALE2OS = 42;;
+let _ARM64_TLBI_VMALLS12E1OS = 43;;
+let _ARM64_TLBI_VAE3OS = 44;;
+let _ARM64_TLBI_VALE3OS = 45;;
+let _ARM64_TLBI_ALLE2OS = 46;;
+let _ARM64_TLBI_ALLE1OS = 47;;
+let _ARM64_TLBI_ALLE3OS = 48;;
+let _ARM64_TLBI_RVAE1 = 49;;
+let _ARM64_TLBI_RVAAE1 = 50;;
+let _ARM64_TLBI_RVALE1 = 51;;
+let _ARM64_TLBI_RVAALE1 = 52;;
+let _ARM64_TLBI_RVAE1IS = 53;;
+let _ARM64_TLBI_RVAAE1IS = 54;;
+let _ARM64_TLBI_RVALE1IS = 55;;
+let _ARM64_TLBI_RVAALE1IS = 56;;
+let _ARM64_TLBI_RVAE1OS = 57;;
+let _ARM64_TLBI_RVAAE1OS = 58;;
+let _ARM64_TLBI_RVALE1OS = 59;;
+let _ARM64_TLBI_RVAALE1OS = 60;;
+let _ARM64_TLBI_RIPAS2E1IS = 61;;
+let _ARM64_TLBI_RIPAS2LE1IS = 62;;
+let _ARM64_TLBI_RIPAS2E1 = 63;;
+let _ARM64_TLBI_RIPAS2LE1 = 64;;
+let _ARM64_TLBI_RIPAS2E1OS = 65;;
+let _ARM64_TLBI_RIPAS2LE1OS = 66;;
+let _ARM64_TLBI_RVAE2 = 67;;
+let _ARM64_TLBI_RVALE2 = 68;;
+let _ARM64_TLBI_RVAE2IS = 69;;
+let _ARM64_TLBI_RVALE2IS = 70;;
+let _ARM64_TLBI_RVAE2OS = 71;;
+let _ARM64_TLBI_RVALE2OS = 72;;
+let _ARM64_TLBI_RVAE3 = 73;;
+let _ARM64_TLBI_RVALE3 = 74;;
+let _ARM64_TLBI_RVAE3IS = 75;;
+let _ARM64_TLBI_RVALE3IS = 76;;
+let _ARM64_TLBI_RVAE3OS = 77;;
+let _ARM64_TLBI_RVALE3OS = 78;;
+let _ARM64_AT_S1E1R = 79;;
+let _ARM64_AT_S1E2R = 80;;
+let _ARM64_AT_S1E3R = 81;;
+let _ARM64_AT_S1E1W = 82;;
+let _ARM64_AT_S1E2W = 83;;
+let _ARM64_AT_S1E3W = 84;;
+let _ARM64_AT_S1E0R = 85;;
+let _ARM64_AT_S1E0W = 86;;
+let _ARM64_AT_S12E1R = 87;;
+let _ARM64_AT_S12E1W = 88;;
+let _ARM64_AT_S12E0R = 89;;
+let _ARM64_AT_S12E0W = 90;;
+let _ARM64_AT_S1E1RP = 91;;
+let _ARM64_AT_S1E1WP = 92;;
+
+let _ARM64_DC_INVALID = 0;;
+let _ARM64_DC_ZVA = 1;;
+let _ARM64_DC_IVAC = 2;;
+let _ARM64_DC_ISW = 3;;
+let _ARM64_DC_CVAC = 4;;
+let _ARM64_DC_CSW = 5;;
+let _ARM64_DC_CVAU = 6;;
+let _ARM64_DC_CIVAC = 7;;
+let _ARM64_DC_CISW = 8;;
+let _ARM64_DC_CVAP = 9;;
+
+let _ARM64_IC_INVALID = 0;;
+let _ARM64_IC_IALLUIS = 1;;
+let _ARM64_IC_IALLU = 2;;
+let _ARM64_IC_IVAU = 3;;
+
+let _ARM64_PRFM_INVALID = 0;;
+let _ARM64_PRFM_PLDL1KEEP = 0x00+1;;
+let _ARM64_PRFM_PLDL1STRM = 0x01+1;;
+let _ARM64_PRFM_PLDL2KEEP = 0x02+1;;
+let _ARM64_PRFM_PLDL2STRM = 0x03+1;;
+let _ARM64_PRFM_PLDL3KEEP = 0x04+1;;
+let _ARM64_PRFM_PLDL3STRM = 0x05+1;;
+let _ARM64_PRFM_PLIL1KEEP = 0x08+1;;
+let _ARM64_PRFM_PLIL1STRM = 0x09+1;;
+let _ARM64_PRFM_PLIL2KEEP = 0x0a+1;;
+let _ARM64_PRFM_PLIL2STRM = 0x0b+1;;
+let _ARM64_PRFM_PLIL3KEEP = 0x0c+1;;
+let _ARM64_PRFM_PLIL3STRM = 0x0d+1;;
+let _ARM64_PRFM_PSTL1KEEP = 0x10+1;;
+let _ARM64_PRFM_PSTL1STRM = 0x11+1;;
+let _ARM64_PRFM_PSTL2KEEP = 0x12+1;;
+let _ARM64_PRFM_PSTL2STRM = 0x13+1;;
+let _ARM64_PRFM_PSTL3KEEP = 0x14+1;;
+let _ARM64_PRFM_PSTL3STRM = 0x15+1;;
+
+let _ARM64_REG_INVALID = 0;;
+let _ARM64_REG_FFR = 1;;
+let _ARM64_REG_FP = 2;;
+let _ARM64_REG_LR = 3;;
+let _ARM64_REG_NZCV = 4;;
+let _ARM64_REG_SP = 5;;
+let _ARM64_REG_WSP = 6;;
+let _ARM64_REG_WZR = 7;;
+let _ARM64_REG_XZR = 8;;
+let _ARM64_REG_B0 = 9;;
+let _ARM64_REG_B1 = 10;;
+let _ARM64_REG_B2 = 11;;
+let _ARM64_REG_B3 = 12;;
+let _ARM64_REG_B4 = 13;;
+let _ARM64_REG_B5 = 14;;
+let _ARM64_REG_B6 = 15;;
+let _ARM64_REG_B7 = 16;;
+let _ARM64_REG_B8 = 17;;
+let _ARM64_REG_B9 = 18;;
+let _ARM64_REG_B10 = 19;;
+let _ARM64_REG_B11 = 20;;
+let _ARM64_REG_B12 = 21;;
+let _ARM64_REG_B13 = 22;;
+let _ARM64_REG_B14 = 23;;
+let _ARM64_REG_B15 = 24;;
+let _ARM64_REG_B16 = 25;;
+let _ARM64_REG_B17 = 26;;
+let _ARM64_REG_B18 = 27;;
+let _ARM64_REG_B19 = 28;;
+let _ARM64_REG_B20 = 29;;
+let _ARM64_REG_B21 = 30;;
+let _ARM64_REG_B22 = 31;;
+let _ARM64_REG_B23 = 32;;
+let _ARM64_REG_B24 = 33;;
+let _ARM64_REG_B25 = 34;;
+let _ARM64_REG_B26 = 35;;
+let _ARM64_REG_B27 = 36;;
+let _ARM64_REG_B28 = 37;;
+let _ARM64_REG_B29 = 38;;
+let _ARM64_REG_B30 = 39;;
+let _ARM64_REG_B31 = 40;;
+let _ARM64_REG_D0 = 41;;
+let _ARM64_REG_D1 = 42;;
+let _ARM64_REG_D2 = 43;;
+let _ARM64_REG_D3 = 44;;
+let _ARM64_REG_D4 = 45;;
+let _ARM64_REG_D5 = 46;;
+let _ARM64_REG_D6 = 47;;
+let _ARM64_REG_D7 = 48;;
+let _ARM64_REG_D8 = 49;;
+let _ARM64_REG_D9 = 50;;
+let _ARM64_REG_D10 = 51;;
+let _ARM64_REG_D11 = 52;;
+let _ARM64_REG_D12 = 53;;
+let _ARM64_REG_D13 = 54;;
+let _ARM64_REG_D14 = 55;;
+let _ARM64_REG_D15 = 56;;
+let _ARM64_REG_D16 = 57;;
+let _ARM64_REG_D17 = 58;;
+let _ARM64_REG_D18 = 59;;
+let _ARM64_REG_D19 = 60;;
+let _ARM64_REG_D20 = 61;;
+let _ARM64_REG_D21 = 62;;
+let _ARM64_REG_D22 = 63;;
+let _ARM64_REG_D23 = 64;;
+let _ARM64_REG_D24 = 65;;
+let _ARM64_REG_D25 = 66;;
+let _ARM64_REG_D26 = 67;;
+let _ARM64_REG_D27 = 68;;
+let _ARM64_REG_D28 = 69;;
+let _ARM64_REG_D29 = 70;;
+let _ARM64_REG_D30 = 71;;
+let _ARM64_REG_D31 = 72;;
+let _ARM64_REG_H0 = 73;;
+let _ARM64_REG_H1 = 74;;
+let _ARM64_REG_H2 = 75;;
+let _ARM64_REG_H3 = 76;;
+let _ARM64_REG_H4 = 77;;
+let _ARM64_REG_H5 = 78;;
+let _ARM64_REG_H6 = 79;;
+let _ARM64_REG_H7 = 80;;
+let _ARM64_REG_H8 = 81;;
+let _ARM64_REG_H9 = 82;;
+let _ARM64_REG_H10 = 83;;
+let _ARM64_REG_H11 = 84;;
+let _ARM64_REG_H12 = 85;;
+let _ARM64_REG_H13 = 86;;
+let _ARM64_REG_H14 = 87;;
+let _ARM64_REG_H15 = 88;;
+let _ARM64_REG_H16 = 89;;
+let _ARM64_REG_H17 = 90;;
+let _ARM64_REG_H18 = 91;;
+let _ARM64_REG_H19 = 92;;
+let _ARM64_REG_H20 = 93;;
+let _ARM64_REG_H21 = 94;;
+let _ARM64_REG_H22 = 95;;
+let _ARM64_REG_H23 = 96;;
+let _ARM64_REG_H24 = 97;;
+let _ARM64_REG_H25 = 98;;
+let _ARM64_REG_H26 = 99;;
+let _ARM64_REG_H27 = 100;;
+let _ARM64_REG_H28 = 101;;
+let _ARM64_REG_H29 = 102;;
+let _ARM64_REG_H30 = 103;;
+let _ARM64_REG_H31 = 104;;
+let _ARM64_REG_P0 = 105;;
+let _ARM64_REG_P1 = 106;;
+let _ARM64_REG_P2 = 107;;
+let _ARM64_REG_P3 = 108;;
+let _ARM64_REG_P4 = 109;;
+let _ARM64_REG_P5 = 110;;
+let _ARM64_REG_P6 = 111;;
+let _ARM64_REG_P7 = 112;;
+let _ARM64_REG_P8 = 113;;
+let _ARM64_REG_P9 = 114;;
+let _ARM64_REG_P10 = 115;;
+let _ARM64_REG_P11 = 116;;
+let _ARM64_REG_P12 = 117;;
+let _ARM64_REG_P13 = 118;;
+let _ARM64_REG_P14 = 119;;
+let _ARM64_REG_P15 = 120;;
+let _ARM64_REG_Q0 = 121;;
+let _ARM64_REG_Q1 = 122;;
+let _ARM64_REG_Q2 = 123;;
+let _ARM64_REG_Q3 = 124;;
+let _ARM64_REG_Q4 = 125;;
+let _ARM64_REG_Q5 = 126;;
+let _ARM64_REG_Q6 = 127;;
+let _ARM64_REG_Q7 = 128;;
+let _ARM64_REG_Q8 = 129;;
+let _ARM64_REG_Q9 = 130;;
+let _ARM64_REG_Q10 = 131;;
+let _ARM64_REG_Q11 = 132;;
+let _ARM64_REG_Q12 = 133;;
+let _ARM64_REG_Q13 = 134;;
+let _ARM64_REG_Q14 = 135;;
+let _ARM64_REG_Q15 = 136;;
+let _ARM64_REG_Q16 = 137;;
+let _ARM64_REG_Q17 = 138;;
+let _ARM64_REG_Q18 = 139;;
+let _ARM64_REG_Q19 = 140;;
+let _ARM64_REG_Q20 = 141;;
+let _ARM64_REG_Q21 = 142;;
+let _ARM64_REG_Q22 = 143;;
+let _ARM64_REG_Q23 = 144;;
+let _ARM64_REG_Q24 = 145;;
+let _ARM64_REG_Q25 = 146;;
+let _ARM64_REG_Q26 = 147;;
+let _ARM64_REG_Q27 = 148;;
+let _ARM64_REG_Q28 = 149;;
+let _ARM64_REG_Q29 = 150;;
+let _ARM64_REG_Q30 = 151;;
+let _ARM64_REG_Q31 = 152;;
+let _ARM64_REG_S0 = 153;;
+let _ARM64_REG_S1 = 154;;
+let _ARM64_REG_S2 = 155;;
+let _ARM64_REG_S3 = 156;;
+let _ARM64_REG_S4 = 157;;
+let _ARM64_REG_S5 = 158;;
+let _ARM64_REG_S6 = 159;;
+let _ARM64_REG_S7 = 160;;
+let _ARM64_REG_S8 = 161;;
+let _ARM64_REG_S9 = 162;;
+let _ARM64_REG_S10 = 163;;
+let _ARM64_REG_S11 = 164;;
+let _ARM64_REG_S12 = 165;;
+let _ARM64_REG_S13 = 166;;
+let _ARM64_REG_S14 = 167;;
+let _ARM64_REG_S15 = 168;;
+let _ARM64_REG_S16 = 169;;
+let _ARM64_REG_S17 = 170;;
+let _ARM64_REG_S18 = 171;;
+let _ARM64_REG_S19 = 172;;
+let _ARM64_REG_S20 = 173;;
+let _ARM64_REG_S21 = 174;;
+let _ARM64_REG_S22 = 175;;
+let _ARM64_REG_S23 = 176;;
+let _ARM64_REG_S24 = 177;;
+let _ARM64_REG_S25 = 178;;
+let _ARM64_REG_S26 = 179;;
+let _ARM64_REG_S27 = 180;;
+let _ARM64_REG_S28 = 181;;
+let _ARM64_REG_S29 = 182;;
+let _ARM64_REG_S30 = 183;;
+let _ARM64_REG_S31 = 184;;
+let _ARM64_REG_W0 = 185;;
+let _ARM64_REG_W1 = 186;;
+let _ARM64_REG_W2 = 187;;
+let _ARM64_REG_W3 = 188;;
+let _ARM64_REG_W4 = 189;;
+let _ARM64_REG_W5 = 190;;
+let _ARM64_REG_W6 = 191;;
+let _ARM64_REG_W7 = 192;;
+let _ARM64_REG_W8 = 193;;
+let _ARM64_REG_W9 = 194;;
+let _ARM64_REG_W10 = 195;;
+let _ARM64_REG_W11 = 196;;
+let _ARM64_REG_W12 = 197;;
+let _ARM64_REG_W13 = 198;;
+let _ARM64_REG_W14 = 199;;
+let _ARM64_REG_W15 = 200;;
+let _ARM64_REG_W16 = 201;;
+let _ARM64_REG_W17 = 202;;
+let _ARM64_REG_W18 = 203;;
+let _ARM64_REG_W19 = 204;;
+let _ARM64_REG_W20 = 205;;
+let _ARM64_REG_W21 = 206;;
+let _ARM64_REG_W22 = 207;;
+let _ARM64_REG_W23 = 208;;
+let _ARM64_REG_W24 = 209;;
+let _ARM64_REG_W25 = 210;;
+let _ARM64_REG_W26 = 211;;
+let _ARM64_REG_W27 = 212;;
+let _ARM64_REG_W28 = 213;;
+let _ARM64_REG_W29 = 214;;
+let _ARM64_REG_W30 = 215;;
+let _ARM64_REG_X0 = 216;;
+let _ARM64_REG_X1 = 217;;
+let _ARM64_REG_X2 = 218;;
+let _ARM64_REG_X3 = 219;;
+let _ARM64_REG_X4 = 220;;
+let _ARM64_REG_X5 = 221;;
+let _ARM64_REG_X6 = 222;;
+let _ARM64_REG_X7 = 223;;
+let _ARM64_REG_X8 = 224;;
+let _ARM64_REG_X9 = 225;;
+let _ARM64_REG_X10 = 226;;
+let _ARM64_REG_X11 = 227;;
+let _ARM64_REG_X12 = 228;;
+let _ARM64_REG_X13 = 229;;
+let _ARM64_REG_X14 = 230;;
+let _ARM64_REG_X15 = 231;;
+let _ARM64_REG_X16 = 232;;
+let _ARM64_REG_X17 = 233;;
+let _ARM64_REG_X18 = 234;;
+let _ARM64_REG_X19 = 235;;
+let _ARM64_REG_X20 = 236;;
+let _ARM64_REG_X21 = 237;;
+let _ARM64_REG_X22 = 238;;
+let _ARM64_REG_X23 = 239;;
+let _ARM64_REG_X24 = 240;;
+let _ARM64_REG_X25 = 241;;
+let _ARM64_REG_X26 = 242;;
+let _ARM64_REG_X27 = 243;;
+let _ARM64_REG_X28 = 244;;
+let _ARM64_REG_Z0 = 245;;
+let _ARM64_REG_Z1 = 246;;
+let _ARM64_REG_Z2 = 247;;
+let _ARM64_REG_Z3 = 248;;
+let _ARM64_REG_Z4 = 249;;
+let _ARM64_REG_Z5 = 250;;
+let _ARM64_REG_Z6 = 251;;
+let _ARM64_REG_Z7 = 252;;
+let _ARM64_REG_Z8 = 253;;
+let _ARM64_REG_Z9 = 254;;
+let _ARM64_REG_Z10 = 255;;
+let _ARM64_REG_Z11 = 256;;
+let _ARM64_REG_Z12 = 257;;
+let _ARM64_REG_Z13 = 258;;
+let _ARM64_REG_Z14 = 259;;
+let _ARM64_REG_Z15 = 260;;
+let _ARM64_REG_Z16 = 261;;
+let _ARM64_REG_Z17 = 262;;
+let _ARM64_REG_Z18 = 263;;
+let _ARM64_REG_Z19 = 264;;
+let _ARM64_REG_Z20 = 265;;
+let _ARM64_REG_Z21 = 266;;
+let _ARM64_REG_Z22 = 267;;
+let _ARM64_REG_Z23 = 268;;
+let _ARM64_REG_Z24 = 269;;
+let _ARM64_REG_Z25 = 270;;
+let _ARM64_REG_Z26 = 271;;
+let _ARM64_REG_Z27 = 272;;
+let _ARM64_REG_Z28 = 273;;
+let _ARM64_REG_Z29 = 274;;
+let _ARM64_REG_Z30 = 275;;
+let _ARM64_REG_Z31 = 276;;
+let _ARM64_REG_V0 = 277;;
+let _ARM64_REG_V1 = 278;;
+let _ARM64_REG_V2 = 279;;
+let _ARM64_REG_V3 = 280;;
+let _ARM64_REG_V4 = 281;;
+let _ARM64_REG_V5 = 282;;
+let _ARM64_REG_V6 = 283;;
+let _ARM64_REG_V7 = 284;;
+let _ARM64_REG_V8 = 285;;
+let _ARM64_REG_V9 = 286;;
+let _ARM64_REG_V10 = 287;;
+let _ARM64_REG_V11 = 288;;
+let _ARM64_REG_V12 = 289;;
+let _ARM64_REG_V13 = 290;;
+let _ARM64_REG_V14 = 291;;
+let _ARM64_REG_V15 = 292;;
+let _ARM64_REG_V16 = 293;;
+let _ARM64_REG_V17 = 294;;
+let _ARM64_REG_V18 = 295;;
+let _ARM64_REG_V19 = 296;;
+let _ARM64_REG_V20 = 297;;
+let _ARM64_REG_V21 = 298;;
+let _ARM64_REG_V22 = 299;;
+let _ARM64_REG_V23 = 300;;
+let _ARM64_REG_V24 = 301;;
+let _ARM64_REG_V25 = 302;;
+let _ARM64_REG_V26 = 303;;
+let _ARM64_REG_V27 = 304;;
+let _ARM64_REG_V28 = 305;;
+let _ARM64_REG_V29 = 306;;
+let _ARM64_REG_V30 = 307;;
+let _ARM64_REG_V31 = 308;;
+let _ARM64_REG_ENDING = 309;;
+let _ARM64_REG_IP0 = _ARM64_REG_X16;;
+let _ARM64_REG_IP1 = _ARM64_REG_X17;;
+let _ARM64_REG_X29 = _ARM64_REG_FP;;
+let _ARM64_REG_X30 = _ARM64_REG_LR;;
+
+let _ARM64_INS_INVALID = 0;;
+let _ARM64_INS_ABS = 1;;
+let _ARM64_INS_ADC = 2;;
+let _ARM64_INS_ADCS = 3;;
+let _ARM64_INS_ADD = 4;;
+let _ARM64_INS_ADDHN = 5;;
+let _ARM64_INS_ADDHN2 = 6;;
+let _ARM64_INS_ADDP = 7;;
+let _ARM64_INS_ADDPL = 8;;
+let _ARM64_INS_ADDS = 9;;
+let _ARM64_INS_ADDV = 10;;
+let _ARM64_INS_ADDVL = 11;;
+let _ARM64_INS_ADR = 12;;
+let _ARM64_INS_ADRP = 13;;
+let _ARM64_INS_AESD = 14;;
+let _ARM64_INS_AESE = 15;;
+let _ARM64_INS_AESIMC = 16;;
+let _ARM64_INS_AESMC = 17;;
+let _ARM64_INS_AND = 18;;
+let _ARM64_INS_ANDS = 19;;
+let _ARM64_INS_ANDV = 20;;
+let _ARM64_INS_ASR = 21;;
+let _ARM64_INS_ASRD = 22;;
+let _ARM64_INS_ASRR = 23;;
+let _ARM64_INS_ASRV = 24;;
+let _ARM64_INS_AUTDA = 25;;
+let _ARM64_INS_AUTDB = 26;;
+let _ARM64_INS_AUTDZA = 27;;
+let _ARM64_INS_AUTDZB = 28;;
+let _ARM64_INS_AUTIA = 29;;
+let _ARM64_INS_AUTIA1716 = 30;;
+let _ARM64_INS_AUTIASP = 31;;
+let _ARM64_INS_AUTIAZ = 32;;
+let _ARM64_INS_AUTIB = 33;;
+let _ARM64_INS_AUTIB1716 = 34;;
+let _ARM64_INS_AUTIBSP = 35;;
+let _ARM64_INS_AUTIBZ = 36;;
+let _ARM64_INS_AUTIZA = 37;;
+let _ARM64_INS_AUTIZB = 38;;
+let _ARM64_INS_B = 39;;
+let _ARM64_INS_BCAX = 40;;
+let _ARM64_INS_BFM = 41;;
+let _ARM64_INS_BIC = 42;;
+let _ARM64_INS_BICS = 43;;
+let _ARM64_INS_BIF = 44;;
+let _ARM64_INS_BIT = 45;;
+let _ARM64_INS_BL = 46;;
+let _ARM64_INS_BLR = 47;;
+let _ARM64_INS_BLRAA = 48;;
+let _ARM64_INS_BLRAAZ = 49;;
+let _ARM64_INS_BLRAB = 50;;
+let _ARM64_INS_BLRABZ = 51;;
+let _ARM64_INS_BR = 52;;
+let _ARM64_INS_BRAA = 53;;
+let _ARM64_INS_BRAAZ = 54;;
+let _ARM64_INS_BRAB = 55;;
+let _ARM64_INS_BRABZ = 56;;
+let _ARM64_INS_BRK = 57;;
+let _ARM64_INS_BRKA = 58;;
+let _ARM64_INS_BRKAS = 59;;
+let _ARM64_INS_BRKB = 60;;
+let _ARM64_INS_BRKBS = 61;;
+let _ARM64_INS_BRKN = 62;;
+let _ARM64_INS_BRKNS = 63;;
+let _ARM64_INS_BRKPA = 64;;
+let _ARM64_INS_BRKPAS = 65;;
+let _ARM64_INS_BRKPB = 66;;
+let _ARM64_INS_BRKPBS = 67;;
+let _ARM64_INS_BSL = 68;;
+let _ARM64_INS_CAS = 69;;
+let _ARM64_INS_CASA = 70;;
+let _ARM64_INS_CASAB = 71;;
+let _ARM64_INS_CASAH = 72;;
+let _ARM64_INS_CASAL = 73;;
+let _ARM64_INS_CASALB = 74;;
+let _ARM64_INS_CASALH = 75;;
+let _ARM64_INS_CASB = 76;;
+let _ARM64_INS_CASH = 77;;
+let _ARM64_INS_CASL = 78;;
+let _ARM64_INS_CASLB = 79;;
+let _ARM64_INS_CASLH = 80;;
+let _ARM64_INS_CASP = 81;;
+let _ARM64_INS_CASPA = 82;;
+let _ARM64_INS_CASPAL = 83;;
+let _ARM64_INS_CASPL = 84;;
+let _ARM64_INS_CBNZ = 85;;
+let _ARM64_INS_CBZ = 86;;
+let _ARM64_INS_CCMN = 87;;
+let _ARM64_INS_CCMP = 88;;
+let _ARM64_INS_CFINV = 89;;
+let _ARM64_INS_CINC = 90;;
+let _ARM64_INS_CINV = 91;;
+let _ARM64_INS_CLASTA = 92;;
+let _ARM64_INS_CLASTB = 93;;
+let _ARM64_INS_CLREX = 94;;
+let _ARM64_INS_CLS = 95;;
+let _ARM64_INS_CLZ = 96;;
+let _ARM64_INS_CMEQ = 97;;
+let _ARM64_INS_CMGE = 98;;
+let _ARM64_INS_CMGT = 99;;
+let _ARM64_INS_CMHI = 100;;
+let _ARM64_INS_CMHS = 101;;
+let _ARM64_INS_CMLE = 102;;
+let _ARM64_INS_CMLO = 103;;
+let _ARM64_INS_CMLS = 104;;
+let _ARM64_INS_CMLT = 105;;
+let _ARM64_INS_CMN = 106;;
+let _ARM64_INS_CMP = 107;;
+let _ARM64_INS_CMPEQ = 108;;
+let _ARM64_INS_CMPGE = 109;;
+let _ARM64_INS_CMPGT = 110;;
+let _ARM64_INS_CMPHI = 111;;
+let _ARM64_INS_CMPHS = 112;;
+let _ARM64_INS_CMPLE = 113;;
+let _ARM64_INS_CMPLO = 114;;
+let _ARM64_INS_CMPLS = 115;;
+let _ARM64_INS_CMPLT = 116;;
+let _ARM64_INS_CMPNE = 117;;
+let _ARM64_INS_CMTST = 118;;
+let _ARM64_INS_CNEG = 119;;
+let _ARM64_INS_CNOT = 120;;
+let _ARM64_INS_CNT = 121;;
+let _ARM64_INS_CNTB = 122;;
+let _ARM64_INS_CNTD = 123;;
+let _ARM64_INS_CNTH = 124;;
+let _ARM64_INS_CNTP = 125;;
+let _ARM64_INS_CNTW = 126;;
+let _ARM64_INS_COMPACT = 127;;
+let _ARM64_INS_CPY = 128;;
+let _ARM64_INS_CRC32B = 129;;
+let _ARM64_INS_CRC32CB = 130;;
+let _ARM64_INS_CRC32CH = 131;;
+let _ARM64_INS_CRC32CW = 132;;
+let _ARM64_INS_CRC32CX = 133;;
+let _ARM64_INS_CRC32H = 134;;
+let _ARM64_INS_CRC32W = 135;;
+let _ARM64_INS_CRC32X = 136;;
+let _ARM64_INS_CSDB = 137;;
+let _ARM64_INS_CSEL = 138;;
+let _ARM64_INS_CSET = 139;;
+let _ARM64_INS_CSETM = 140;;
+let _ARM64_INS_CSINC = 141;;
+let _ARM64_INS_CSINV = 142;;
+let _ARM64_INS_CSNEG = 143;;
+let _ARM64_INS_CTERMEQ = 144;;
+let _ARM64_INS_CTERMNE = 145;;
+let _ARM64_INS_DCPS1 = 146;;
+let _ARM64_INS_DCPS2 = 147;;
+let _ARM64_INS_DCPS3 = 148;;
+let _ARM64_INS_DECB = 149;;
+let _ARM64_INS_DECD = 150;;
+let _ARM64_INS_DECH = 151;;
+let _ARM64_INS_DECP = 152;;
+let _ARM64_INS_DECW = 153;;
+let _ARM64_INS_DMB = 154;;
+let _ARM64_INS_DRPS = 155;;
+let _ARM64_INS_DSB = 156;;
+let _ARM64_INS_DUP = 157;;
+let _ARM64_INS_DUPM = 158;;
+let _ARM64_INS_EON = 159;;
+let _ARM64_INS_EOR = 160;;
+let _ARM64_INS_EOR3 = 161;;
+let _ARM64_INS_EORS = 162;;
+let _ARM64_INS_EORV = 163;;
+let _ARM64_INS_ERET = 164;;
+let _ARM64_INS_ERETAA = 165;;
+let _ARM64_INS_ERETAB = 166;;
+let _ARM64_INS_ESB = 167;;
+let _ARM64_INS_EXT = 168;;
+let _ARM64_INS_EXTR = 169;;
+let _ARM64_INS_FABD = 170;;
+let _ARM64_INS_FABS = 171;;
+let _ARM64_INS_FACGE = 172;;
+let _ARM64_INS_FACGT = 173;;
+let _ARM64_INS_FACLE = 174;;
+let _ARM64_INS_FACLT = 175;;
+let _ARM64_INS_FADD = 176;;
+let _ARM64_INS_FADDA = 177;;
+let _ARM64_INS_FADDP = 178;;
+let _ARM64_INS_FADDV = 179;;
+let _ARM64_INS_FCADD = 180;;
+let _ARM64_INS_FCCMP = 181;;
+let _ARM64_INS_FCCMPE = 182;;
+let _ARM64_INS_FCMEQ = 183;;
+let _ARM64_INS_FCMGE = 184;;
+let _ARM64_INS_FCMGT = 185;;
+let _ARM64_INS_FCMLA = 186;;
+let _ARM64_INS_FCMLE = 187;;
+let _ARM64_INS_FCMLT = 188;;
+let _ARM64_INS_FCMNE = 189;;
+let _ARM64_INS_FCMP = 190;;
+let _ARM64_INS_FCMPE = 191;;
+let _ARM64_INS_FCMUO = 192;;
+let _ARM64_INS_FCPY = 193;;
+let _ARM64_INS_FCSEL = 194;;
+let _ARM64_INS_FCVT = 195;;
+let _ARM64_INS_FCVTAS = 196;;
+let _ARM64_INS_FCVTAU = 197;;
+let _ARM64_INS_FCVTL = 198;;
+let _ARM64_INS_FCVTL2 = 199;;
+let _ARM64_INS_FCVTMS = 200;;
+let _ARM64_INS_FCVTMU = 201;;
+let _ARM64_INS_FCVTN = 202;;
+let _ARM64_INS_FCVTN2 = 203;;
+let _ARM64_INS_FCVTNS = 204;;
+let _ARM64_INS_FCVTNU = 205;;
+let _ARM64_INS_FCVTPS = 206;;
+let _ARM64_INS_FCVTPU = 207;;
+let _ARM64_INS_FCVTXN = 208;;
+let _ARM64_INS_FCVTXN2 = 209;;
+let _ARM64_INS_FCVTZS = 210;;
+let _ARM64_INS_FCVTZU = 211;;
+let _ARM64_INS_FDIV = 212;;
+let _ARM64_INS_FDIVR = 213;;
+let _ARM64_INS_FDUP = 214;;
+let _ARM64_INS_FEXPA = 215;;
+let _ARM64_INS_FJCVTZS = 216;;
+let _ARM64_INS_FMAD = 217;;
+let _ARM64_INS_FMADD = 218;;
+let _ARM64_INS_FMAX = 219;;
+let _ARM64_INS_FMAXNM = 220;;
+let _ARM64_INS_FMAXNMP = 221;;
+let _ARM64_INS_FMAXNMV = 222;;
+let _ARM64_INS_FMAXP = 223;;
+let _ARM64_INS_FMAXV = 224;;
+let _ARM64_INS_FMIN = 225;;
+let _ARM64_INS_FMINNM = 226;;
+let _ARM64_INS_FMINNMP = 227;;
+let _ARM64_INS_FMINNMV = 228;;
+let _ARM64_INS_FMINP = 229;;
+let _ARM64_INS_FMINV = 230;;
+let _ARM64_INS_FMLA = 231;;
+let _ARM64_INS_FMLS = 232;;
+let _ARM64_INS_FMOV = 233;;
+let _ARM64_INS_FMSB = 234;;
+let _ARM64_INS_FMSUB = 235;;
+let _ARM64_INS_FMUL = 236;;
+let _ARM64_INS_FMULX = 237;;
+let _ARM64_INS_FNEG = 238;;
+let _ARM64_INS_FNMAD = 239;;
+let _ARM64_INS_FNMADD = 240;;
+let _ARM64_INS_FNMLA = 241;;
+let _ARM64_INS_FNMLS = 242;;
+let _ARM64_INS_FNMSB = 243;;
+let _ARM64_INS_FNMSUB = 244;;
+let _ARM64_INS_FNMUL = 245;;
+let _ARM64_INS_FRECPE = 246;;
+let _ARM64_INS_FRECPS = 247;;
+let _ARM64_INS_FRECPX = 248;;
+let _ARM64_INS_FRINTA = 249;;
+let _ARM64_INS_FRINTI = 250;;
+let _ARM64_INS_FRINTM = 251;;
+let _ARM64_INS_FRINTN = 252;;
+let _ARM64_INS_FRINTP = 253;;
+let _ARM64_INS_FRINTX = 254;;
+let _ARM64_INS_FRINTZ = 255;;
+let _ARM64_INS_FRSQRTE = 256;;
+let _ARM64_INS_FRSQRTS = 257;;
+let _ARM64_INS_FSCALE = 258;;
+let _ARM64_INS_FSQRT = 259;;
+let _ARM64_INS_FSUB = 260;;
+let _ARM64_INS_FSUBR = 261;;
+let _ARM64_INS_FTMAD = 262;;
+let _ARM64_INS_FTSMUL = 263;;
+let _ARM64_INS_FTSSEL = 264;;
+let _ARM64_INS_HINT = 265;;
+let _ARM64_INS_HLT = 266;;
+let _ARM64_INS_HVC = 267;;
+let _ARM64_INS_INCB = 268;;
+let _ARM64_INS_INCD = 269;;
+let _ARM64_INS_INCH = 270;;
+let _ARM64_INS_INCP = 271;;
+let _ARM64_INS_INCW = 272;;
+let _ARM64_INS_INDEX = 273;;
+let _ARM64_INS_INS = 274;;
+let _ARM64_INS_INSR = 275;;
+let _ARM64_INS_ISB = 276;;
+let _ARM64_INS_LASTA = 277;;
+let _ARM64_INS_LASTB = 278;;
+let _ARM64_INS_LD1 = 279;;
+let _ARM64_INS_LD1B = 280;;
+let _ARM64_INS_LD1D = 281;;
+let _ARM64_INS_LD1H = 282;;
+let _ARM64_INS_LD1R = 283;;
+let _ARM64_INS_LD1RB = 284;;
+let _ARM64_INS_LD1RD = 285;;
+let _ARM64_INS_LD1RH = 286;;
+let _ARM64_INS_LD1RQB = 287;;
+let _ARM64_INS_LD1RQD = 288;;
+let _ARM64_INS_LD1RQH = 289;;
+let _ARM64_INS_LD1RQW = 290;;
+let _ARM64_INS_LD1RSB = 291;;
+let _ARM64_INS_LD1RSH = 292;;
+let _ARM64_INS_LD1RSW = 293;;
+let _ARM64_INS_LD1RW = 294;;
+let _ARM64_INS_LD1SB = 295;;
+let _ARM64_INS_LD1SH = 296;;
+let _ARM64_INS_LD1SW = 297;;
+let _ARM64_INS_LD1W = 298;;
+let _ARM64_INS_LD2 = 299;;
+let _ARM64_INS_LD2B = 300;;
+let _ARM64_INS_LD2D = 301;;
+let _ARM64_INS_LD2H = 302;;
+let _ARM64_INS_LD2R = 303;;
+let _ARM64_INS_LD2W = 304;;
+let _ARM64_INS_LD3 = 305;;
+let _ARM64_INS_LD3B = 306;;
+let _ARM64_INS_LD3D = 307;;
+let _ARM64_INS_LD3H = 308;;
+let _ARM64_INS_LD3R = 309;;
+let _ARM64_INS_LD3W = 310;;
+let _ARM64_INS_LD4 = 311;;
+let _ARM64_INS_LD4B = 312;;
+let _ARM64_INS_LD4D = 313;;
+let _ARM64_INS_LD4H = 314;;
+let _ARM64_INS_LD4R = 315;;
+let _ARM64_INS_LD4W = 316;;
+let _ARM64_INS_LDADD = 317;;
+let _ARM64_INS_LDADDA = 318;;
+let _ARM64_INS_LDADDAB = 319;;
+let _ARM64_INS_LDADDAH = 320;;
+let _ARM64_INS_LDADDAL = 321;;
+let _ARM64_INS_LDADDALB = 322;;
+let _ARM64_INS_LDADDALH = 323;;
+let _ARM64_INS_LDADDB = 324;;
+let _ARM64_INS_LDADDH = 325;;
+let _ARM64_INS_LDADDL = 326;;
+let _ARM64_INS_LDADDLB = 327;;
+let _ARM64_INS_LDADDLH = 328;;
+let _ARM64_INS_LDAPR = 329;;
+let _ARM64_INS_LDAPRB = 330;;
+let _ARM64_INS_LDAPRH = 331;;
+let _ARM64_INS_LDAPUR = 332;;
+let _ARM64_INS_LDAPURB = 333;;
+let _ARM64_INS_LDAPURH = 334;;
+let _ARM64_INS_LDAPURSB = 335;;
+let _ARM64_INS_LDAPURSH = 336;;
+let _ARM64_INS_LDAPURSW = 337;;
+let _ARM64_INS_LDAR = 338;;
+let _ARM64_INS_LDARB = 339;;
+let _ARM64_INS_LDARH = 340;;
+let _ARM64_INS_LDAXP = 341;;
+let _ARM64_INS_LDAXR = 342;;
+let _ARM64_INS_LDAXRB = 343;;
+let _ARM64_INS_LDAXRH = 344;;
+let _ARM64_INS_LDCLR = 345;;
+let _ARM64_INS_LDCLRA = 346;;
+let _ARM64_INS_LDCLRAB = 347;;
+let _ARM64_INS_LDCLRAH = 348;;
+let _ARM64_INS_LDCLRAL = 349;;
+let _ARM64_INS_LDCLRALB = 350;;
+let _ARM64_INS_LDCLRALH = 351;;
+let _ARM64_INS_LDCLRB = 352;;
+let _ARM64_INS_LDCLRH = 353;;
+let _ARM64_INS_LDCLRL = 354;;
+let _ARM64_INS_LDCLRLB = 355;;
+let _ARM64_INS_LDCLRLH = 356;;
+let _ARM64_INS_LDEOR = 357;;
+let _ARM64_INS_LDEORA = 358;;
+let _ARM64_INS_LDEORAB = 359;;
+let _ARM64_INS_LDEORAH = 360;;
+let _ARM64_INS_LDEORAL = 361;;
+let _ARM64_INS_LDEORALB = 362;;
+let _ARM64_INS_LDEORALH = 363;;
+let _ARM64_INS_LDEORB = 364;;
+let _ARM64_INS_LDEORH = 365;;
+let _ARM64_INS_LDEORL = 366;;
+let _ARM64_INS_LDEORLB = 367;;
+let _ARM64_INS_LDEORLH = 368;;
+let _ARM64_INS_LDFF1B = 369;;
+let _ARM64_INS_LDFF1D = 370;;
+let _ARM64_INS_LDFF1H = 371;;
+let _ARM64_INS_LDFF1SB = 372;;
+let _ARM64_INS_LDFF1SH = 373;;
+let _ARM64_INS_LDFF1SW = 374;;
+let _ARM64_INS_LDFF1W = 375;;
+let _ARM64_INS_LDLAR = 376;;
+let _ARM64_INS_LDLARB = 377;;
+let _ARM64_INS_LDLARH = 378;;
+let _ARM64_INS_LDNF1B = 379;;
+let _ARM64_INS_LDNF1D = 380;;
+let _ARM64_INS_LDNF1H = 381;;
+let _ARM64_INS_LDNF1SB = 382;;
+let _ARM64_INS_LDNF1SH = 383;;
+let _ARM64_INS_LDNF1SW = 384;;
+let _ARM64_INS_LDNF1W = 385;;
+let _ARM64_INS_LDNP = 386;;
+let _ARM64_INS_LDNT1B = 387;;
+let _ARM64_INS_LDNT1D = 388;;
+let _ARM64_INS_LDNT1H = 389;;
+let _ARM64_INS_LDNT1W = 390;;
+let _ARM64_INS_LDP = 391;;
+let _ARM64_INS_LDPSW = 392;;
+let _ARM64_INS_LDR = 393;;
+let _ARM64_INS_LDRAA = 394;;
+let _ARM64_INS_LDRAB = 395;;
+let _ARM64_INS_LDRB = 396;;
+let _ARM64_INS_LDRH = 397;;
+let _ARM64_INS_LDRSB = 398;;
+let _ARM64_INS_LDRSH = 399;;
+let _ARM64_INS_LDRSW = 400;;
+let _ARM64_INS_LDSET = 401;;
+let _ARM64_INS_LDSETA = 402;;
+let _ARM64_INS_LDSETAB = 403;;
+let _ARM64_INS_LDSETAH = 404;;
+let _ARM64_INS_LDSETAL = 405;;
+let _ARM64_INS_LDSETALB = 406;;
+let _ARM64_INS_LDSETALH = 407;;
+let _ARM64_INS_LDSETB = 408;;
+let _ARM64_INS_LDSETH = 409;;
+let _ARM64_INS_LDSETL = 410;;
+let _ARM64_INS_LDSETLB = 411;;
+let _ARM64_INS_LDSETLH = 412;;
+let _ARM64_INS_LDSMAX = 413;;
+let _ARM64_INS_LDSMAXA = 414;;
+let _ARM64_INS_LDSMAXAB = 415;;
+let _ARM64_INS_LDSMAXAH = 416;;
+let _ARM64_INS_LDSMAXAL = 417;;
+let _ARM64_INS_LDSMAXALB = 418;;
+let _ARM64_INS_LDSMAXALH = 419;;
+let _ARM64_INS_LDSMAXB = 420;;
+let _ARM64_INS_LDSMAXH = 421;;
+let _ARM64_INS_LDSMAXL = 422;;
+let _ARM64_INS_LDSMAXLB = 423;;
+let _ARM64_INS_LDSMAXLH = 424;;
+let _ARM64_INS_LDSMIN = 425;;
+let _ARM64_INS_LDSMINA = 426;;
+let _ARM64_INS_LDSMINAB = 427;;
+let _ARM64_INS_LDSMINAH = 428;;
+let _ARM64_INS_LDSMINAL = 429;;
+let _ARM64_INS_LDSMINALB = 430;;
+let _ARM64_INS_LDSMINALH = 431;;
+let _ARM64_INS_LDSMINB = 432;;
+let _ARM64_INS_LDSMINH = 433;;
+let _ARM64_INS_LDSMINL = 434;;
+let _ARM64_INS_LDSMINLB = 435;;
+let _ARM64_INS_LDSMINLH = 436;;
+let _ARM64_INS_LDTR = 437;;
+let _ARM64_INS_LDTRB = 438;;
+let _ARM64_INS_LDTRH = 439;;
+let _ARM64_INS_LDTRSB = 440;;
+let _ARM64_INS_LDTRSH = 441;;
+let _ARM64_INS_LDTRSW = 442;;
+let _ARM64_INS_LDUMAX = 443;;
+let _ARM64_INS_LDUMAXA = 444;;
+let _ARM64_INS_LDUMAXAB = 445;;
+let _ARM64_INS_LDUMAXAH = 446;;
+let _ARM64_INS_LDUMAXAL = 447;;
+let _ARM64_INS_LDUMAXALB = 448;;
+let _ARM64_INS_LDUMAXALH = 449;;
+let _ARM64_INS_LDUMAXB = 450;;
+let _ARM64_INS_LDUMAXH = 451;;
+let _ARM64_INS_LDUMAXL = 452;;
+let _ARM64_INS_LDUMAXLB = 453;;
+let _ARM64_INS_LDUMAXLH = 454;;
+let _ARM64_INS_LDUMIN = 455;;
+let _ARM64_INS_LDUMINA = 456;;
+let _ARM64_INS_LDUMINAB = 457;;
+let _ARM64_INS_LDUMINAH = 458;;
+let _ARM64_INS_LDUMINAL = 459;;
+let _ARM64_INS_LDUMINALB = 460;;
+let _ARM64_INS_LDUMINALH = 461;;
+let _ARM64_INS_LDUMINB = 462;;
+let _ARM64_INS_LDUMINH = 463;;
+let _ARM64_INS_LDUMINL = 464;;
+let _ARM64_INS_LDUMINLB = 465;;
+let _ARM64_INS_LDUMINLH = 466;;
+let _ARM64_INS_LDUR = 467;;
+let _ARM64_INS_LDURB = 468;;
+let _ARM64_INS_LDURH = 469;;
+let _ARM64_INS_LDURSB = 470;;
+let _ARM64_INS_LDURSH = 471;;
+let _ARM64_INS_LDURSW = 472;;
+let _ARM64_INS_LDXP = 473;;
+let _ARM64_INS_LDXR = 474;;
+let _ARM64_INS_LDXRB = 475;;
+let _ARM64_INS_LDXRH = 476;;
+let _ARM64_INS_LSL = 477;;
+let _ARM64_INS_LSLR = 478;;
+let _ARM64_INS_LSLV = 479;;
+let _ARM64_INS_LSR = 480;;
+let _ARM64_INS_LSRR = 481;;
+let _ARM64_INS_LSRV = 482;;
+let _ARM64_INS_MAD = 483;;
+let _ARM64_INS_MADD = 484;;
+let _ARM64_INS_MLA = 485;;
+let _ARM64_INS_MLS = 486;;
+let _ARM64_INS_MNEG = 487;;
+let _ARM64_INS_MOV = 488;;
+let _ARM64_INS_MOVI = 489;;
+let _ARM64_INS_MOVK = 490;;
+let _ARM64_INS_MOVN = 491;;
+let _ARM64_INS_MOVPRFX = 492;;
+let _ARM64_INS_MOVS = 493;;
+let _ARM64_INS_MOVZ = 494;;
+let _ARM64_INS_MRS = 495;;
+let _ARM64_INS_MSB = 496;;
+let _ARM64_INS_MSR = 497;;
+let _ARM64_INS_MSUB = 498;;
+let _ARM64_INS_MUL = 499;;
+let _ARM64_INS_MVN = 500;;
+let _ARM64_INS_MVNI = 501;;
+let _ARM64_INS_NAND = 502;;
+let _ARM64_INS_NANDS = 503;;
+let _ARM64_INS_NEG = 504;;
+let _ARM64_INS_NEGS = 505;;
+let _ARM64_INS_NGC = 506;;
+let _ARM64_INS_NGCS = 507;;
+let _ARM64_INS_NOP = 508;;
+let _ARM64_INS_NOR = 509;;
+let _ARM64_INS_NORS = 510;;
+let _ARM64_INS_NOT = 511;;
+let _ARM64_INS_NOTS = 512;;
+let _ARM64_INS_ORN = 513;;
+let _ARM64_INS_ORNS = 514;;
+let _ARM64_INS_ORR = 515;;
+let _ARM64_INS_ORRS = 516;;
+let _ARM64_INS_ORV = 517;;
+let _ARM64_INS_PACDA = 518;;
+let _ARM64_INS_PACDB = 519;;
+let _ARM64_INS_PACDZA = 520;;
+let _ARM64_INS_PACDZB = 521;;
+let _ARM64_INS_PACGA = 522;;
+let _ARM64_INS_PACIA = 523;;
+let _ARM64_INS_PACIA1716 = 524;;
+let _ARM64_INS_PACIASP = 525;;
+let _ARM64_INS_PACIAZ = 526;;
+let _ARM64_INS_PACIB = 527;;
+let _ARM64_INS_PACIB1716 = 528;;
+let _ARM64_INS_PACIBSP = 529;;
+let _ARM64_INS_PACIBZ = 530;;
+let _ARM64_INS_PACIZA = 531;;
+let _ARM64_INS_PACIZB = 532;;
+let _ARM64_INS_PFALSE = 533;;
+let _ARM64_INS_PFIRST = 534;;
+let _ARM64_INS_PMUL = 535;;
+let _ARM64_INS_PMULL = 536;;
+let _ARM64_INS_PMULL2 = 537;;
+let _ARM64_INS_PNEXT = 538;;
+let _ARM64_INS_PRFB = 539;;
+let _ARM64_INS_PRFD = 540;;
+let _ARM64_INS_PRFH = 541;;
+let _ARM64_INS_PRFM = 542;;
+let _ARM64_INS_PRFUM = 543;;
+let _ARM64_INS_PRFW = 544;;
+let _ARM64_INS_PSB = 545;;
+let _ARM64_INS_PTEST = 546;;
+let _ARM64_INS_PTRUE = 547;;
+let _ARM64_INS_PTRUES = 548;;
+let _ARM64_INS_PUNPKHI = 549;;
+let _ARM64_INS_PUNPKLO = 550;;
+let _ARM64_INS_RADDHN = 551;;
+let _ARM64_INS_RADDHN2 = 552;;
+let _ARM64_INS_RAX1 = 553;;
+let _ARM64_INS_RBIT = 554;;
+let _ARM64_INS_RDFFR = 555;;
+let _ARM64_INS_RDFFRS = 556;;
+let _ARM64_INS_RDVL = 557;;
+let _ARM64_INS_RET = 558;;
+let _ARM64_INS_RETAA = 559;;
+let _ARM64_INS_RETAB = 560;;
+let _ARM64_INS_REV = 561;;
+let _ARM64_INS_REV16 = 562;;
+let _ARM64_INS_REV32 = 563;;
+let _ARM64_INS_REV64 = 564;;
+let _ARM64_INS_REVB = 565;;
+let _ARM64_INS_REVH = 566;;
+let _ARM64_INS_REVW = 567;;
+let _ARM64_INS_RMIF = 568;;
+let _ARM64_INS_ROR = 569;;
+let _ARM64_INS_RORV = 570;;
+let _ARM64_INS_RSHRN = 571;;
+let _ARM64_INS_RSHRN2 = 572;;
+let _ARM64_INS_RSUBHN = 573;;
+let _ARM64_INS_RSUBHN2 = 574;;
+let _ARM64_INS_SABA = 575;;
+let _ARM64_INS_SABAL = 576;;
+let _ARM64_INS_SABAL2 = 577;;
+let _ARM64_INS_SABD = 578;;
+let _ARM64_INS_SABDL = 579;;
+let _ARM64_INS_SABDL2 = 580;;
+let _ARM64_INS_SADALP = 581;;
+let _ARM64_INS_SADDL = 582;;
+let _ARM64_INS_SADDL2 = 583;;
+let _ARM64_INS_SADDLP = 584;;
+let _ARM64_INS_SADDLV = 585;;
+let _ARM64_INS_SADDV = 586;;
+let _ARM64_INS_SADDW = 587;;
+let _ARM64_INS_SADDW2 = 588;;
+let _ARM64_INS_SBC = 589;;
+let _ARM64_INS_SBCS = 590;;
+let _ARM64_INS_SBFM = 591;;
+let _ARM64_INS_SCVTF = 592;;
+let _ARM64_INS_SDIV = 593;;
+let _ARM64_INS_SDIVR = 594;;
+let _ARM64_INS_SDOT = 595;;
+let _ARM64_INS_SEL = 596;;
+let _ARM64_INS_SETF16 = 597;;
+let _ARM64_INS_SETF8 = 598;;
+let _ARM64_INS_SETFFR = 599;;
+let _ARM64_INS_SEV = 600;;
+let _ARM64_INS_SEVL = 601;;
+let _ARM64_INS_SHA1C = 602;;
+let _ARM64_INS_SHA1H = 603;;
+let _ARM64_INS_SHA1M = 604;;
+let _ARM64_INS_SHA1P = 605;;
+let _ARM64_INS_SHA1SU0 = 606;;
+let _ARM64_INS_SHA1SU1 = 607;;
+let _ARM64_INS_SHA256H = 608;;
+let _ARM64_INS_SHA256H2 = 609;;
+let _ARM64_INS_SHA256SU0 = 610;;
+let _ARM64_INS_SHA256SU1 = 611;;
+let _ARM64_INS_SHA512H = 612;;
+let _ARM64_INS_SHA512H2 = 613;;
+let _ARM64_INS_SHA512SU0 = 614;;
+let _ARM64_INS_SHA512SU1 = 615;;
+let _ARM64_INS_SHADD = 616;;
+let _ARM64_INS_SHL = 617;;
+let _ARM64_INS_SHLL = 618;;
+let _ARM64_INS_SHLL2 = 619;;
+let _ARM64_INS_SHRN = 620;;
+let _ARM64_INS_SHRN2 = 621;;
+let _ARM64_INS_SHSUB = 622;;
+let _ARM64_INS_SLI = 623;;
+let _ARM64_INS_SM3PARTW1 = 624;;
+let _ARM64_INS_SM3PARTW2 = 625;;
+let _ARM64_INS_SM3SS1 = 626;;
+let _ARM64_INS_SM3TT1A = 627;;
+let _ARM64_INS_SM3TT1B = 628;;
+let _ARM64_INS_SM3TT2A = 629;;
+let _ARM64_INS_SM3TT2B = 630;;
+let _ARM64_INS_SM4E = 631;;
+let _ARM64_INS_SM4EKEY = 632;;
+let _ARM64_INS_SMADDL = 633;;
+let _ARM64_INS_SMAX = 634;;
+let _ARM64_INS_SMAXP = 635;;
+let _ARM64_INS_SMAXV = 636;;
+let _ARM64_INS_SMC = 637;;
+let _ARM64_INS_SMIN = 638;;
+let _ARM64_INS_SMINP = 639;;
+let _ARM64_INS_SMINV = 640;;
+let _ARM64_INS_SMLAL = 641;;
+let _ARM64_INS_SMLAL2 = 642;;
+let _ARM64_INS_SMLSL = 643;;
+let _ARM64_INS_SMLSL2 = 644;;
+let _ARM64_INS_SMNEGL = 645;;
+let _ARM64_INS_SMOV = 646;;
+let _ARM64_INS_SMSUBL = 647;;
+let _ARM64_INS_SMULH = 648;;
+let _ARM64_INS_SMULL = 649;;
+let _ARM64_INS_SMULL2 = 650;;
+let _ARM64_INS_SPLICE = 651;;
+let _ARM64_INS_SQABS = 652;;
+let _ARM64_INS_SQADD = 653;;
+let _ARM64_INS_SQDECB = 654;;
+let _ARM64_INS_SQDECD = 655;;
+let _ARM64_INS_SQDECH = 656;;
+let _ARM64_INS_SQDECP = 657;;
+let _ARM64_INS_SQDECW = 658;;
+let _ARM64_INS_SQDMLAL = 659;;
+let _ARM64_INS_SQDMLAL2 = 660;;
+let _ARM64_INS_SQDMLSL = 661;;
+let _ARM64_INS_SQDMLSL2 = 662;;
+let _ARM64_INS_SQDMULH = 663;;
+let _ARM64_INS_SQDMULL = 664;;
+let _ARM64_INS_SQDMULL2 = 665;;
+let _ARM64_INS_SQINCB = 666;;
+let _ARM64_INS_SQINCD = 667;;
+let _ARM64_INS_SQINCH = 668;;
+let _ARM64_INS_SQINCP = 669;;
+let _ARM64_INS_SQINCW = 670;;
+let _ARM64_INS_SQNEG = 671;;
+let _ARM64_INS_SQRDMLAH = 672;;
+let _ARM64_INS_SQRDMLSH = 673;;
+let _ARM64_INS_SQRDMULH = 674;;
+let _ARM64_INS_SQRSHL = 675;;
+let _ARM64_INS_SQRSHRN = 676;;
+let _ARM64_INS_SQRSHRN2 = 677;;
+let _ARM64_INS_SQRSHRUN = 678;;
+let _ARM64_INS_SQRSHRUN2 = 679;;
+let _ARM64_INS_SQSHL = 680;;
+let _ARM64_INS_SQSHLU = 681;;
+let _ARM64_INS_SQSHRN = 682;;
+let _ARM64_INS_SQSHRN2 = 683;;
+let _ARM64_INS_SQSHRUN = 684;;
+let _ARM64_INS_SQSHRUN2 = 685;;
+let _ARM64_INS_SQSUB = 686;;
+let _ARM64_INS_SQXTN = 687;;
+let _ARM64_INS_SQXTN2 = 688;;
+let _ARM64_INS_SQXTUN = 689;;
+let _ARM64_INS_SQXTUN2 = 690;;
+let _ARM64_INS_SRHADD = 691;;
+let _ARM64_INS_SRI = 692;;
+let _ARM64_INS_SRSHL = 693;;
+let _ARM64_INS_SRSHR = 694;;
+let _ARM64_INS_SRSRA = 695;;
+let _ARM64_INS_SSHL = 696;;
+let _ARM64_INS_SSHLL = 697;;
+let _ARM64_INS_SSHLL2 = 698;;
+let _ARM64_INS_SSHR = 699;;
+let _ARM64_INS_SSRA = 700;;
+let _ARM64_INS_SSUBL = 701;;
+let _ARM64_INS_SSUBL2 = 702;;
+let _ARM64_INS_SSUBW = 703;;
+let _ARM64_INS_SSUBW2 = 704;;
+let _ARM64_INS_ST1 = 705;;
+let _ARM64_INS_ST1B = 706;;
+let _ARM64_INS_ST1D = 707;;
+let _ARM64_INS_ST1H = 708;;
+let _ARM64_INS_ST1W = 709;;
+let _ARM64_INS_ST2 = 710;;
+let _ARM64_INS_ST2B = 711;;
+let _ARM64_INS_ST2D = 712;;
+let _ARM64_INS_ST2H = 713;;
+let _ARM64_INS_ST2W = 714;;
+let _ARM64_INS_ST3 = 715;;
+let _ARM64_INS_ST3B = 716;;
+let _ARM64_INS_ST3D = 717;;
+let _ARM64_INS_ST3H = 718;;
+let _ARM64_INS_ST3W = 719;;
+let _ARM64_INS_ST4 = 720;;
+let _ARM64_INS_ST4B = 721;;
+let _ARM64_INS_ST4D = 722;;
+let _ARM64_INS_ST4H = 723;;
+let _ARM64_INS_ST4W = 724;;
+let _ARM64_INS_STADD = 725;;
+let _ARM64_INS_STADDB = 726;;
+let _ARM64_INS_STADDH = 727;;
+let _ARM64_INS_STADDL = 728;;
+let _ARM64_INS_STADDLB = 729;;
+let _ARM64_INS_STADDLH = 730;;
+let _ARM64_INS_STCLR = 731;;
+let _ARM64_INS_STCLRB = 732;;
+let _ARM64_INS_STCLRH = 733;;
+let _ARM64_INS_STCLRL = 734;;
+let _ARM64_INS_STCLRLB = 735;;
+let _ARM64_INS_STCLRLH = 736;;
+let _ARM64_INS_STEOR = 737;;
+let _ARM64_INS_STEORB = 738;;
+let _ARM64_INS_STEORH = 739;;
+let _ARM64_INS_STEORL = 740;;
+let _ARM64_INS_STEORLB = 741;;
+let _ARM64_INS_STEORLH = 742;;
+let _ARM64_INS_STLLR = 743;;
+let _ARM64_INS_STLLRB = 744;;
+let _ARM64_INS_STLLRH = 745;;
+let _ARM64_INS_STLR = 746;;
+let _ARM64_INS_STLRB = 747;;
+let _ARM64_INS_STLRH = 748;;
+let _ARM64_INS_STLUR = 749;;
+let _ARM64_INS_STLURB = 750;;
+let _ARM64_INS_STLURH = 751;;
+let _ARM64_INS_STLXP = 752;;
+let _ARM64_INS_STLXR = 753;;
+let _ARM64_INS_STLXRB = 754;;
+let _ARM64_INS_STLXRH = 755;;
+let _ARM64_INS_STNP = 756;;
+let _ARM64_INS_STNT1B = 757;;
+let _ARM64_INS_STNT1D = 758;;
+let _ARM64_INS_STNT1H = 759;;
+let _ARM64_INS_STNT1W = 760;;
+let _ARM64_INS_STP = 761;;
+let _ARM64_INS_STR = 762;;
+let _ARM64_INS_STRB = 763;;
+let _ARM64_INS_STRH = 764;;
+let _ARM64_INS_STSET = 765;;
+let _ARM64_INS_STSETB = 766;;
+let _ARM64_INS_STSETH = 767;;
+let _ARM64_INS_STSETL = 768;;
+let _ARM64_INS_STSETLB = 769;;
+let _ARM64_INS_STSETLH = 770;;
+let _ARM64_INS_STSMAX = 771;;
+let _ARM64_INS_STSMAXB = 772;;
+let _ARM64_INS_STSMAXH = 773;;
+let _ARM64_INS_STSMAXL = 774;;
+let _ARM64_INS_STSMAXLB = 775;;
+let _ARM64_INS_STSMAXLH = 776;;
+let _ARM64_INS_STSMIN = 777;;
+let _ARM64_INS_STSMINB = 778;;
+let _ARM64_INS_STSMINH = 779;;
+let _ARM64_INS_STSMINL = 780;;
+let _ARM64_INS_STSMINLB = 781;;
+let _ARM64_INS_STSMINLH = 782;;
+let _ARM64_INS_STTR = 783;;
+let _ARM64_INS_STTRB = 784;;
+let _ARM64_INS_STTRH = 785;;
+let _ARM64_INS_STUMAX = 786;;
+let _ARM64_INS_STUMAXB = 787;;
+let _ARM64_INS_STUMAXH = 788;;
+let _ARM64_INS_STUMAXL = 789;;
+let _ARM64_INS_STUMAXLB = 790;;
+let _ARM64_INS_STUMAXLH = 791;;
+let _ARM64_INS_STUMIN = 792;;
+let _ARM64_INS_STUMINB = 793;;
+let _ARM64_INS_STUMINH = 794;;
+let _ARM64_INS_STUMINL = 795;;
+let _ARM64_INS_STUMINLB = 796;;
+let _ARM64_INS_STUMINLH = 797;;
+let _ARM64_INS_STUR = 798;;
+let _ARM64_INS_STURB = 799;;
+let _ARM64_INS_STURH = 800;;
+let _ARM64_INS_STXP = 801;;
+let _ARM64_INS_STXR = 802;;
+let _ARM64_INS_STXRB = 803;;
+let _ARM64_INS_STXRH = 804;;
+let _ARM64_INS_SUB = 805;;
+let _ARM64_INS_SUBHN = 806;;
+let _ARM64_INS_SUBHN2 = 807;;
+let _ARM64_INS_SUBR = 808;;
+let _ARM64_INS_SUBS = 809;;
+let _ARM64_INS_SUNPKHI = 810;;
+let _ARM64_INS_SUNPKLO = 811;;
+let _ARM64_INS_SUQADD = 812;;
+let _ARM64_INS_SVC = 813;;
+let _ARM64_INS_SWP = 814;;
+let _ARM64_INS_SWPA = 815;;
+let _ARM64_INS_SWPAB = 816;;
+let _ARM64_INS_SWPAH = 817;;
+let _ARM64_INS_SWPAL = 818;;
+let _ARM64_INS_SWPALB = 819;;
+let _ARM64_INS_SWPALH = 820;;
+let _ARM64_INS_SWPB = 821;;
+let _ARM64_INS_SWPH = 822;;
+let _ARM64_INS_SWPL = 823;;
+let _ARM64_INS_SWPLB = 824;;
+let _ARM64_INS_SWPLH = 825;;
+let _ARM64_INS_SXTB = 826;;
+let _ARM64_INS_SXTH = 827;;
+let _ARM64_INS_SXTL = 828;;
+let _ARM64_INS_SXTL2 = 829;;
+let _ARM64_INS_SXTW = 830;;
+let _ARM64_INS_SYS = 831;;
+let _ARM64_INS_SYSL = 832;;
+let _ARM64_INS_TBL = 833;;
+let _ARM64_INS_TBNZ = 834;;
+let _ARM64_INS_TBX = 835;;
+let _ARM64_INS_TBZ = 836;;
+let _ARM64_INS_TRN1 = 837;;
+let _ARM64_INS_TRN2 = 838;;
+let _ARM64_INS_TSB = 839;;
+let _ARM64_INS_TST = 840;;
+let _ARM64_INS_UABA = 841;;
+let _ARM64_INS_UABAL = 842;;
+let _ARM64_INS_UABAL2 = 843;;
+let _ARM64_INS_UABD = 844;;
+let _ARM64_INS_UABDL = 845;;
+let _ARM64_INS_UABDL2 = 846;;
+let _ARM64_INS_UADALP = 847;;
+let _ARM64_INS_UADDL = 848;;
+let _ARM64_INS_UADDL2 = 849;;
+let _ARM64_INS_UADDLP = 850;;
+let _ARM64_INS_UADDLV = 851;;
+let _ARM64_INS_UADDV = 852;;
+let _ARM64_INS_UADDW = 853;;
+let _ARM64_INS_UADDW2 = 854;;
+let _ARM64_INS_UBFM = 855;;
+let _ARM64_INS_UCVTF = 856;;
+let _ARM64_INS_UDIV = 857;;
+let _ARM64_INS_UDIVR = 858;;
+let _ARM64_INS_UDOT = 859;;
+let _ARM64_INS_UHADD = 860;;
+let _ARM64_INS_UHSUB = 861;;
+let _ARM64_INS_UMADDL = 862;;
+let _ARM64_INS_UMAX = 863;;
+let _ARM64_INS_UMAXP = 864;;
+let _ARM64_INS_UMAXV = 865;;
+let _ARM64_INS_UMIN = 866;;
+let _ARM64_INS_UMINP = 867;;
+let _ARM64_INS_UMINV = 868;;
+let _ARM64_INS_UMLAL = 869;;
+let _ARM64_INS_UMLAL2 = 870;;
+let _ARM64_INS_UMLSL = 871;;
+let _ARM64_INS_UMLSL2 = 872;;
+let _ARM64_INS_UMNEGL = 873;;
+let _ARM64_INS_UMOV = 874;;
+let _ARM64_INS_UMSUBL = 875;;
+let _ARM64_INS_UMULH = 876;;
+let _ARM64_INS_UMULL = 877;;
+let _ARM64_INS_UMULL2 = 878;;
+let _ARM64_INS_UQADD = 879;;
+let _ARM64_INS_UQDECB = 880;;
+let _ARM64_INS_UQDECD = 881;;
+let _ARM64_INS_UQDECH = 882;;
+let _ARM64_INS_UQDECP = 883;;
+let _ARM64_INS_UQDECW = 884;;
+let _ARM64_INS_UQINCB = 885;;
+let _ARM64_INS_UQINCD = 886;;
+let _ARM64_INS_UQINCH = 887;;
+let _ARM64_INS_UQINCP = 888;;
+let _ARM64_INS_UQINCW = 889;;
+let _ARM64_INS_UQRSHL = 890;;
+let _ARM64_INS_UQRSHRN = 891;;
+let _ARM64_INS_UQRSHRN2 = 892;;
+let _ARM64_INS_UQSHL = 893;;
+let _ARM64_INS_UQSHRN = 894;;
+let _ARM64_INS_UQSHRN2 = 895;;
+let _ARM64_INS_UQSUB = 896;;
+let _ARM64_INS_UQXTN = 897;;
+let _ARM64_INS_UQXTN2 = 898;;
+let _ARM64_INS_URECPE = 899;;
+let _ARM64_INS_URHADD = 900;;
+let _ARM64_INS_URSHL = 901;;
+let _ARM64_INS_URSHR = 902;;
+let _ARM64_INS_URSQRTE = 903;;
+let _ARM64_INS_URSRA = 904;;
+let _ARM64_INS_USHL = 905;;
+let _ARM64_INS_USHLL = 906;;
+let _ARM64_INS_USHLL2 = 907;;
+let _ARM64_INS_USHR = 908;;
+let _ARM64_INS_USQADD = 909;;
+let _ARM64_INS_USRA = 910;;
+let _ARM64_INS_USUBL = 911;;
+let _ARM64_INS_USUBL2 = 912;;
+let _ARM64_INS_USUBW = 913;;
+let _ARM64_INS_USUBW2 = 914;;
+let _ARM64_INS_UUNPKHI = 915;;
+let _ARM64_INS_UUNPKLO = 916;;
+let _ARM64_INS_UXTB = 917;;
+let _ARM64_INS_UXTH = 918;;
+let _ARM64_INS_UXTL = 919;;
+let _ARM64_INS_UXTL2 = 920;;
+let _ARM64_INS_UXTW = 921;;
+let _ARM64_INS_UZP1 = 922;;
+let _ARM64_INS_UZP2 = 923;;
+let _ARM64_INS_WFE = 924;;
+let _ARM64_INS_WFI = 925;;
+let _ARM64_INS_WHILELE = 926;;
+let _ARM64_INS_WHILELO = 927;;
+let _ARM64_INS_WHILELS = 928;;
+let _ARM64_INS_WHILELT = 929;;
+let _ARM64_INS_WRFFR = 930;;
+let _ARM64_INS_XAR = 931;;
+let _ARM64_INS_XPACD = 932;;
+let _ARM64_INS_XPACI = 933;;
+let _ARM64_INS_XPACLRI = 934;;
+let _ARM64_INS_XTN = 935;;
+let _ARM64_INS_XTN2 = 936;;
+let _ARM64_INS_YIELD = 937;;
+let _ARM64_INS_ZIP1 = 938;;
+let _ARM64_INS_ZIP2 = 939;;
+let _ARM64_INS_SBFIZ = 940;;
+let _ARM64_INS_UBFIZ = 941;;
+let _ARM64_INS_SBFX = 942;;
+let _ARM64_INS_UBFX = 943;;
+let _ARM64_INS_BFI = 944;;
+let _ARM64_INS_BFXIL = 945;;
+let _ARM64_INS_IC = 946;;
+let _ARM64_INS_DC = 947;;
+let _ARM64_INS_AT = 948;;
+let _ARM64_INS_TLBI = 949;;
+let _ARM64_INS_ENDING = 950;;
+
+let _ARM64_GRP_INVALID = 0;;
+let _ARM64_GRP_JUMP = 1;;
+let _ARM64_GRP_CALL = 2;;
+let _ARM64_GRP_RET = 3;;
+let _ARM64_GRP_INT = 4;;
+let _ARM64_GRP_PRIVILEGE = 6;;
+let _ARM64_GRP_BRANCH_RELATIVE = 7;;
+let _ARM64_GRP_CRYPTO = 128;;
+let _ARM64_GRP_FPARMV8 = 129;;
+let _ARM64_GRP_NEON = 130;;
+let _ARM64_GRP_CRC = 131;;
+let _ARM64_GRP_AES = 132;;
+let _ARM64_GRP_DOTPROD = 133;;
+let _ARM64_GRP_FULLFP16 = 134;;
+let _ARM64_GRP_LSE = 135;;
+let _ARM64_GRP_RCPC = 136;;
+let _ARM64_GRP_RDM = 137;;
+let _ARM64_GRP_SHA2 = 138;;
+let _ARM64_GRP_SHA3 = 139;;
+let _ARM64_GRP_SM4 = 140;;
+let _ARM64_GRP_SVE = 141;;
+let _ARM64_GRP_V8_1A = 142;;
+let _ARM64_GRP_V8_3A = 143;;
+let _ARM64_GRP_V8_4A = 144;;
+let _ARM64_GRP_ENDING = 145;;
diff --git a/capstone/bindings/ocaml/arm_const.ml b/capstone/bindings/ocaml/arm_const.ml
new file mode 100644
index 000000000..5b3972a09
--- /dev/null
+++ b/capstone/bindings/ocaml/arm_const.ml
@@ -0,0 +1,830 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm_const.ml] *)
+
+let _ARM_SFT_INVALID = 0;;
+let _ARM_SFT_ASR = 1;;
+let _ARM_SFT_LSL = 2;;
+let _ARM_SFT_LSR = 3;;
+let _ARM_SFT_ROR = 4;;
+let _ARM_SFT_RRX = 5;;
+let _ARM_SFT_ASR_REG = 6;;
+let _ARM_SFT_LSL_REG = 7;;
+let _ARM_SFT_LSR_REG = 8;;
+let _ARM_SFT_ROR_REG = 9;;
+let _ARM_SFT_RRX_REG = 10;;
+
+let _ARM_CC_INVALID = 0;;
+let _ARM_CC_EQ = 1;;
+let _ARM_CC_NE = 2;;
+let _ARM_CC_HS = 3;;
+let _ARM_CC_LO = 4;;
+let _ARM_CC_MI = 5;;
+let _ARM_CC_PL = 6;;
+let _ARM_CC_VS = 7;;
+let _ARM_CC_VC = 8;;
+let _ARM_CC_HI = 9;;
+let _ARM_CC_LS = 10;;
+let _ARM_CC_GE = 11;;
+let _ARM_CC_LT = 12;;
+let _ARM_CC_GT = 13;;
+let _ARM_CC_LE = 14;;
+let _ARM_CC_AL = 15;;
+
+let _ARM_SYSREG_INVALID = 0;;
+let _ARM_SYSREG_SPSR_C = 1;;
+let _ARM_SYSREG_SPSR_X = 2;;
+let _ARM_SYSREG_SPSR_S = 4;;
+let _ARM_SYSREG_SPSR_F = 8;;
+let _ARM_SYSREG_CPSR_C = 16;;
+let _ARM_SYSREG_CPSR_X = 32;;
+let _ARM_SYSREG_CPSR_S = 64;;
+let _ARM_SYSREG_CPSR_F = 128;;
+let _ARM_SYSREG_APSR = 256;;
+let _ARM_SYSREG_APSR_G = 257;;
+let _ARM_SYSREG_APSR_NZCVQ = 258;;
+let _ARM_SYSREG_APSR_NZCVQG = 259;;
+let _ARM_SYSREG_IAPSR = 260;;
+let _ARM_SYSREG_IAPSR_G = 261;;
+let _ARM_SYSREG_IAPSR_NZCVQG = 262;;
+let _ARM_SYSREG_IAPSR_NZCVQ = 263;;
+let _ARM_SYSREG_EAPSR = 264;;
+let _ARM_SYSREG_EAPSR_G = 265;;
+let _ARM_SYSREG_EAPSR_NZCVQG = 266;;
+let _ARM_SYSREG_EAPSR_NZCVQ = 267;;
+let _ARM_SYSREG_XPSR = 268;;
+let _ARM_SYSREG_XPSR_G = 269;;
+let _ARM_SYSREG_XPSR_NZCVQG = 270;;
+let _ARM_SYSREG_XPSR_NZCVQ = 271;;
+let _ARM_SYSREG_IPSR = 272;;
+let _ARM_SYSREG_EPSR = 273;;
+let _ARM_SYSREG_IEPSR = 274;;
+let _ARM_SYSREG_MSP = 275;;
+let _ARM_SYSREG_PSP = 276;;
+let _ARM_SYSREG_PRIMASK = 277;;
+let _ARM_SYSREG_BASEPRI = 278;;
+let _ARM_SYSREG_BASEPRI_MAX = 279;;
+let _ARM_SYSREG_FAULTMASK = 280;;
+let _ARM_SYSREG_CONTROL = 281;;
+let _ARM_SYSREG_MSPLIM = 282;;
+let _ARM_SYSREG_PSPLIM = 283;;
+let _ARM_SYSREG_MSP_NS = 284;;
+let _ARM_SYSREG_PSP_NS = 285;;
+let _ARM_SYSREG_MSPLIM_NS = 286;;
+let _ARM_SYSREG_PSPLIM_NS = 287;;
+let _ARM_SYSREG_PRIMASK_NS = 288;;
+let _ARM_SYSREG_BASEPRI_NS = 289;;
+let _ARM_SYSREG_FAULTMASK_NS = 290;;
+let _ARM_SYSREG_CONTROL_NS = 291;;
+let _ARM_SYSREG_SP_NS = 292;;
+let _ARM_SYSREG_R8_USR = 293;;
+let _ARM_SYSREG_R9_USR = 294;;
+let _ARM_SYSREG_R10_USR = 295;;
+let _ARM_SYSREG_R11_USR = 296;;
+let _ARM_SYSREG_R12_USR = 297;;
+let _ARM_SYSREG_SP_USR = 298;;
+let _ARM_SYSREG_LR_USR = 299;;
+let _ARM_SYSREG_R8_FIQ = 300;;
+let _ARM_SYSREG_R9_FIQ = 301;;
+let _ARM_SYSREG_R10_FIQ = 302;;
+let _ARM_SYSREG_R11_FIQ = 303;;
+let _ARM_SYSREG_R12_FIQ = 304;;
+let _ARM_SYSREG_SP_FIQ = 305;;
+let _ARM_SYSREG_LR_FIQ = 306;;
+let _ARM_SYSREG_LR_IRQ = 307;;
+let _ARM_SYSREG_SP_IRQ = 308;;
+let _ARM_SYSREG_LR_SVC = 309;;
+let _ARM_SYSREG_SP_SVC = 310;;
+let _ARM_SYSREG_LR_ABT = 311;;
+let _ARM_SYSREG_SP_ABT = 312;;
+let _ARM_SYSREG_LR_UND = 313;;
+let _ARM_SYSREG_SP_UND = 314;;
+let _ARM_SYSREG_LR_MON = 315;;
+let _ARM_SYSREG_SP_MON = 316;;
+let _ARM_SYSREG_ELR_HYP = 317;;
+let _ARM_SYSREG_SP_HYP = 318;;
+let _ARM_SYSREG_SPSR_FIQ = 319;;
+let _ARM_SYSREG_SPSR_IRQ = 320;;
+let _ARM_SYSREG_SPSR_SVC = 321;;
+let _ARM_SYSREG_SPSR_ABT = 322;;
+let _ARM_SYSREG_SPSR_UND = 323;;
+let _ARM_SYSREG_SPSR_MON = 324;;
+let _ARM_SYSREG_SPSR_HYP = 325;;
+
+let _ARM_MB_INVALID = 0;;
+let _ARM_MB_RESERVED_0 = 1;;
+let _ARM_MB_OSHLD = 2;;
+let _ARM_MB_OSHST = 3;;
+let _ARM_MB_OSH = 4;;
+let _ARM_MB_RESERVED_4 = 5;;
+let _ARM_MB_NSHLD = 6;;
+let _ARM_MB_NSHST = 7;;
+let _ARM_MB_NSH = 8;;
+let _ARM_MB_RESERVED_8 = 9;;
+let _ARM_MB_ISHLD = 10;;
+let _ARM_MB_ISHST = 11;;
+let _ARM_MB_ISH = 12;;
+let _ARM_MB_RESERVED_12 = 13;;
+let _ARM_MB_LD = 14;;
+let _ARM_MB_ST = 15;;
+let _ARM_MB_SY = 16;;
+
+let _ARM_OP_INVALID = 0;;
+let _ARM_OP_REG = 1;;
+let _ARM_OP_IMM = 2;;
+let _ARM_OP_MEM = 3;;
+let _ARM_OP_FP = 4;;
+let _ARM_OP_CIMM = 64;;
+let _ARM_OP_PIMM = 65;;
+let _ARM_OP_SETEND = 66;;
+let _ARM_OP_SYSREG = 67;;
+
+let _ARM_SETEND_INVALID = 0;;
+let _ARM_SETEND_BE = 1;;
+let _ARM_SETEND_LE = 2;;
+
+let _ARM_CPSMODE_INVALID = 0;;
+let _ARM_CPSMODE_IE = 2;;
+let _ARM_CPSMODE_ID = 3;;
+
+let _ARM_CPSFLAG_INVALID = 0;;
+let _ARM_CPSFLAG_F = 1;;
+let _ARM_CPSFLAG_I = 2;;
+let _ARM_CPSFLAG_A = 4;;
+let _ARM_CPSFLAG_NONE = 16;;
+
+let _ARM_VECTORDATA_INVALID = 0;;
+let _ARM_VECTORDATA_I8 = 1;;
+let _ARM_VECTORDATA_I16 = 2;;
+let _ARM_VECTORDATA_I32 = 3;;
+let _ARM_VECTORDATA_I64 = 4;;
+let _ARM_VECTORDATA_S8 = 5;;
+let _ARM_VECTORDATA_S16 = 6;;
+let _ARM_VECTORDATA_S32 = 7;;
+let _ARM_VECTORDATA_S64 = 8;;
+let _ARM_VECTORDATA_U8 = 9;;
+let _ARM_VECTORDATA_U16 = 10;;
+let _ARM_VECTORDATA_U32 = 11;;
+let _ARM_VECTORDATA_U64 = 12;;
+let _ARM_VECTORDATA_P8 = 13;;
+let _ARM_VECTORDATA_F16 = 14;;
+let _ARM_VECTORDATA_F32 = 15;;
+let _ARM_VECTORDATA_F64 = 16;;
+let _ARM_VECTORDATA_F16F64 = 17;;
+let _ARM_VECTORDATA_F64F16 = 18;;
+let _ARM_VECTORDATA_F32F16 = 19;;
+let _ARM_VECTORDATA_F16F32 = 20;;
+let _ARM_VECTORDATA_F64F32 = 21;;
+let _ARM_VECTORDATA_F32F64 = 22;;
+let _ARM_VECTORDATA_S32F32 = 23;;
+let _ARM_VECTORDATA_U32F32 = 24;;
+let _ARM_VECTORDATA_F32S32 = 25;;
+let _ARM_VECTORDATA_F32U32 = 26;;
+let _ARM_VECTORDATA_F64S16 = 27;;
+let _ARM_VECTORDATA_F32S16 = 28;;
+let _ARM_VECTORDATA_F64S32 = 29;;
+let _ARM_VECTORDATA_S16F64 = 30;;
+let _ARM_VECTORDATA_S16F32 = 31;;
+let _ARM_VECTORDATA_S32F64 = 32;;
+let _ARM_VECTORDATA_U16F64 = 33;;
+let _ARM_VECTORDATA_U16F32 = 34;;
+let _ARM_VECTORDATA_U32F64 = 35;;
+let _ARM_VECTORDATA_F64U16 = 36;;
+let _ARM_VECTORDATA_F32U16 = 37;;
+let _ARM_VECTORDATA_F64U32 = 38;;
+let _ARM_VECTORDATA_F16U16 = 39;;
+let _ARM_VECTORDATA_U16F16 = 40;;
+let _ARM_VECTORDATA_F16U32 = 41;;
+let _ARM_VECTORDATA_U32F16 = 42;;
+
+let _ARM_REG_INVALID = 0;;
+let _ARM_REG_APSR = 1;;
+let _ARM_REG_APSR_NZCV = 2;;
+let _ARM_REG_CPSR = 3;;
+let _ARM_REG_FPEXC = 4;;
+let _ARM_REG_FPINST = 5;;
+let _ARM_REG_FPSCR = 6;;
+let _ARM_REG_FPSCR_NZCV = 7;;
+let _ARM_REG_FPSID = 8;;
+let _ARM_REG_ITSTATE = 9;;
+let _ARM_REG_LR = 10;;
+let _ARM_REG_PC = 11;;
+let _ARM_REG_SP = 12;;
+let _ARM_REG_SPSR = 13;;
+let _ARM_REG_D0 = 14;;
+let _ARM_REG_D1 = 15;;
+let _ARM_REG_D2 = 16;;
+let _ARM_REG_D3 = 17;;
+let _ARM_REG_D4 = 18;;
+let _ARM_REG_D5 = 19;;
+let _ARM_REG_D6 = 20;;
+let _ARM_REG_D7 = 21;;
+let _ARM_REG_D8 = 22;;
+let _ARM_REG_D9 = 23;;
+let _ARM_REG_D10 = 24;;
+let _ARM_REG_D11 = 25;;
+let _ARM_REG_D12 = 26;;
+let _ARM_REG_D13 = 27;;
+let _ARM_REG_D14 = 28;;
+let _ARM_REG_D15 = 29;;
+let _ARM_REG_D16 = 30;;
+let _ARM_REG_D17 = 31;;
+let _ARM_REG_D18 = 32;;
+let _ARM_REG_D19 = 33;;
+let _ARM_REG_D20 = 34;;
+let _ARM_REG_D21 = 35;;
+let _ARM_REG_D22 = 36;;
+let _ARM_REG_D23 = 37;;
+let _ARM_REG_D24 = 38;;
+let _ARM_REG_D25 = 39;;
+let _ARM_REG_D26 = 40;;
+let _ARM_REG_D27 = 41;;
+let _ARM_REG_D28 = 42;;
+let _ARM_REG_D29 = 43;;
+let _ARM_REG_D30 = 44;;
+let _ARM_REG_D31 = 45;;
+let _ARM_REG_FPINST2 = 46;;
+let _ARM_REG_MVFR0 = 47;;
+let _ARM_REG_MVFR1 = 48;;
+let _ARM_REG_MVFR2 = 49;;
+let _ARM_REG_Q0 = 50;;
+let _ARM_REG_Q1 = 51;;
+let _ARM_REG_Q2 = 52;;
+let _ARM_REG_Q3 = 53;;
+let _ARM_REG_Q4 = 54;;
+let _ARM_REG_Q5 = 55;;
+let _ARM_REG_Q6 = 56;;
+let _ARM_REG_Q7 = 57;;
+let _ARM_REG_Q8 = 58;;
+let _ARM_REG_Q9 = 59;;
+let _ARM_REG_Q10 = 60;;
+let _ARM_REG_Q11 = 61;;
+let _ARM_REG_Q12 = 62;;
+let _ARM_REG_Q13 = 63;;
+let _ARM_REG_Q14 = 64;;
+let _ARM_REG_Q15 = 65;;
+let _ARM_REG_R0 = 66;;
+let _ARM_REG_R1 = 67;;
+let _ARM_REG_R2 = 68;;
+let _ARM_REG_R3 = 69;;
+let _ARM_REG_R4 = 70;;
+let _ARM_REG_R5 = 71;;
+let _ARM_REG_R6 = 72;;
+let _ARM_REG_R7 = 73;;
+let _ARM_REG_R8 = 74;;
+let _ARM_REG_R9 = 75;;
+let _ARM_REG_R10 = 76;;
+let _ARM_REG_R11 = 77;;
+let _ARM_REG_R12 = 78;;
+let _ARM_REG_S0 = 79;;
+let _ARM_REG_S1 = 80;;
+let _ARM_REG_S2 = 81;;
+let _ARM_REG_S3 = 82;;
+let _ARM_REG_S4 = 83;;
+let _ARM_REG_S5 = 84;;
+let _ARM_REG_S6 = 85;;
+let _ARM_REG_S7 = 86;;
+let _ARM_REG_S8 = 87;;
+let _ARM_REG_S9 = 88;;
+let _ARM_REG_S10 = 89;;
+let _ARM_REG_S11 = 90;;
+let _ARM_REG_S12 = 91;;
+let _ARM_REG_S13 = 92;;
+let _ARM_REG_S14 = 93;;
+let _ARM_REG_S15 = 94;;
+let _ARM_REG_S16 = 95;;
+let _ARM_REG_S17 = 96;;
+let _ARM_REG_S18 = 97;;
+let _ARM_REG_S19 = 98;;
+let _ARM_REG_S20 = 99;;
+let _ARM_REG_S21 = 100;;
+let _ARM_REG_S22 = 101;;
+let _ARM_REG_S23 = 102;;
+let _ARM_REG_S24 = 103;;
+let _ARM_REG_S25 = 104;;
+let _ARM_REG_S26 = 105;;
+let _ARM_REG_S27 = 106;;
+let _ARM_REG_S28 = 107;;
+let _ARM_REG_S29 = 108;;
+let _ARM_REG_S30 = 109;;
+let _ARM_REG_S31 = 110;;
+let _ARM_REG_ENDING = 111;;
+let _ARM_REG_R13 = _ARM_REG_SP;;
+let _ARM_REG_R14 = _ARM_REG_LR;;
+let _ARM_REG_R15 = _ARM_REG_PC;;
+let _ARM_REG_SB = _ARM_REG_R9;;
+let _ARM_REG_SL = _ARM_REG_R10;;
+let _ARM_REG_FP = _ARM_REG_R11;;
+let _ARM_REG_IP = _ARM_REG_R12;;
+
+let _ARM_INS_INVALID = 0;;
+let _ARM_INS_ADC = 1;;
+let _ARM_INS_ADD = 2;;
+let _ARM_INS_ADDW = 3;;
+let _ARM_INS_ADR = 4;;
+let _ARM_INS_AESD = 5;;
+let _ARM_INS_AESE = 6;;
+let _ARM_INS_AESIMC = 7;;
+let _ARM_INS_AESMC = 8;;
+let _ARM_INS_AND = 9;;
+let _ARM_INS_ASR = 10;;
+let _ARM_INS_B = 11;;
+let _ARM_INS_BFC = 12;;
+let _ARM_INS_BFI = 13;;
+let _ARM_INS_BIC = 14;;
+let _ARM_INS_BKPT = 15;;
+let _ARM_INS_BL = 16;;
+let _ARM_INS_BLX = 17;;
+let _ARM_INS_BLXNS = 18;;
+let _ARM_INS_BX = 19;;
+let _ARM_INS_BXJ = 20;;
+let _ARM_INS_BXNS = 21;;
+let _ARM_INS_CBNZ = 22;;
+let _ARM_INS_CBZ = 23;;
+let _ARM_INS_CDP = 24;;
+let _ARM_INS_CDP2 = 25;;
+let _ARM_INS_CLREX = 26;;
+let _ARM_INS_CLZ = 27;;
+let _ARM_INS_CMN = 28;;
+let _ARM_INS_CMP = 29;;
+let _ARM_INS_CPS = 30;;
+let _ARM_INS_CRC32B = 31;;
+let _ARM_INS_CRC32CB = 32;;
+let _ARM_INS_CRC32CH = 33;;
+let _ARM_INS_CRC32CW = 34;;
+let _ARM_INS_CRC32H = 35;;
+let _ARM_INS_CRC32W = 36;;
+let _ARM_INS_CSDB = 37;;
+let _ARM_INS_DBG = 38;;
+let _ARM_INS_DCPS1 = 39;;
+let _ARM_INS_DCPS2 = 40;;
+let _ARM_INS_DCPS3 = 41;;
+let _ARM_INS_DFB = 42;;
+let _ARM_INS_DMB = 43;;
+let _ARM_INS_DSB = 44;;
+let _ARM_INS_EOR = 45;;
+let _ARM_INS_ERET = 46;;
+let _ARM_INS_ESB = 47;;
+let _ARM_INS_FADDD = 48;;
+let _ARM_INS_FADDS = 49;;
+let _ARM_INS_FCMPZD = 50;;
+let _ARM_INS_FCMPZS = 51;;
+let _ARM_INS_FCONSTD = 52;;
+let _ARM_INS_FCONSTS = 53;;
+let _ARM_INS_FLDMDBX = 54;;
+let _ARM_INS_FLDMIAX = 55;;
+let _ARM_INS_FMDHR = 56;;
+let _ARM_INS_FMDLR = 57;;
+let _ARM_INS_FMSTAT = 58;;
+let _ARM_INS_FSTMDBX = 59;;
+let _ARM_INS_FSTMIAX = 60;;
+let _ARM_INS_FSUBD = 61;;
+let _ARM_INS_FSUBS = 62;;
+let _ARM_INS_HINT = 63;;
+let _ARM_INS_HLT = 64;;
+let _ARM_INS_HVC = 65;;
+let _ARM_INS_ISB = 66;;
+let _ARM_INS_IT = 67;;
+let _ARM_INS_LDA = 68;;
+let _ARM_INS_LDAB = 69;;
+let _ARM_INS_LDAEX = 70;;
+let _ARM_INS_LDAEXB = 71;;
+let _ARM_INS_LDAEXD = 72;;
+let _ARM_INS_LDAEXH = 73;;
+let _ARM_INS_LDAH = 74;;
+let _ARM_INS_LDC = 75;;
+let _ARM_INS_LDC2 = 76;;
+let _ARM_INS_LDC2L = 77;;
+let _ARM_INS_LDCL = 78;;
+let _ARM_INS_LDM = 79;;
+let _ARM_INS_LDMDA = 80;;
+let _ARM_INS_LDMDB = 81;;
+let _ARM_INS_LDMIB = 82;;
+let _ARM_INS_LDR = 83;;
+let _ARM_INS_LDRB = 84;;
+let _ARM_INS_LDRBT = 85;;
+let _ARM_INS_LDRD = 86;;
+let _ARM_INS_LDREX = 87;;
+let _ARM_INS_LDREXB = 88;;
+let _ARM_INS_LDREXD = 89;;
+let _ARM_INS_LDREXH = 90;;
+let _ARM_INS_LDRH = 91;;
+let _ARM_INS_LDRHT = 92;;
+let _ARM_INS_LDRSB = 93;;
+let _ARM_INS_LDRSBT = 94;;
+let _ARM_INS_LDRSH = 95;;
+let _ARM_INS_LDRSHT = 96;;
+let _ARM_INS_LDRT = 97;;
+let _ARM_INS_LSL = 98;;
+let _ARM_INS_LSR = 99;;
+let _ARM_INS_MCR = 100;;
+let _ARM_INS_MCR2 = 101;;
+let _ARM_INS_MCRR = 102;;
+let _ARM_INS_MCRR2 = 103;;
+let _ARM_INS_MLA = 104;;
+let _ARM_INS_MLS = 105;;
+let _ARM_INS_MOV = 106;;
+let _ARM_INS_MOVS = 107;;
+let _ARM_INS_MOVT = 108;;
+let _ARM_INS_MOVW = 109;;
+let _ARM_INS_MRC = 110;;
+let _ARM_INS_MRC2 = 111;;
+let _ARM_INS_MRRC = 112;;
+let _ARM_INS_MRRC2 = 113;;
+let _ARM_INS_MRS = 114;;
+let _ARM_INS_MSR = 115;;
+let _ARM_INS_MUL = 116;;
+let _ARM_INS_MVN = 117;;
+let _ARM_INS_NEG = 118;;
+let _ARM_INS_NOP = 119;;
+let _ARM_INS_ORN = 120;;
+let _ARM_INS_ORR = 121;;
+let _ARM_INS_PKHBT = 122;;
+let _ARM_INS_PKHTB = 123;;
+let _ARM_INS_PLD = 124;;
+let _ARM_INS_PLDW = 125;;
+let _ARM_INS_PLI = 126;;
+let _ARM_INS_POP = 127;;
+let _ARM_INS_PUSH = 128;;
+let _ARM_INS_QADD = 129;;
+let _ARM_INS_QADD16 = 130;;
+let _ARM_INS_QADD8 = 131;;
+let _ARM_INS_QASX = 132;;
+let _ARM_INS_QDADD = 133;;
+let _ARM_INS_QDSUB = 134;;
+let _ARM_INS_QSAX = 135;;
+let _ARM_INS_QSUB = 136;;
+let _ARM_INS_QSUB16 = 137;;
+let _ARM_INS_QSUB8 = 138;;
+let _ARM_INS_RBIT = 139;;
+let _ARM_INS_REV = 140;;
+let _ARM_INS_REV16 = 141;;
+let _ARM_INS_REVSH = 142;;
+let _ARM_INS_RFEDA = 143;;
+let _ARM_INS_RFEDB = 144;;
+let _ARM_INS_RFEIA = 145;;
+let _ARM_INS_RFEIB = 146;;
+let _ARM_INS_ROR = 147;;
+let _ARM_INS_RRX = 148;;
+let _ARM_INS_RSB = 149;;
+let _ARM_INS_RSC = 150;;
+let _ARM_INS_SADD16 = 151;;
+let _ARM_INS_SADD8 = 152;;
+let _ARM_INS_SASX = 153;;
+let _ARM_INS_SBC = 154;;
+let _ARM_INS_SBFX = 155;;
+let _ARM_INS_SDIV = 156;;
+let _ARM_INS_SEL = 157;;
+let _ARM_INS_SETEND = 158;;
+let _ARM_INS_SETPAN = 159;;
+let _ARM_INS_SEV = 160;;
+let _ARM_INS_SEVL = 161;;
+let _ARM_INS_SG = 162;;
+let _ARM_INS_SHA1C = 163;;
+let _ARM_INS_SHA1H = 164;;
+let _ARM_INS_SHA1M = 165;;
+let _ARM_INS_SHA1P = 166;;
+let _ARM_INS_SHA1SU0 = 167;;
+let _ARM_INS_SHA1SU1 = 168;;
+let _ARM_INS_SHA256H = 169;;
+let _ARM_INS_SHA256H2 = 170;;
+let _ARM_INS_SHA256SU0 = 171;;
+let _ARM_INS_SHA256SU1 = 172;;
+let _ARM_INS_SHADD16 = 173;;
+let _ARM_INS_SHADD8 = 174;;
+let _ARM_INS_SHASX = 175;;
+let _ARM_INS_SHSAX = 176;;
+let _ARM_INS_SHSUB16 = 177;;
+let _ARM_INS_SHSUB8 = 178;;
+let _ARM_INS_SMC = 179;;
+let _ARM_INS_SMLABB = 180;;
+let _ARM_INS_SMLABT = 181;;
+let _ARM_INS_SMLAD = 182;;
+let _ARM_INS_SMLADX = 183;;
+let _ARM_INS_SMLAL = 184;;
+let _ARM_INS_SMLALBB = 185;;
+let _ARM_INS_SMLALBT = 186;;
+let _ARM_INS_SMLALD = 187;;
+let _ARM_INS_SMLALDX = 188;;
+let _ARM_INS_SMLALTB = 189;;
+let _ARM_INS_SMLALTT = 190;;
+let _ARM_INS_SMLATB = 191;;
+let _ARM_INS_SMLATT = 192;;
+let _ARM_INS_SMLAWB = 193;;
+let _ARM_INS_SMLAWT = 194;;
+let _ARM_INS_SMLSD = 195;;
+let _ARM_INS_SMLSDX = 196;;
+let _ARM_INS_SMLSLD = 197;;
+let _ARM_INS_SMLSLDX = 198;;
+let _ARM_INS_SMMLA = 199;;
+let _ARM_INS_SMMLAR = 200;;
+let _ARM_INS_SMMLS = 201;;
+let _ARM_INS_SMMLSR = 202;;
+let _ARM_INS_SMMUL = 203;;
+let _ARM_INS_SMMULR = 204;;
+let _ARM_INS_SMUAD = 205;;
+let _ARM_INS_SMUADX = 206;;
+let _ARM_INS_SMULBB = 207;;
+let _ARM_INS_SMULBT = 208;;
+let _ARM_INS_SMULL = 209;;
+let _ARM_INS_SMULTB = 210;;
+let _ARM_INS_SMULTT = 211;;
+let _ARM_INS_SMULWB = 212;;
+let _ARM_INS_SMULWT = 213;;
+let _ARM_INS_SMUSD = 214;;
+let _ARM_INS_SMUSDX = 215;;
+let _ARM_INS_SRSDA = 216;;
+let _ARM_INS_SRSDB = 217;;
+let _ARM_INS_SRSIA = 218;;
+let _ARM_INS_SRSIB = 219;;
+let _ARM_INS_SSAT = 220;;
+let _ARM_INS_SSAT16 = 221;;
+let _ARM_INS_SSAX = 222;;
+let _ARM_INS_SSUB16 = 223;;
+let _ARM_INS_SSUB8 = 224;;
+let _ARM_INS_STC = 225;;
+let _ARM_INS_STC2 = 226;;
+let _ARM_INS_STC2L = 227;;
+let _ARM_INS_STCL = 228;;
+let _ARM_INS_STL = 229;;
+let _ARM_INS_STLB = 230;;
+let _ARM_INS_STLEX = 231;;
+let _ARM_INS_STLEXB = 232;;
+let _ARM_INS_STLEXD = 233;;
+let _ARM_INS_STLEXH = 234;;
+let _ARM_INS_STLH = 235;;
+let _ARM_INS_STM = 236;;
+let _ARM_INS_STMDA = 237;;
+let _ARM_INS_STMDB = 238;;
+let _ARM_INS_STMIB = 239;;
+let _ARM_INS_STR = 240;;
+let _ARM_INS_STRB = 241;;
+let _ARM_INS_STRBT = 242;;
+let _ARM_INS_STRD = 243;;
+let _ARM_INS_STREX = 244;;
+let _ARM_INS_STREXB = 245;;
+let _ARM_INS_STREXD = 246;;
+let _ARM_INS_STREXH = 247;;
+let _ARM_INS_STRH = 248;;
+let _ARM_INS_STRHT = 249;;
+let _ARM_INS_STRT = 250;;
+let _ARM_INS_SUB = 251;;
+let _ARM_INS_SUBS = 252;;
+let _ARM_INS_SUBW = 253;;
+let _ARM_INS_SVC = 254;;
+let _ARM_INS_SWP = 255;;
+let _ARM_INS_SWPB = 256;;
+let _ARM_INS_SXTAB = 257;;
+let _ARM_INS_SXTAB16 = 258;;
+let _ARM_INS_SXTAH = 259;;
+let _ARM_INS_SXTB = 260;;
+let _ARM_INS_SXTB16 = 261;;
+let _ARM_INS_SXTH = 262;;
+let _ARM_INS_TBB = 263;;
+let _ARM_INS_TBH = 264;;
+let _ARM_INS_TEQ = 265;;
+let _ARM_INS_TRAP = 266;;
+let _ARM_INS_TSB = 267;;
+let _ARM_INS_TST = 268;;
+let _ARM_INS_TT = 269;;
+let _ARM_INS_TTA = 270;;
+let _ARM_INS_TTAT = 271;;
+let _ARM_INS_TTT = 272;;
+let _ARM_INS_UADD16 = 273;;
+let _ARM_INS_UADD8 = 274;;
+let _ARM_INS_UASX = 275;;
+let _ARM_INS_UBFX = 276;;
+let _ARM_INS_UDF = 277;;
+let _ARM_INS_UDIV = 278;;
+let _ARM_INS_UHADD16 = 279;;
+let _ARM_INS_UHADD8 = 280;;
+let _ARM_INS_UHASX = 281;;
+let _ARM_INS_UHSAX = 282;;
+let _ARM_INS_UHSUB16 = 283;;
+let _ARM_INS_UHSUB8 = 284;;
+let _ARM_INS_UMAAL = 285;;
+let _ARM_INS_UMLAL = 286;;
+let _ARM_INS_UMULL = 287;;
+let _ARM_INS_UQADD16 = 288;;
+let _ARM_INS_UQADD8 = 289;;
+let _ARM_INS_UQASX = 290;;
+let _ARM_INS_UQSAX = 291;;
+let _ARM_INS_UQSUB16 = 292;;
+let _ARM_INS_UQSUB8 = 293;;
+let _ARM_INS_USAD8 = 294;;
+let _ARM_INS_USADA8 = 295;;
+let _ARM_INS_USAT = 296;;
+let _ARM_INS_USAT16 = 297;;
+let _ARM_INS_USAX = 298;;
+let _ARM_INS_USUB16 = 299;;
+let _ARM_INS_USUB8 = 300;;
+let _ARM_INS_UXTAB = 301;;
+let _ARM_INS_UXTAB16 = 302;;
+let _ARM_INS_UXTAH = 303;;
+let _ARM_INS_UXTB = 304;;
+let _ARM_INS_UXTB16 = 305;;
+let _ARM_INS_UXTH = 306;;
+let _ARM_INS_VABA = 307;;
+let _ARM_INS_VABAL = 308;;
+let _ARM_INS_VABD = 309;;
+let _ARM_INS_VABDL = 310;;
+let _ARM_INS_VABS = 311;;
+let _ARM_INS_VACGE = 312;;
+let _ARM_INS_VACGT = 313;;
+let _ARM_INS_VACLE = 314;;
+let _ARM_INS_VACLT = 315;;
+let _ARM_INS_VADD = 316;;
+let _ARM_INS_VADDHN = 317;;
+let _ARM_INS_VADDL = 318;;
+let _ARM_INS_VADDW = 319;;
+let _ARM_INS_VAND = 320;;
+let _ARM_INS_VBIC = 321;;
+let _ARM_INS_VBIF = 322;;
+let _ARM_INS_VBIT = 323;;
+let _ARM_INS_VBSL = 324;;
+let _ARM_INS_VCADD = 325;;
+let _ARM_INS_VCEQ = 326;;
+let _ARM_INS_VCGE = 327;;
+let _ARM_INS_VCGT = 328;;
+let _ARM_INS_VCLE = 329;;
+let _ARM_INS_VCLS = 330;;
+let _ARM_INS_VCLT = 331;;
+let _ARM_INS_VCLZ = 332;;
+let _ARM_INS_VCMLA = 333;;
+let _ARM_INS_VCMP = 334;;
+let _ARM_INS_VCMPE = 335;;
+let _ARM_INS_VCNT = 336;;
+let _ARM_INS_VCVT = 337;;
+let _ARM_INS_VCVTA = 338;;
+let _ARM_INS_VCVTB = 339;;
+let _ARM_INS_VCVTM = 340;;
+let _ARM_INS_VCVTN = 341;;
+let _ARM_INS_VCVTP = 342;;
+let _ARM_INS_VCVTR = 343;;
+let _ARM_INS_VCVTT = 344;;
+let _ARM_INS_VDIV = 345;;
+let _ARM_INS_VDUP = 346;;
+let _ARM_INS_VEOR = 347;;
+let _ARM_INS_VEXT = 348;;
+let _ARM_INS_VFMA = 349;;
+let _ARM_INS_VFMS = 350;;
+let _ARM_INS_VFNMA = 351;;
+let _ARM_INS_VFNMS = 352;;
+let _ARM_INS_VHADD = 353;;
+let _ARM_INS_VHSUB = 354;;
+let _ARM_INS_VINS = 355;;
+let _ARM_INS_VJCVT = 356;;
+let _ARM_INS_VLD1 = 357;;
+let _ARM_INS_VLD2 = 358;;
+let _ARM_INS_VLD3 = 359;;
+let _ARM_INS_VLD4 = 360;;
+let _ARM_INS_VLDMDB = 361;;
+let _ARM_INS_VLDMIA = 362;;
+let _ARM_INS_VLDR = 363;;
+let _ARM_INS_VLLDM = 364;;
+let _ARM_INS_VLSTM = 365;;
+let _ARM_INS_VMAX = 366;;
+let _ARM_INS_VMAXNM = 367;;
+let _ARM_INS_VMIN = 368;;
+let _ARM_INS_VMINNM = 369;;
+let _ARM_INS_VMLA = 370;;
+let _ARM_INS_VMLAL = 371;;
+let _ARM_INS_VMLS = 372;;
+let _ARM_INS_VMLSL = 373;;
+let _ARM_INS_VMOV = 374;;
+let _ARM_INS_VMOVL = 375;;
+let _ARM_INS_VMOVN = 376;;
+let _ARM_INS_VMOVX = 377;;
+let _ARM_INS_VMRS = 378;;
+let _ARM_INS_VMSR = 379;;
+let _ARM_INS_VMUL = 380;;
+let _ARM_INS_VMULL = 381;;
+let _ARM_INS_VMVN = 382;;
+let _ARM_INS_VNEG = 383;;
+let _ARM_INS_VNMLA = 384;;
+let _ARM_INS_VNMLS = 385;;
+let _ARM_INS_VNMUL = 386;;
+let _ARM_INS_VORN = 387;;
+let _ARM_INS_VORR = 388;;
+let _ARM_INS_VPADAL = 389;;
+let _ARM_INS_VPADD = 390;;
+let _ARM_INS_VPADDL = 391;;
+let _ARM_INS_VPMAX = 392;;
+let _ARM_INS_VPMIN = 393;;
+let _ARM_INS_VPOP = 394;;
+let _ARM_INS_VPUSH = 395;;
+let _ARM_INS_VQABS = 396;;
+let _ARM_INS_VQADD = 397;;
+let _ARM_INS_VQDMLAL = 398;;
+let _ARM_INS_VQDMLSL = 399;;
+let _ARM_INS_VQDMULH = 400;;
+let _ARM_INS_VQDMULL = 401;;
+let _ARM_INS_VQMOVN = 402;;
+let _ARM_INS_VQMOVUN = 403;;
+let _ARM_INS_VQNEG = 404;;
+let _ARM_INS_VQRDMLAH = 405;;
+let _ARM_INS_VQRDMLSH = 406;;
+let _ARM_INS_VQRDMULH = 407;;
+let _ARM_INS_VQRSHL = 408;;
+let _ARM_INS_VQRSHRN = 409;;
+let _ARM_INS_VQRSHRUN = 410;;
+let _ARM_INS_VQSHL = 411;;
+let _ARM_INS_VQSHLU = 412;;
+let _ARM_INS_VQSHRN = 413;;
+let _ARM_INS_VQSHRUN = 414;;
+let _ARM_INS_VQSUB = 415;;
+let _ARM_INS_VRADDHN = 416;;
+let _ARM_INS_VRECPE = 417;;
+let _ARM_INS_VRECPS = 418;;
+let _ARM_INS_VREV16 = 419;;
+let _ARM_INS_VREV32 = 420;;
+let _ARM_INS_VREV64 = 421;;
+let _ARM_INS_VRHADD = 422;;
+let _ARM_INS_VRINTA = 423;;
+let _ARM_INS_VRINTM = 424;;
+let _ARM_INS_VRINTN = 425;;
+let _ARM_INS_VRINTP = 426;;
+let _ARM_INS_VRINTR = 427;;
+let _ARM_INS_VRINTX = 428;;
+let _ARM_INS_VRINTZ = 429;;
+let _ARM_INS_VRSHL = 430;;
+let _ARM_INS_VRSHR = 431;;
+let _ARM_INS_VRSHRN = 432;;
+let _ARM_INS_VRSQRTE = 433;;
+let _ARM_INS_VRSQRTS = 434;;
+let _ARM_INS_VRSRA = 435;;
+let _ARM_INS_VRSUBHN = 436;;
+let _ARM_INS_VSDOT = 437;;
+let _ARM_INS_VSELEQ = 438;;
+let _ARM_INS_VSELGE = 439;;
+let _ARM_INS_VSELGT = 440;;
+let _ARM_INS_VSELVS = 441;;
+let _ARM_INS_VSHL = 442;;
+let _ARM_INS_VSHLL = 443;;
+let _ARM_INS_VSHR = 444;;
+let _ARM_INS_VSHRN = 445;;
+let _ARM_INS_VSLI = 446;;
+let _ARM_INS_VSQRT = 447;;
+let _ARM_INS_VSRA = 448;;
+let _ARM_INS_VSRI = 449;;
+let _ARM_INS_VST1 = 450;;
+let _ARM_INS_VST2 = 451;;
+let _ARM_INS_VST3 = 452;;
+let _ARM_INS_VST4 = 453;;
+let _ARM_INS_VSTMDB = 454;;
+let _ARM_INS_VSTMIA = 455;;
+let _ARM_INS_VSTR = 456;;
+let _ARM_INS_VSUB = 457;;
+let _ARM_INS_VSUBHN = 458;;
+let _ARM_INS_VSUBL = 459;;
+let _ARM_INS_VSUBW = 460;;
+let _ARM_INS_VSWP = 461;;
+let _ARM_INS_VTBL = 462;;
+let _ARM_INS_VTBX = 463;;
+let _ARM_INS_VTRN = 464;;
+let _ARM_INS_VTST = 465;;
+let _ARM_INS_VUDOT = 466;;
+let _ARM_INS_VUZP = 467;;
+let _ARM_INS_VZIP = 468;;
+let _ARM_INS_WFE = 469;;
+let _ARM_INS_WFI = 470;;
+let _ARM_INS_YIELD = 471;;
+let _ARM_INS_ENDING = 472;;
+
+let _ARM_GRP_INVALID = 0;;
+let _ARM_GRP_JUMP = 1;;
+let _ARM_GRP_CALL = 2;;
+let _ARM_GRP_INT = 4;;
+let _ARM_GRP_PRIVILEGE = 6;;
+let _ARM_GRP_BRANCH_RELATIVE = 7;;
+let _ARM_GRP_CRYPTO = 128;;
+let _ARM_GRP_DATABARRIER = 129;;
+let _ARM_GRP_DIVIDE = 130;;
+let _ARM_GRP_FPARMV8 = 131;;
+let _ARM_GRP_MULTPRO = 132;;
+let _ARM_GRP_NEON = 133;;
+let _ARM_GRP_T2EXTRACTPACK = 134;;
+let _ARM_GRP_THUMB2DSP = 135;;
+let _ARM_GRP_TRUSTZONE = 136;;
+let _ARM_GRP_V4T = 137;;
+let _ARM_GRP_V5T = 138;;
+let _ARM_GRP_V5TE = 139;;
+let _ARM_GRP_V6 = 140;;
+let _ARM_GRP_V6T2 = 141;;
+let _ARM_GRP_V7 = 142;;
+let _ARM_GRP_V8 = 143;;
+let _ARM_GRP_VFP2 = 144;;
+let _ARM_GRP_VFP3 = 145;;
+let _ARM_GRP_VFP4 = 146;;
+let _ARM_GRP_ARM = 147;;
+let _ARM_GRP_MCLASS = 148;;
+let _ARM_GRP_NOTMCLASS = 149;;
+let _ARM_GRP_THUMB = 150;;
+let _ARM_GRP_THUMB1ONLY = 151;;
+let _ARM_GRP_THUMB2 = 152;;
+let _ARM_GRP_PREV8 = 153;;
+let _ARM_GRP_FPVMLX = 154;;
+let _ARM_GRP_MULOPS = 155;;
+let _ARM_GRP_CRC = 156;;
+let _ARM_GRP_DPVFP = 157;;
+let _ARM_GRP_V6M = 158;;
+let _ARM_GRP_VIRTUALIZATION = 159;;
+let _ARM_GRP_ENDING = 160;;
diff --git a/capstone/bindings/ocaml/capstone.ml b/capstone/bindings/ocaml/capstone.ml
new file mode 100644
index 000000000..9d7a8dbc3
--- /dev/null
+++ b/capstone/bindings/ocaml/capstone.ml
@@ -0,0 +1,214 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Arm
+open Arm64
+open Mips
+open Ppc
+open X86
+open Sparc
+open Systemz
+open Xcore
+open M680x
+open Printf (* debug *)
+
+(* Hardware architectures *)
+type arch =
+ | CS_ARCH_ARM
+ | CS_ARCH_ARM64
+ | CS_ARCH_MIPS
+ | CS_ARCH_X86
+ | CS_ARCH_PPC
+ | CS_ARCH_SPARC
+ | CS_ARCH_SYSZ
+ | CS_ARCH_XCORE
+ | CS_ARCH_M68K
+ | CS_ARCH_TMS320C64X
+ | CS_ARCH_M680X
+
+(* Hardware modes *)
+type mode =
+ | CS_MODE_LITTLE_ENDIAN (* little-endian mode (default mode) *)
+ | CS_MODE_ARM (* ARM mode *)
+ | CS_MODE_16 (* 16-bit mode (for X86) *)
+ | CS_MODE_32 (* 32-bit mode (for X86) *)
+ | CS_MODE_64 (* 64-bit mode (for X86, PPC) *)
+ | CS_MODE_THUMB (* ARM's Thumb mode, including Thumb-2 *)
+ | CS_MODE_MCLASS (* ARM's MClass mode *)
+ | CS_MODE_V8 (* ARMv8 A32 encodings for ARM *)
+ | CS_MODE_MICRO (* MicroMips mode (MIPS architecture) *)
+ | CS_MODE_MIPS3 (* Mips3 mode (MIPS architecture) *)
+ | CS_MODE_MIPS32R6 (* Mips32-R6 mode (MIPS architecture) *)
+ | CS_MODE_MIPS2 (* Mips2 mode (MIPS architecture) *)
+ | CS_MODE_V9 (* SparcV9 mode (Sparc architecture) *)
+ | CS_MODE_BIG_ENDIAN (* big-endian mode *)
+ | CS_MODE_MIPS32 (* Mips32 mode (for Mips) *)
+ | CS_MODE_MIPS64 (* Mips64 mode (for Mips) *)
+ | CS_MODE_QPX (* Quad Processing eXtensions mode (PowerPC) *)
+ | CS_MODE_M680X_6301 (* M680X Hitachi 6301,6303 mode *)
+ | CS_MODE_M680X_6309 (* M680X Hitachi 6309 mode *)
+ | CS_MODE_M680X_6800 (* M680X Motorola 6800,6802 mode *)
+ | CS_MODE_M680X_6801 (* M680X Motorola 6801,6803 mode *)
+ | CS_MODE_M680X_6805 (* M680X Motorola 6805 mode *)
+ | CS_MODE_M680X_6808 (* M680X Motorola 6808 mode *)
+ | CS_MODE_M680X_6809 (* M680X Motorola 6809 mode *)
+ | CS_MODE_M680X_6811 (* M680X Motorola/Freescale 68HC11 mode *)
+ | CS_MODE_M680X_CPU12 (* M680X Motorola/Freescale/NXP CPU12 mode *)
+ | CS_MODE_M680X_HCS08 (* M680X Freescale HCS08 mode *)
+
+
+
+(* Runtime option for the disassembled engine *)
+type opt_type =
+ | CS_OPT_SYNTAX (* Asssembly output syntax *)
+ | CS_OPT_DETAIL (* Break down instruction structure into details *)
+ | CS_OPT_MODE (* Change engine's mode at run-time *)
+ | CS_OPT_MEM (* User-defined dynamic memory related functions *)
+ | CS_OPT_SKIPDATA (* Skip data when disassembling. Then engine is in SKIPDATA mode. *)
+ | CS_OPT_SKIPDATA_SETUP (* Setup user-defined function for SKIPDATA option *)
+
+
+(* Common instruction operand access types - to be consistent across all architectures. *)
+(* It is possible to combine access types, for example: CS_AC_READ | CS_AC_WRITE *)
+let _CS_AC_INVALID = 0;; (* Uninitialized/invalid access type. *)
+let _CS_AC_READ = 1 lsl 0;; (* Operand read from memory or register. *)
+let _CS_AC_WRITE = 1 lsl 1;; (* Operand write to memory or register. *)
+
+(* Runtime option value (associated with option type above) *)
+let _CS_OPT_OFF = 0L;; (* Turn OFF an option - default option of CS_OPT_DETAIL, CS_OPT_SKIPDATA. *)
+let _CS_OPT_ON = 3L;; (* Turn ON an option (CS_OPT_DETAIL, CS_OPT_SKIPDATA). *)
+let _CS_OPT_SYNTAX_DEFAULT = 0L;; (* Default asm syntax (CS_OPT_SYNTAX). *)
+let _CS_OPT_SYNTAX_INTEL = 1L;; (* X86 Intel asm syntax - default on X86 (CS_OPT_SYNTAX). *)
+let _CS_OPT_SYNTAX_ATT = 2L;; (* X86 ATT asm syntax (CS_OPT_SYNTAX). *)
+let _CS_OPT_SYNTAX_NOREGNAME = 3L;; (* Prints register name with only number (CS_OPT_SYNTAX) *)
+
+(* Common instruction operand types - to be consistent across all architectures. *)
+let _CS_OP_INVALID = 0;; (* uninitialized/invalid operand. *)
+let _CS_OP_REG = 1;; (* Register operand. *)
+let _CS_OP_IMM = 2;; (* Immediate operand. *)
+let _CS_OP_MEM = 3;; (* Memory operand. *)
+let _CS_OP_FP = 4;; (* Floating-Point operand. *)
+
+(* Common instruction groups - to be consistent across all architectures. *)
+let _CS_GRP_INVALID = 0;; (* uninitialized/invalid group. *)
+let _CS_GRP_JUMP = 1;; (* all jump instructions (conditional+direct+indirect jumps) *)
+let _CS_GRP_CALL = 2;; (* all call instructions *)
+let _CS_GRP_RET = 3;; (* all return instructions *)
+let _CS_GRP_INT = 4;; (* all interrupt instructions (int+syscall) *)
+let _CS_GRP_IRET = 5;; (* all interrupt return instructions *)
+let _CS_GRP_PRIVILEGE = 6;; (* all privileged instructions *)
+
+type cs_arch =
+ | CS_INFO_ARM of cs_arm
+ | CS_INFO_ARM64 of cs_arm64
+ | CS_INFO_MIPS of cs_mips
+ | CS_INFO_X86 of cs_x86
+ | CS_INFO_PPC of cs_ppc
+ | CS_INFO_SPARC of cs_sparc
+ | CS_INFO_SYSZ of cs_sysz
+ | CS_INFO_XCORE of cs_xcore
+ | CS_INFO_M680X of cs_m680x
+
+
+type csh = {
+ h: Int64.t;
+ a: arch;
+}
+
+type cs_insn0 = {
+ id: int;
+ address: int;
+ size: int;
+ bytes: int array;
+ mnemonic: string;
+ op_str: string;
+ regs_read: int array;
+ regs_write: int array;
+ groups: int array;
+ arch: cs_arch;
+}
+
+external _cs_open: arch -> mode list -> Int64.t option = "ocaml_open"
+external cs_disasm_quick: arch -> mode list -> string -> Int64.t -> Int64.t -> cs_insn0 list = "ocaml_cs_disasm"
+external _cs_disasm_internal: arch -> Int64.t -> string -> Int64.t -> Int64.t -> cs_insn0 list = "ocaml_cs_disasm_internal"
+external _cs_reg_name: Int64.t -> int -> string = "ocaml_register_name"
+external _cs_insn_name: Int64.t -> int -> string = "ocaml_instruction_name"
+external _cs_group_name: Int64.t -> int -> string = "ocaml_group_name"
+external cs_version: unit -> int = "ocaml_version"
+external _cs_option: Int64.t -> opt_type -> Int64.t -> int = "ocaml_option"
+external _cs_close: Int64.t -> int = "ocaml_close"
+
+
+let cs_open _arch _mode: csh = (
+ let _handle = _cs_open _arch _mode in (
+ match _handle with
+ | None -> { h = 0L; a = _arch }
+ | Some v -> { h = v; a = _arch }
+ );
+);;
+
+let cs_close handle = (
+ _cs_close handle.h;
+)
+
+let cs_option handle opt value = (
+ _cs_option handle.h opt value;
+);;
+
+let cs_disasm handle code address count = (
+ _cs_disasm_internal handle.a handle.h code address count;
+);;
+
+let cs_reg_name handle id = (
+ _cs_reg_name handle.h id;
+);;
+
+let cs_insn_name handle id = (
+ _cs_insn_name handle.h id;
+);;
+
+let cs_group_name handle id = (
+ _cs_group_name handle.h id;
+);;
+
+class cs_insn c a =
+ let csh = c in
+ let (id, address, size, bytes, mnemonic, op_str, regs_read,
+ regs_write, groups, arch) =
+ (a.id, a.address, a.size, a.bytes, a.mnemonic, a.op_str,
+ a.regs_read, a.regs_write, a.groups, a.arch) in
+ object
+ method id = id;
+ method address = address;
+ method size = size;
+ method bytes = bytes;
+ method mnemonic = mnemonic;
+ method op_str = op_str;
+ method regs_read = regs_read;
+ method regs_write = regs_write;
+ method groups = groups;
+ method arch = arch;
+ method reg_name id = _cs_reg_name csh.h id;
+ method insn_name id = _cs_insn_name csh.h id;
+ method group_name id = _cs_group_name csh.h id;
+ end;;
+
+let cs_insn_group handle insn group_id =
+ List.exists (fun g -> g == group_id) (Array.to_list insn.groups);;
+
+let cs_reg_read handle insn reg_id =
+ List.exists (fun g -> g == reg_id) (Array.to_list insn.regs_read);;
+
+let cs_reg_write handle insn reg_id =
+ List.exists (fun g -> g == reg_id) (Array.to_list insn.regs_write);;
+
+
+class cs a m =
+ let mode = m and arch = a in
+ let handle = cs_open arch mode in
+ object
+ method disasm code offset count =
+ let insns = (_cs_disasm_internal arch handle.h code offset count) in
+ List.map (fun x -> new cs_insn handle x) insns;
+
+ end;;
diff --git a/capstone/bindings/ocaml/evm_const.ml b/capstone/bindings/ocaml/evm_const.ml
new file mode 100644
index 000000000..050a8b473
--- /dev/null
+++ b/capstone/bindings/ocaml/evm_const.ml
@@ -0,0 +1,151 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [evm_const.ml] *)
+
+let _EVM_INS_STOP = 0;;
+let _EVM_INS_ADD = 1;;
+let _EVM_INS_MUL = 2;;
+let _EVM_INS_SUB = 3;;
+let _EVM_INS_DIV = 4;;
+let _EVM_INS_SDIV = 5;;
+let _EVM_INS_MOD = 6;;
+let _EVM_INS_SMOD = 7;;
+let _EVM_INS_ADDMOD = 8;;
+let _EVM_INS_MULMOD = 9;;
+let _EVM_INS_EXP = 10;;
+let _EVM_INS_SIGNEXTEND = 11;;
+let _EVM_INS_LT = 16;;
+let _EVM_INS_GT = 17;;
+let _EVM_INS_SLT = 18;;
+let _EVM_INS_SGT = 19;;
+let _EVM_INS_EQ = 20;;
+let _EVM_INS_ISZERO = 21;;
+let _EVM_INS_AND = 22;;
+let _EVM_INS_OR = 23;;
+let _EVM_INS_XOR = 24;;
+let _EVM_INS_NOT = 25;;
+let _EVM_INS_BYTE = 26;;
+let _EVM_INS_SHA3 = 32;;
+let _EVM_INS_ADDRESS = 48;;
+let _EVM_INS_BALANCE = 49;;
+let _EVM_INS_ORIGIN = 50;;
+let _EVM_INS_CALLER = 51;;
+let _EVM_INS_CALLVALUE = 52;;
+let _EVM_INS_CALLDATALOAD = 53;;
+let _EVM_INS_CALLDATASIZE = 54;;
+let _EVM_INS_CALLDATACOPY = 55;;
+let _EVM_INS_CODESIZE = 56;;
+let _EVM_INS_CODECOPY = 57;;
+let _EVM_INS_GASPRICE = 58;;
+let _EVM_INS_EXTCODESIZE = 59;;
+let _EVM_INS_EXTCODECOPY = 60;;
+let _EVM_INS_RETURNDATASIZE = 61;;
+let _EVM_INS_RETURNDATACOPY = 62;;
+let _EVM_INS_BLOCKHASH = 64;;
+let _EVM_INS_COINBASE = 65;;
+let _EVM_INS_TIMESTAMP = 66;;
+let _EVM_INS_NUMBER = 67;;
+let _EVM_INS_DIFFICULTY = 68;;
+let _EVM_INS_GASLIMIT = 69;;
+let _EVM_INS_POP = 80;;
+let _EVM_INS_MLOAD = 81;;
+let _EVM_INS_MSTORE = 82;;
+let _EVM_INS_MSTORE8 = 83;;
+let _EVM_INS_SLOAD = 84;;
+let _EVM_INS_SSTORE = 85;;
+let _EVM_INS_JUMP = 86;;
+let _EVM_INS_JUMPI = 87;;
+let _EVM_INS_PC = 88;;
+let _EVM_INS_MSIZE = 89;;
+let _EVM_INS_GAS = 90;;
+let _EVM_INS_JUMPDEST = 91;;
+let _EVM_INS_PUSH1 = 96;;
+let _EVM_INS_PUSH2 = 97;;
+let _EVM_INS_PUSH3 = 98;;
+let _EVM_INS_PUSH4 = 99;;
+let _EVM_INS_PUSH5 = 100;;
+let _EVM_INS_PUSH6 = 101;;
+let _EVM_INS_PUSH7 = 102;;
+let _EVM_INS_PUSH8 = 103;;
+let _EVM_INS_PUSH9 = 104;;
+let _EVM_INS_PUSH10 = 105;;
+let _EVM_INS_PUSH11 = 106;;
+let _EVM_INS_PUSH12 = 107;;
+let _EVM_INS_PUSH13 = 108;;
+let _EVM_INS_PUSH14 = 109;;
+let _EVM_INS_PUSH15 = 110;;
+let _EVM_INS_PUSH16 = 111;;
+let _EVM_INS_PUSH17 = 112;;
+let _EVM_INS_PUSH18 = 113;;
+let _EVM_INS_PUSH19 = 114;;
+let _EVM_INS_PUSH20 = 115;;
+let _EVM_INS_PUSH21 = 116;;
+let _EVM_INS_PUSH22 = 117;;
+let _EVM_INS_PUSH23 = 118;;
+let _EVM_INS_PUSH24 = 119;;
+let _EVM_INS_PUSH25 = 120;;
+let _EVM_INS_PUSH26 = 121;;
+let _EVM_INS_PUSH27 = 122;;
+let _EVM_INS_PUSH28 = 123;;
+let _EVM_INS_PUSH29 = 124;;
+let _EVM_INS_PUSH30 = 125;;
+let _EVM_INS_PUSH31 = 126;;
+let _EVM_INS_PUSH32 = 127;;
+let _EVM_INS_DUP1 = 128;;
+let _EVM_INS_DUP2 = 129;;
+let _EVM_INS_DUP3 = 130;;
+let _EVM_INS_DUP4 = 131;;
+let _EVM_INS_DUP5 = 132;;
+let _EVM_INS_DUP6 = 133;;
+let _EVM_INS_DUP7 = 134;;
+let _EVM_INS_DUP8 = 135;;
+let _EVM_INS_DUP9 = 136;;
+let _EVM_INS_DUP10 = 137;;
+let _EVM_INS_DUP11 = 138;;
+let _EVM_INS_DUP12 = 139;;
+let _EVM_INS_DUP13 = 140;;
+let _EVM_INS_DUP14 = 141;;
+let _EVM_INS_DUP15 = 142;;
+let _EVM_INS_DUP16 = 143;;
+let _EVM_INS_SWAP1 = 144;;
+let _EVM_INS_SWAP2 = 145;;
+let _EVM_INS_SWAP3 = 146;;
+let _EVM_INS_SWAP4 = 147;;
+let _EVM_INS_SWAP5 = 148;;
+let _EVM_INS_SWAP6 = 149;;
+let _EVM_INS_SWAP7 = 150;;
+let _EVM_INS_SWAP8 = 151;;
+let _EVM_INS_SWAP9 = 152;;
+let _EVM_INS_SWAP10 = 153;;
+let _EVM_INS_SWAP11 = 154;;
+let _EVM_INS_SWAP12 = 155;;
+let _EVM_INS_SWAP13 = 156;;
+let _EVM_INS_SWAP14 = 157;;
+let _EVM_INS_SWAP15 = 158;;
+let _EVM_INS_SWAP16 = 159;;
+let _EVM_INS_LOG0 = 160;;
+let _EVM_INS_LOG1 = 161;;
+let _EVM_INS_LOG2 = 162;;
+let _EVM_INS_LOG3 = 163;;
+let _EVM_INS_LOG4 = 164;;
+let _EVM_INS_CREATE = 240;;
+let _EVM_INS_CALL = 241;;
+let _EVM_INS_CALLCODE = 242;;
+let _EVM_INS_RETURN = 243;;
+let _EVM_INS_DELEGATECALL = 244;;
+let _EVM_INS_CALLBLACKBOX = 245;;
+let _EVM_INS_STATICCALL = 250;;
+let _EVM_INS_REVERT = 253;;
+let _EVM_INS_SUICIDE = 255;;
+let _EVM_INS_INVALID = 512;;
+let _EVM_INS_ENDING = 513;;
+
+let _EVM_GRP_INVALID = 0;;
+let _EVM_GRP_JUMP = 1;;
+let _EVM_GRP_MATH = 8;;
+let _EVM_GRP_STACK_WRITE = 9;;
+let _EVM_GRP_STACK_READ = 10;;
+let _EVM_GRP_MEM_WRITE = 11;;
+let _EVM_GRP_MEM_READ = 12;;
+let _EVM_GRP_STORE_WRITE = 13;;
+let _EVM_GRP_STORE_READ = 14;;
+let _EVM_GRP_HALT = 15;;
+let _EVM_GRP_ENDING = 16;;
diff --git a/capstone/bindings/ocaml/m680x.ml b/capstone/bindings/ocaml/m680x.ml
new file mode 100644
index 000000000..139715db9
--- /dev/null
+++ b/capstone/bindings/ocaml/m680x.ml
@@ -0,0 +1,48 @@
+(* Capstone Disassembly Engine
+ * M680X Backend by Wolfgang Schwotzer <wolfgang.schwotzer@gmx.net> 2017 *)
+
+open M680x_const
+
+
+(* architecture specific info of instruction *)
+type m680x_op_idx = {
+ base_reg: int;
+ offset_reg: int;
+ offset: int;
+ offset_addr: int;
+ offset_bits: int;
+ inc_dec: int;
+ flags: int;
+}
+
+type m680x_op_rel = {
+ addr_rel: int;
+ offset: int;
+}
+
+type m680x_op_ext = {
+ addr_ext: int;
+ indirect: bool;
+}
+
+type m680x_op_value =
+ | M680X_OP_INVALID of int
+ | M680X_OP_IMMEDIATE of int
+ | M680X_OP_REGISTER of int
+ | M680X_OP_INDEXED of m680x_op_idx
+ | M680X_OP_RELATIVE of m680x_op_rel
+ | M680X_OP_EXTENDED of m680x_op_ext
+ | M680X_OP_DIRECT of int
+ | M680X_OP_CONSTANT of int
+
+type m680x_op = {
+ value: m680x_op_value;
+ size: int;
+ access: int;
+}
+
+type cs_m680x = {
+ flags: int;
+ operands: m680x_op array;
+}
+
diff --git a/capstone/bindings/ocaml/m680x_const.ml b/capstone/bindings/ocaml/m680x_const.ml
new file mode 100644
index 000000000..5e887109f
--- /dev/null
+++ b/capstone/bindings/ocaml/m680x_const.ml
@@ -0,0 +1,415 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [m680x_const.ml] *)
+let _M680X_OPERAND_COUNT = 9;;
+
+let _M680X_REG_INVALID = 0;;
+let _M680X_REG_A = 1;;
+let _M680X_REG_B = 2;;
+let _M680X_REG_E = 3;;
+let _M680X_REG_F = 4;;
+let _M680X_REG_0 = 5;;
+let _M680X_REG_D = 6;;
+let _M680X_REG_W = 7;;
+let _M680X_REG_CC = 8;;
+let _M680X_REG_DP = 9;;
+let _M680X_REG_MD = 10;;
+let _M680X_REG_HX = 11;;
+let _M680X_REG_H = 12;;
+let _M680X_REG_X = 13;;
+let _M680X_REG_Y = 14;;
+let _M680X_REG_S = 15;;
+let _M680X_REG_U = 16;;
+let _M680X_REG_V = 17;;
+let _M680X_REG_Q = 18;;
+let _M680X_REG_PC = 19;;
+let _M680X_REG_TMP2 = 20;;
+let _M680X_REG_TMP3 = 21;;
+let _M680X_REG_ENDING = 22;;
+
+let _M680X_OP_INVALID = 0;;
+let _M680X_OP_REGISTER = 1;;
+let _M680X_OP_IMMEDIATE = 2;;
+let _M680X_OP_INDEXED = 3;;
+let _M680X_OP_EXTENDED = 4;;
+let _M680X_OP_DIRECT = 5;;
+let _M680X_OP_RELATIVE = 6;;
+let _M680X_OP_CONSTANT = 7;;
+
+let _M680X_OFFSET_NONE = 0;;
+let _M680X_OFFSET_BITS_5 = 5;;
+let _M680X_OFFSET_BITS_8 = 8;;
+let _M680X_OFFSET_BITS_9 = 9;;
+let _M680X_OFFSET_BITS_16 = 16;;
+let _M680X_IDX_INDIRECT = 1;;
+let _M680X_IDX_NO_COMMA = 2;;
+let _M680X_IDX_POST_INC_DEC = 4;;
+
+let _M680X_GRP_INVALID = 0;;
+let _M680X_GRP_JUMP = 1;;
+let _M680X_GRP_CALL = 2;;
+let _M680X_GRP_RET = 3;;
+let _M680X_GRP_INT = 4;;
+let _M680X_GRP_IRET = 5;;
+let _M680X_GRP_PRIV = 6;;
+let _M680X_GRP_BRAREL = 7;;
+let _M680X_GRP_ENDING = 8;;
+let _M680X_FIRST_OP_IN_MNEM = 1;;
+let _M680X_SECOND_OP_IN_MNEM = 2;;
+
+let _M680X_INS_INVLD = 0;;
+let _M680X_INS_ABA = 1;;
+let _M680X_INS_ABX = 2;;
+let _M680X_INS_ABY = 3;;
+let _M680X_INS_ADC = 4;;
+let _M680X_INS_ADCA = 5;;
+let _M680X_INS_ADCB = 6;;
+let _M680X_INS_ADCD = 7;;
+let _M680X_INS_ADCR = 8;;
+let _M680X_INS_ADD = 9;;
+let _M680X_INS_ADDA = 10;;
+let _M680X_INS_ADDB = 11;;
+let _M680X_INS_ADDD = 12;;
+let _M680X_INS_ADDE = 13;;
+let _M680X_INS_ADDF = 14;;
+let _M680X_INS_ADDR = 15;;
+let _M680X_INS_ADDW = 16;;
+let _M680X_INS_AIM = 17;;
+let _M680X_INS_AIS = 18;;
+let _M680X_INS_AIX = 19;;
+let _M680X_INS_AND = 20;;
+let _M680X_INS_ANDA = 21;;
+let _M680X_INS_ANDB = 22;;
+let _M680X_INS_ANDCC = 23;;
+let _M680X_INS_ANDD = 24;;
+let _M680X_INS_ANDR = 25;;
+let _M680X_INS_ASL = 26;;
+let _M680X_INS_ASLA = 27;;
+let _M680X_INS_ASLB = 28;;
+let _M680X_INS_ASLD = 29;;
+let _M680X_INS_ASR = 30;;
+let _M680X_INS_ASRA = 31;;
+let _M680X_INS_ASRB = 32;;
+let _M680X_INS_ASRD = 33;;
+let _M680X_INS_ASRX = 34;;
+let _M680X_INS_BAND = 35;;
+let _M680X_INS_BCC = 36;;
+let _M680X_INS_BCLR = 37;;
+let _M680X_INS_BCS = 38;;
+let _M680X_INS_BEOR = 39;;
+let _M680X_INS_BEQ = 40;;
+let _M680X_INS_BGE = 41;;
+let _M680X_INS_BGND = 42;;
+let _M680X_INS_BGT = 43;;
+let _M680X_INS_BHCC = 44;;
+let _M680X_INS_BHCS = 45;;
+let _M680X_INS_BHI = 46;;
+let _M680X_INS_BIAND = 47;;
+let _M680X_INS_BIEOR = 48;;
+let _M680X_INS_BIH = 49;;
+let _M680X_INS_BIL = 50;;
+let _M680X_INS_BIOR = 51;;
+let _M680X_INS_BIT = 52;;
+let _M680X_INS_BITA = 53;;
+let _M680X_INS_BITB = 54;;
+let _M680X_INS_BITD = 55;;
+let _M680X_INS_BITMD = 56;;
+let _M680X_INS_BLE = 57;;
+let _M680X_INS_BLS = 58;;
+let _M680X_INS_BLT = 59;;
+let _M680X_INS_BMC = 60;;
+let _M680X_INS_BMI = 61;;
+let _M680X_INS_BMS = 62;;
+let _M680X_INS_BNE = 63;;
+let _M680X_INS_BOR = 64;;
+let _M680X_INS_BPL = 65;;
+let _M680X_INS_BRCLR = 66;;
+let _M680X_INS_BRSET = 67;;
+let _M680X_INS_BRA = 68;;
+let _M680X_INS_BRN = 69;;
+let _M680X_INS_BSET = 70;;
+let _M680X_INS_BSR = 71;;
+let _M680X_INS_BVC = 72;;
+let _M680X_INS_BVS = 73;;
+let _M680X_INS_CALL = 74;;
+let _M680X_INS_CBA = 75;;
+let _M680X_INS_CBEQ = 76;;
+let _M680X_INS_CBEQA = 77;;
+let _M680X_INS_CBEQX = 78;;
+let _M680X_INS_CLC = 79;;
+let _M680X_INS_CLI = 80;;
+let _M680X_INS_CLR = 81;;
+let _M680X_INS_CLRA = 82;;
+let _M680X_INS_CLRB = 83;;
+let _M680X_INS_CLRD = 84;;
+let _M680X_INS_CLRE = 85;;
+let _M680X_INS_CLRF = 86;;
+let _M680X_INS_CLRH = 87;;
+let _M680X_INS_CLRW = 88;;
+let _M680X_INS_CLRX = 89;;
+let _M680X_INS_CLV = 90;;
+let _M680X_INS_CMP = 91;;
+let _M680X_INS_CMPA = 92;;
+let _M680X_INS_CMPB = 93;;
+let _M680X_INS_CMPD = 94;;
+let _M680X_INS_CMPE = 95;;
+let _M680X_INS_CMPF = 96;;
+let _M680X_INS_CMPR = 97;;
+let _M680X_INS_CMPS = 98;;
+let _M680X_INS_CMPU = 99;;
+let _M680X_INS_CMPW = 100;;
+let _M680X_INS_CMPX = 101;;
+let _M680X_INS_CMPY = 102;;
+let _M680X_INS_COM = 103;;
+let _M680X_INS_COMA = 104;;
+let _M680X_INS_COMB = 105;;
+let _M680X_INS_COMD = 106;;
+let _M680X_INS_COME = 107;;
+let _M680X_INS_COMF = 108;;
+let _M680X_INS_COMW = 109;;
+let _M680X_INS_COMX = 110;;
+let _M680X_INS_CPD = 111;;
+let _M680X_INS_CPHX = 112;;
+let _M680X_INS_CPS = 113;;
+let _M680X_INS_CPX = 114;;
+let _M680X_INS_CPY = 115;;
+let _M680X_INS_CWAI = 116;;
+let _M680X_INS_DAA = 117;;
+let _M680X_INS_DBEQ = 118;;
+let _M680X_INS_DBNE = 119;;
+let _M680X_INS_DBNZ = 120;;
+let _M680X_INS_DBNZA = 121;;
+let _M680X_INS_DBNZX = 122;;
+let _M680X_INS_DEC = 123;;
+let _M680X_INS_DECA = 124;;
+let _M680X_INS_DECB = 125;;
+let _M680X_INS_DECD = 126;;
+let _M680X_INS_DECE = 127;;
+let _M680X_INS_DECF = 128;;
+let _M680X_INS_DECW = 129;;
+let _M680X_INS_DECX = 130;;
+let _M680X_INS_DES = 131;;
+let _M680X_INS_DEX = 132;;
+let _M680X_INS_DEY = 133;;
+let _M680X_INS_DIV = 134;;
+let _M680X_INS_DIVD = 135;;
+let _M680X_INS_DIVQ = 136;;
+let _M680X_INS_EDIV = 137;;
+let _M680X_INS_EDIVS = 138;;
+let _M680X_INS_EIM = 139;;
+let _M680X_INS_EMACS = 140;;
+let _M680X_INS_EMAXD = 141;;
+let _M680X_INS_EMAXM = 142;;
+let _M680X_INS_EMIND = 143;;
+let _M680X_INS_EMINM = 144;;
+let _M680X_INS_EMUL = 145;;
+let _M680X_INS_EMULS = 146;;
+let _M680X_INS_EOR = 147;;
+let _M680X_INS_EORA = 148;;
+let _M680X_INS_EORB = 149;;
+let _M680X_INS_EORD = 150;;
+let _M680X_INS_EORR = 151;;
+let _M680X_INS_ETBL = 152;;
+let _M680X_INS_EXG = 153;;
+let _M680X_INS_FDIV = 154;;
+let _M680X_INS_IBEQ = 155;;
+let _M680X_INS_IBNE = 156;;
+let _M680X_INS_IDIV = 157;;
+let _M680X_INS_IDIVS = 158;;
+let _M680X_INS_ILLGL = 159;;
+let _M680X_INS_INC = 160;;
+let _M680X_INS_INCA = 161;;
+let _M680X_INS_INCB = 162;;
+let _M680X_INS_INCD = 163;;
+let _M680X_INS_INCE = 164;;
+let _M680X_INS_INCF = 165;;
+let _M680X_INS_INCW = 166;;
+let _M680X_INS_INCX = 167;;
+let _M680X_INS_INS = 168;;
+let _M680X_INS_INX = 169;;
+let _M680X_INS_INY = 170;;
+let _M680X_INS_JMP = 171;;
+let _M680X_INS_JSR = 172;;
+let _M680X_INS_LBCC = 173;;
+let _M680X_INS_LBCS = 174;;
+let _M680X_INS_LBEQ = 175;;
+let _M680X_INS_LBGE = 176;;
+let _M680X_INS_LBGT = 177;;
+let _M680X_INS_LBHI = 178;;
+let _M680X_INS_LBLE = 179;;
+let _M680X_INS_LBLS = 180;;
+let _M680X_INS_LBLT = 181;;
+let _M680X_INS_LBMI = 182;;
+let _M680X_INS_LBNE = 183;;
+let _M680X_INS_LBPL = 184;;
+let _M680X_INS_LBRA = 185;;
+let _M680X_INS_LBRN = 186;;
+let _M680X_INS_LBSR = 187;;
+let _M680X_INS_LBVC = 188;;
+let _M680X_INS_LBVS = 189;;
+let _M680X_INS_LDA = 190;;
+let _M680X_INS_LDAA = 191;;
+let _M680X_INS_LDAB = 192;;
+let _M680X_INS_LDB = 193;;
+let _M680X_INS_LDBT = 194;;
+let _M680X_INS_LDD = 195;;
+let _M680X_INS_LDE = 196;;
+let _M680X_INS_LDF = 197;;
+let _M680X_INS_LDHX = 198;;
+let _M680X_INS_LDMD = 199;;
+let _M680X_INS_LDQ = 200;;
+let _M680X_INS_LDS = 201;;
+let _M680X_INS_LDU = 202;;
+let _M680X_INS_LDW = 203;;
+let _M680X_INS_LDX = 204;;
+let _M680X_INS_LDY = 205;;
+let _M680X_INS_LEAS = 206;;
+let _M680X_INS_LEAU = 207;;
+let _M680X_INS_LEAX = 208;;
+let _M680X_INS_LEAY = 209;;
+let _M680X_INS_LSL = 210;;
+let _M680X_INS_LSLA = 211;;
+let _M680X_INS_LSLB = 212;;
+let _M680X_INS_LSLD = 213;;
+let _M680X_INS_LSLX = 214;;
+let _M680X_INS_LSR = 215;;
+let _M680X_INS_LSRA = 216;;
+let _M680X_INS_LSRB = 217;;
+let _M680X_INS_LSRD = 218;;
+let _M680X_INS_LSRW = 219;;
+let _M680X_INS_LSRX = 220;;
+let _M680X_INS_MAXA = 221;;
+let _M680X_INS_MAXM = 222;;
+let _M680X_INS_MEM = 223;;
+let _M680X_INS_MINA = 224;;
+let _M680X_INS_MINM = 225;;
+let _M680X_INS_MOV = 226;;
+let _M680X_INS_MOVB = 227;;
+let _M680X_INS_MOVW = 228;;
+let _M680X_INS_MUL = 229;;
+let _M680X_INS_MULD = 230;;
+let _M680X_INS_NEG = 231;;
+let _M680X_INS_NEGA = 232;;
+let _M680X_INS_NEGB = 233;;
+let _M680X_INS_NEGD = 234;;
+let _M680X_INS_NEGX = 235;;
+let _M680X_INS_NOP = 236;;
+let _M680X_INS_NSA = 237;;
+let _M680X_INS_OIM = 238;;
+let _M680X_INS_ORA = 239;;
+let _M680X_INS_ORAA = 240;;
+let _M680X_INS_ORAB = 241;;
+let _M680X_INS_ORB = 242;;
+let _M680X_INS_ORCC = 243;;
+let _M680X_INS_ORD = 244;;
+let _M680X_INS_ORR = 245;;
+let _M680X_INS_PSHA = 246;;
+let _M680X_INS_PSHB = 247;;
+let _M680X_INS_PSHC = 248;;
+let _M680X_INS_PSHD = 249;;
+let _M680X_INS_PSHH = 250;;
+let _M680X_INS_PSHS = 251;;
+let _M680X_INS_PSHSW = 252;;
+let _M680X_INS_PSHU = 253;;
+let _M680X_INS_PSHUW = 254;;
+let _M680X_INS_PSHX = 255;;
+let _M680X_INS_PSHY = 256;;
+let _M680X_INS_PULA = 257;;
+let _M680X_INS_PULB = 258;;
+let _M680X_INS_PULC = 259;;
+let _M680X_INS_PULD = 260;;
+let _M680X_INS_PULH = 261;;
+let _M680X_INS_PULS = 262;;
+let _M680X_INS_PULSW = 263;;
+let _M680X_INS_PULU = 264;;
+let _M680X_INS_PULUW = 265;;
+let _M680X_INS_PULX = 266;;
+let _M680X_INS_PULY = 267;;
+let _M680X_INS_REV = 268;;
+let _M680X_INS_REVW = 269;;
+let _M680X_INS_ROL = 270;;
+let _M680X_INS_ROLA = 271;;
+let _M680X_INS_ROLB = 272;;
+let _M680X_INS_ROLD = 273;;
+let _M680X_INS_ROLW = 274;;
+let _M680X_INS_ROLX = 275;;
+let _M680X_INS_ROR = 276;;
+let _M680X_INS_RORA = 277;;
+let _M680X_INS_RORB = 278;;
+let _M680X_INS_RORD = 279;;
+let _M680X_INS_RORW = 280;;
+let _M680X_INS_RORX = 281;;
+let _M680X_INS_RSP = 282;;
+let _M680X_INS_RTC = 283;;
+let _M680X_INS_RTI = 284;;
+let _M680X_INS_RTS = 285;;
+let _M680X_INS_SBA = 286;;
+let _M680X_INS_SBC = 287;;
+let _M680X_INS_SBCA = 288;;
+let _M680X_INS_SBCB = 289;;
+let _M680X_INS_SBCD = 290;;
+let _M680X_INS_SBCR = 291;;
+let _M680X_INS_SEC = 292;;
+let _M680X_INS_SEI = 293;;
+let _M680X_INS_SEV = 294;;
+let _M680X_INS_SEX = 295;;
+let _M680X_INS_SEXW = 296;;
+let _M680X_INS_SLP = 297;;
+let _M680X_INS_STA = 298;;
+let _M680X_INS_STAA = 299;;
+let _M680X_INS_STAB = 300;;
+let _M680X_INS_STB = 301;;
+let _M680X_INS_STBT = 302;;
+let _M680X_INS_STD = 303;;
+let _M680X_INS_STE = 304;;
+let _M680X_INS_STF = 305;;
+let _M680X_INS_STOP = 306;;
+let _M680X_INS_STHX = 307;;
+let _M680X_INS_STQ = 308;;
+let _M680X_INS_STS = 309;;
+let _M680X_INS_STU = 310;;
+let _M680X_INS_STW = 311;;
+let _M680X_INS_STX = 312;;
+let _M680X_INS_STY = 313;;
+let _M680X_INS_SUB = 314;;
+let _M680X_INS_SUBA = 315;;
+let _M680X_INS_SUBB = 316;;
+let _M680X_INS_SUBD = 317;;
+let _M680X_INS_SUBE = 318;;
+let _M680X_INS_SUBF = 319;;
+let _M680X_INS_SUBR = 320;;
+let _M680X_INS_SUBW = 321;;
+let _M680X_INS_SWI = 322;;
+let _M680X_INS_SWI2 = 323;;
+let _M680X_INS_SWI3 = 324;;
+let _M680X_INS_SYNC = 325;;
+let _M680X_INS_TAB = 326;;
+let _M680X_INS_TAP = 327;;
+let _M680X_INS_TAX = 328;;
+let _M680X_INS_TBA = 329;;
+let _M680X_INS_TBEQ = 330;;
+let _M680X_INS_TBL = 331;;
+let _M680X_INS_TBNE = 332;;
+let _M680X_INS_TEST = 333;;
+let _M680X_INS_TFM = 334;;
+let _M680X_INS_TFR = 335;;
+let _M680X_INS_TIM = 336;;
+let _M680X_INS_TPA = 337;;
+let _M680X_INS_TST = 338;;
+let _M680X_INS_TSTA = 339;;
+let _M680X_INS_TSTB = 340;;
+let _M680X_INS_TSTD = 341;;
+let _M680X_INS_TSTE = 342;;
+let _M680X_INS_TSTF = 343;;
+let _M680X_INS_TSTW = 344;;
+let _M680X_INS_TSTX = 345;;
+let _M680X_INS_TSX = 346;;
+let _M680X_INS_TSY = 347;;
+let _M680X_INS_TXA = 348;;
+let _M680X_INS_TXS = 349;;
+let _M680X_INS_TYS = 350;;
+let _M680X_INS_WAI = 351;;
+let _M680X_INS_WAIT = 352;;
+let _M680X_INS_WAV = 353;;
+let _M680X_INS_WAVR = 354;;
+let _M680X_INS_XGDX = 355;;
+let _M680X_INS_XGDY = 356;;
+let _M680X_INS_ENDING = 357;;
diff --git a/capstone/bindings/ocaml/m68k_const.ml b/capstone/bindings/ocaml/m68k_const.ml
new file mode 100644
index 000000000..f060d4ff5
--- /dev/null
+++ b/capstone/bindings/ocaml/m68k_const.ml
@@ -0,0 +1,485 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [m68k_const.ml] *)
+let _M68K_OPERAND_COUNT = 4;;
+
+let _M68K_REG_INVALID = 0;;
+let _M68K_REG_D0 = 1;;
+let _M68K_REG_D1 = 2;;
+let _M68K_REG_D2 = 3;;
+let _M68K_REG_D3 = 4;;
+let _M68K_REG_D4 = 5;;
+let _M68K_REG_D5 = 6;;
+let _M68K_REG_D6 = 7;;
+let _M68K_REG_D7 = 8;;
+let _M68K_REG_A0 = 9;;
+let _M68K_REG_A1 = 10;;
+let _M68K_REG_A2 = 11;;
+let _M68K_REG_A3 = 12;;
+let _M68K_REG_A4 = 13;;
+let _M68K_REG_A5 = 14;;
+let _M68K_REG_A6 = 15;;
+let _M68K_REG_A7 = 16;;
+let _M68K_REG_FP0 = 17;;
+let _M68K_REG_FP1 = 18;;
+let _M68K_REG_FP2 = 19;;
+let _M68K_REG_FP3 = 20;;
+let _M68K_REG_FP4 = 21;;
+let _M68K_REG_FP5 = 22;;
+let _M68K_REG_FP6 = 23;;
+let _M68K_REG_FP7 = 24;;
+let _M68K_REG_PC = 25;;
+let _M68K_REG_SR = 26;;
+let _M68K_REG_CCR = 27;;
+let _M68K_REG_SFC = 28;;
+let _M68K_REG_DFC = 29;;
+let _M68K_REG_USP = 30;;
+let _M68K_REG_VBR = 31;;
+let _M68K_REG_CACR = 32;;
+let _M68K_REG_CAAR = 33;;
+let _M68K_REG_MSP = 34;;
+let _M68K_REG_ISP = 35;;
+let _M68K_REG_TC = 36;;
+let _M68K_REG_ITT0 = 37;;
+let _M68K_REG_ITT1 = 38;;
+let _M68K_REG_DTT0 = 39;;
+let _M68K_REG_DTT1 = 40;;
+let _M68K_REG_MMUSR = 41;;
+let _M68K_REG_URP = 42;;
+let _M68K_REG_SRP = 43;;
+let _M68K_REG_FPCR = 44;;
+let _M68K_REG_FPSR = 45;;
+let _M68K_REG_FPIAR = 46;;
+let _M68K_REG_ENDING = 47;;
+
+let _M68K_AM_NONE = 0;;
+let _M68K_AM_REG_DIRECT_DATA = 1;;
+let _M68K_AM_REG_DIRECT_ADDR = 2;;
+let _M68K_AM_REGI_ADDR = 3;;
+let _M68K_AM_REGI_ADDR_POST_INC = 4;;
+let _M68K_AM_REGI_ADDR_PRE_DEC = 5;;
+let _M68K_AM_REGI_ADDR_DISP = 6;;
+let _M68K_AM_AREGI_INDEX_8_BIT_DISP = 7;;
+let _M68K_AM_AREGI_INDEX_BASE_DISP = 8;;
+let _M68K_AM_MEMI_POST_INDEX = 9;;
+let _M68K_AM_MEMI_PRE_INDEX = 10;;
+let _M68K_AM_PCI_DISP = 11;;
+let _M68K_AM_PCI_INDEX_8_BIT_DISP = 12;;
+let _M68K_AM_PCI_INDEX_BASE_DISP = 13;;
+let _M68K_AM_PC_MEMI_POST_INDEX = 14;;
+let _M68K_AM_PC_MEMI_PRE_INDEX = 15;;
+let _M68K_AM_ABSOLUTE_DATA_SHORT = 16;;
+let _M68K_AM_ABSOLUTE_DATA_LONG = 17;;
+let _M68K_AM_IMMEDIATE = 18;;
+let _M68K_AM_BRANCH_DISPLACEMENT = 19;;
+
+let _M68K_OP_INVALID = 0;;
+let _M68K_OP_REG = 1;;
+let _M68K_OP_IMM = 2;;
+let _M68K_OP_MEM = 3;;
+let _M68K_OP_FP_SINGLE = 4;;
+let _M68K_OP_FP_DOUBLE = 5;;
+let _M68K_OP_REG_BITS = 6;;
+let _M68K_OP_REG_PAIR = 7;;
+let _M68K_OP_BR_DISP = 8;;
+
+let _M68K_OP_BR_DISP_SIZE_INVALID = 0;;
+let _M68K_OP_BR_DISP_SIZE_BYTE = 1;;
+let _M68K_OP_BR_DISP_SIZE_WORD = 2;;
+let _M68K_OP_BR_DISP_SIZE_LONG = 4;;
+
+let _M68K_CPU_SIZE_NONE = 0;;
+let _M68K_CPU_SIZE_BYTE = 1;;
+let _M68K_CPU_SIZE_WORD = 2;;
+let _M68K_CPU_SIZE_LONG = 4;;
+
+let _M68K_FPU_SIZE_NONE = 0;;
+let _M68K_FPU_SIZE_SINGLE = 4;;
+let _M68K_FPU_SIZE_DOUBLE = 8;;
+let _M68K_FPU_SIZE_EXTENDED = 12;;
+
+let _M68K_SIZE_TYPE_INVALID = 0;;
+let _M68K_SIZE_TYPE_CPU = 1;;
+let _M68K_SIZE_TYPE_FPU = 2;;
+
+let _M68K_INS_INVALID = 0;;
+let _M68K_INS_ABCD = 1;;
+let _M68K_INS_ADD = 2;;
+let _M68K_INS_ADDA = 3;;
+let _M68K_INS_ADDI = 4;;
+let _M68K_INS_ADDQ = 5;;
+let _M68K_INS_ADDX = 6;;
+let _M68K_INS_AND = 7;;
+let _M68K_INS_ANDI = 8;;
+let _M68K_INS_ASL = 9;;
+let _M68K_INS_ASR = 10;;
+let _M68K_INS_BHS = 11;;
+let _M68K_INS_BLO = 12;;
+let _M68K_INS_BHI = 13;;
+let _M68K_INS_BLS = 14;;
+let _M68K_INS_BCC = 15;;
+let _M68K_INS_BCS = 16;;
+let _M68K_INS_BNE = 17;;
+let _M68K_INS_BEQ = 18;;
+let _M68K_INS_BVC = 19;;
+let _M68K_INS_BVS = 20;;
+let _M68K_INS_BPL = 21;;
+let _M68K_INS_BMI = 22;;
+let _M68K_INS_BGE = 23;;
+let _M68K_INS_BLT = 24;;
+let _M68K_INS_BGT = 25;;
+let _M68K_INS_BLE = 26;;
+let _M68K_INS_BRA = 27;;
+let _M68K_INS_BSR = 28;;
+let _M68K_INS_BCHG = 29;;
+let _M68K_INS_BCLR = 30;;
+let _M68K_INS_BSET = 31;;
+let _M68K_INS_BTST = 32;;
+let _M68K_INS_BFCHG = 33;;
+let _M68K_INS_BFCLR = 34;;
+let _M68K_INS_BFEXTS = 35;;
+let _M68K_INS_BFEXTU = 36;;
+let _M68K_INS_BFFFO = 37;;
+let _M68K_INS_BFINS = 38;;
+let _M68K_INS_BFSET = 39;;
+let _M68K_INS_BFTST = 40;;
+let _M68K_INS_BKPT = 41;;
+let _M68K_INS_CALLM = 42;;
+let _M68K_INS_CAS = 43;;
+let _M68K_INS_CAS2 = 44;;
+let _M68K_INS_CHK = 45;;
+let _M68K_INS_CHK2 = 46;;
+let _M68K_INS_CLR = 47;;
+let _M68K_INS_CMP = 48;;
+let _M68K_INS_CMPA = 49;;
+let _M68K_INS_CMPI = 50;;
+let _M68K_INS_CMPM = 51;;
+let _M68K_INS_CMP2 = 52;;
+let _M68K_INS_CINVL = 53;;
+let _M68K_INS_CINVP = 54;;
+let _M68K_INS_CINVA = 55;;
+let _M68K_INS_CPUSHL = 56;;
+let _M68K_INS_CPUSHP = 57;;
+let _M68K_INS_CPUSHA = 58;;
+let _M68K_INS_DBT = 59;;
+let _M68K_INS_DBF = 60;;
+let _M68K_INS_DBHI = 61;;
+let _M68K_INS_DBLS = 62;;
+let _M68K_INS_DBCC = 63;;
+let _M68K_INS_DBCS = 64;;
+let _M68K_INS_DBNE = 65;;
+let _M68K_INS_DBEQ = 66;;
+let _M68K_INS_DBVC = 67;;
+let _M68K_INS_DBVS = 68;;
+let _M68K_INS_DBPL = 69;;
+let _M68K_INS_DBMI = 70;;
+let _M68K_INS_DBGE = 71;;
+let _M68K_INS_DBLT = 72;;
+let _M68K_INS_DBGT = 73;;
+let _M68K_INS_DBLE = 74;;
+let _M68K_INS_DBRA = 75;;
+let _M68K_INS_DIVS = 76;;
+let _M68K_INS_DIVSL = 77;;
+let _M68K_INS_DIVU = 78;;
+let _M68K_INS_DIVUL = 79;;
+let _M68K_INS_EOR = 80;;
+let _M68K_INS_EORI = 81;;
+let _M68K_INS_EXG = 82;;
+let _M68K_INS_EXT = 83;;
+let _M68K_INS_EXTB = 84;;
+let _M68K_INS_FABS = 85;;
+let _M68K_INS_FSABS = 86;;
+let _M68K_INS_FDABS = 87;;
+let _M68K_INS_FACOS = 88;;
+let _M68K_INS_FADD = 89;;
+let _M68K_INS_FSADD = 90;;
+let _M68K_INS_FDADD = 91;;
+let _M68K_INS_FASIN = 92;;
+let _M68K_INS_FATAN = 93;;
+let _M68K_INS_FATANH = 94;;
+let _M68K_INS_FBF = 95;;
+let _M68K_INS_FBEQ = 96;;
+let _M68K_INS_FBOGT = 97;;
+let _M68K_INS_FBOGE = 98;;
+let _M68K_INS_FBOLT = 99;;
+let _M68K_INS_FBOLE = 100;;
+let _M68K_INS_FBOGL = 101;;
+let _M68K_INS_FBOR = 102;;
+let _M68K_INS_FBUN = 103;;
+let _M68K_INS_FBUEQ = 104;;
+let _M68K_INS_FBUGT = 105;;
+let _M68K_INS_FBUGE = 106;;
+let _M68K_INS_FBULT = 107;;
+let _M68K_INS_FBULE = 108;;
+let _M68K_INS_FBNE = 109;;
+let _M68K_INS_FBT = 110;;
+let _M68K_INS_FBSF = 111;;
+let _M68K_INS_FBSEQ = 112;;
+let _M68K_INS_FBGT = 113;;
+let _M68K_INS_FBGE = 114;;
+let _M68K_INS_FBLT = 115;;
+let _M68K_INS_FBLE = 116;;
+let _M68K_INS_FBGL = 117;;
+let _M68K_INS_FBGLE = 118;;
+let _M68K_INS_FBNGLE = 119;;
+let _M68K_INS_FBNGL = 120;;
+let _M68K_INS_FBNLE = 121;;
+let _M68K_INS_FBNLT = 122;;
+let _M68K_INS_FBNGE = 123;;
+let _M68K_INS_FBNGT = 124;;
+let _M68K_INS_FBSNE = 125;;
+let _M68K_INS_FBST = 126;;
+let _M68K_INS_FCMP = 127;;
+let _M68K_INS_FCOS = 128;;
+let _M68K_INS_FCOSH = 129;;
+let _M68K_INS_FDBF = 130;;
+let _M68K_INS_FDBEQ = 131;;
+let _M68K_INS_FDBOGT = 132;;
+let _M68K_INS_FDBOGE = 133;;
+let _M68K_INS_FDBOLT = 134;;
+let _M68K_INS_FDBOLE = 135;;
+let _M68K_INS_FDBOGL = 136;;
+let _M68K_INS_FDBOR = 137;;
+let _M68K_INS_FDBUN = 138;;
+let _M68K_INS_FDBUEQ = 139;;
+let _M68K_INS_FDBUGT = 140;;
+let _M68K_INS_FDBUGE = 141;;
+let _M68K_INS_FDBULT = 142;;
+let _M68K_INS_FDBULE = 143;;
+let _M68K_INS_FDBNE = 144;;
+let _M68K_INS_FDBT = 145;;
+let _M68K_INS_FDBSF = 146;;
+let _M68K_INS_FDBSEQ = 147;;
+let _M68K_INS_FDBGT = 148;;
+let _M68K_INS_FDBGE = 149;;
+let _M68K_INS_FDBLT = 150;;
+let _M68K_INS_FDBLE = 151;;
+let _M68K_INS_FDBGL = 152;;
+let _M68K_INS_FDBGLE = 153;;
+let _M68K_INS_FDBNGLE = 154;;
+let _M68K_INS_FDBNGL = 155;;
+let _M68K_INS_FDBNLE = 156;;
+let _M68K_INS_FDBNLT = 157;;
+let _M68K_INS_FDBNGE = 158;;
+let _M68K_INS_FDBNGT = 159;;
+let _M68K_INS_FDBSNE = 160;;
+let _M68K_INS_FDBST = 161;;
+let _M68K_INS_FDIV = 162;;
+let _M68K_INS_FSDIV = 163;;
+let _M68K_INS_FDDIV = 164;;
+let _M68K_INS_FETOX = 165;;
+let _M68K_INS_FETOXM1 = 166;;
+let _M68K_INS_FGETEXP = 167;;
+let _M68K_INS_FGETMAN = 168;;
+let _M68K_INS_FINT = 169;;
+let _M68K_INS_FINTRZ = 170;;
+let _M68K_INS_FLOG10 = 171;;
+let _M68K_INS_FLOG2 = 172;;
+let _M68K_INS_FLOGN = 173;;
+let _M68K_INS_FLOGNP1 = 174;;
+let _M68K_INS_FMOD = 175;;
+let _M68K_INS_FMOVE = 176;;
+let _M68K_INS_FSMOVE = 177;;
+let _M68K_INS_FDMOVE = 178;;
+let _M68K_INS_FMOVECR = 179;;
+let _M68K_INS_FMOVEM = 180;;
+let _M68K_INS_FMUL = 181;;
+let _M68K_INS_FSMUL = 182;;
+let _M68K_INS_FDMUL = 183;;
+let _M68K_INS_FNEG = 184;;
+let _M68K_INS_FSNEG = 185;;
+let _M68K_INS_FDNEG = 186;;
+let _M68K_INS_FNOP = 187;;
+let _M68K_INS_FREM = 188;;
+let _M68K_INS_FRESTORE = 189;;
+let _M68K_INS_FSAVE = 190;;
+let _M68K_INS_FSCALE = 191;;
+let _M68K_INS_FSGLDIV = 192;;
+let _M68K_INS_FSGLMUL = 193;;
+let _M68K_INS_FSIN = 194;;
+let _M68K_INS_FSINCOS = 195;;
+let _M68K_INS_FSINH = 196;;
+let _M68K_INS_FSQRT = 197;;
+let _M68K_INS_FSSQRT = 198;;
+let _M68K_INS_FDSQRT = 199;;
+let _M68K_INS_FSF = 200;;
+let _M68K_INS_FSBEQ = 201;;
+let _M68K_INS_FSOGT = 202;;
+let _M68K_INS_FSOGE = 203;;
+let _M68K_INS_FSOLT = 204;;
+let _M68K_INS_FSOLE = 205;;
+let _M68K_INS_FSOGL = 206;;
+let _M68K_INS_FSOR = 207;;
+let _M68K_INS_FSUN = 208;;
+let _M68K_INS_FSUEQ = 209;;
+let _M68K_INS_FSUGT = 210;;
+let _M68K_INS_FSUGE = 211;;
+let _M68K_INS_FSULT = 212;;
+let _M68K_INS_FSULE = 213;;
+let _M68K_INS_FSNE = 214;;
+let _M68K_INS_FST = 215;;
+let _M68K_INS_FSSF = 216;;
+let _M68K_INS_FSSEQ = 217;;
+let _M68K_INS_FSGT = 218;;
+let _M68K_INS_FSGE = 219;;
+let _M68K_INS_FSLT = 220;;
+let _M68K_INS_FSLE = 221;;
+let _M68K_INS_FSGL = 222;;
+let _M68K_INS_FSGLE = 223;;
+let _M68K_INS_FSNGLE = 224;;
+let _M68K_INS_FSNGL = 225;;
+let _M68K_INS_FSNLE = 226;;
+let _M68K_INS_FSNLT = 227;;
+let _M68K_INS_FSNGE = 228;;
+let _M68K_INS_FSNGT = 229;;
+let _M68K_INS_FSSNE = 230;;
+let _M68K_INS_FSST = 231;;
+let _M68K_INS_FSUB = 232;;
+let _M68K_INS_FSSUB = 233;;
+let _M68K_INS_FDSUB = 234;;
+let _M68K_INS_FTAN = 235;;
+let _M68K_INS_FTANH = 236;;
+let _M68K_INS_FTENTOX = 237;;
+let _M68K_INS_FTRAPF = 238;;
+let _M68K_INS_FTRAPEQ = 239;;
+let _M68K_INS_FTRAPOGT = 240;;
+let _M68K_INS_FTRAPOGE = 241;;
+let _M68K_INS_FTRAPOLT = 242;;
+let _M68K_INS_FTRAPOLE = 243;;
+let _M68K_INS_FTRAPOGL = 244;;
+let _M68K_INS_FTRAPOR = 245;;
+let _M68K_INS_FTRAPUN = 246;;
+let _M68K_INS_FTRAPUEQ = 247;;
+let _M68K_INS_FTRAPUGT = 248;;
+let _M68K_INS_FTRAPUGE = 249;;
+let _M68K_INS_FTRAPULT = 250;;
+let _M68K_INS_FTRAPULE = 251;;
+let _M68K_INS_FTRAPNE = 252;;
+let _M68K_INS_FTRAPT = 253;;
+let _M68K_INS_FTRAPSF = 254;;
+let _M68K_INS_FTRAPSEQ = 255;;
+let _M68K_INS_FTRAPGT = 256;;
+let _M68K_INS_FTRAPGE = 257;;
+let _M68K_INS_FTRAPLT = 258;;
+let _M68K_INS_FTRAPLE = 259;;
+let _M68K_INS_FTRAPGL = 260;;
+let _M68K_INS_FTRAPGLE = 261;;
+let _M68K_INS_FTRAPNGLE = 262;;
+let _M68K_INS_FTRAPNGL = 263;;
+let _M68K_INS_FTRAPNLE = 264;;
+let _M68K_INS_FTRAPNLT = 265;;
+let _M68K_INS_FTRAPNGE = 266;;
+let _M68K_INS_FTRAPNGT = 267;;
+let _M68K_INS_FTRAPSNE = 268;;
+let _M68K_INS_FTRAPST = 269;;
+let _M68K_INS_FTST = 270;;
+let _M68K_INS_FTWOTOX = 271;;
+let _M68K_INS_HALT = 272;;
+let _M68K_INS_ILLEGAL = 273;;
+let _M68K_INS_JMP = 274;;
+let _M68K_INS_JSR = 275;;
+let _M68K_INS_LEA = 276;;
+let _M68K_INS_LINK = 277;;
+let _M68K_INS_LPSTOP = 278;;
+let _M68K_INS_LSL = 279;;
+let _M68K_INS_LSR = 280;;
+let _M68K_INS_MOVE = 281;;
+let _M68K_INS_MOVEA = 282;;
+let _M68K_INS_MOVEC = 283;;
+let _M68K_INS_MOVEM = 284;;
+let _M68K_INS_MOVEP = 285;;
+let _M68K_INS_MOVEQ = 286;;
+let _M68K_INS_MOVES = 287;;
+let _M68K_INS_MOVE16 = 288;;
+let _M68K_INS_MULS = 289;;
+let _M68K_INS_MULU = 290;;
+let _M68K_INS_NBCD = 291;;
+let _M68K_INS_NEG = 292;;
+let _M68K_INS_NEGX = 293;;
+let _M68K_INS_NOP = 294;;
+let _M68K_INS_NOT = 295;;
+let _M68K_INS_OR = 296;;
+let _M68K_INS_ORI = 297;;
+let _M68K_INS_PACK = 298;;
+let _M68K_INS_PEA = 299;;
+let _M68K_INS_PFLUSH = 300;;
+let _M68K_INS_PFLUSHA = 301;;
+let _M68K_INS_PFLUSHAN = 302;;
+let _M68K_INS_PFLUSHN = 303;;
+let _M68K_INS_PLOADR = 304;;
+let _M68K_INS_PLOADW = 305;;
+let _M68K_INS_PLPAR = 306;;
+let _M68K_INS_PLPAW = 307;;
+let _M68K_INS_PMOVE = 308;;
+let _M68K_INS_PMOVEFD = 309;;
+let _M68K_INS_PTESTR = 310;;
+let _M68K_INS_PTESTW = 311;;
+let _M68K_INS_PULSE = 312;;
+let _M68K_INS_REMS = 313;;
+let _M68K_INS_REMU = 314;;
+let _M68K_INS_RESET = 315;;
+let _M68K_INS_ROL = 316;;
+let _M68K_INS_ROR = 317;;
+let _M68K_INS_ROXL = 318;;
+let _M68K_INS_ROXR = 319;;
+let _M68K_INS_RTD = 320;;
+let _M68K_INS_RTE = 321;;
+let _M68K_INS_RTM = 322;;
+let _M68K_INS_RTR = 323;;
+let _M68K_INS_RTS = 324;;
+let _M68K_INS_SBCD = 325;;
+let _M68K_INS_ST = 326;;
+let _M68K_INS_SF = 327;;
+let _M68K_INS_SHI = 328;;
+let _M68K_INS_SLS = 329;;
+let _M68K_INS_SCC = 330;;
+let _M68K_INS_SHS = 331;;
+let _M68K_INS_SCS = 332;;
+let _M68K_INS_SLO = 333;;
+let _M68K_INS_SNE = 334;;
+let _M68K_INS_SEQ = 335;;
+let _M68K_INS_SVC = 336;;
+let _M68K_INS_SVS = 337;;
+let _M68K_INS_SPL = 338;;
+let _M68K_INS_SMI = 339;;
+let _M68K_INS_SGE = 340;;
+let _M68K_INS_SLT = 341;;
+let _M68K_INS_SGT = 342;;
+let _M68K_INS_SLE = 343;;
+let _M68K_INS_STOP = 344;;
+let _M68K_INS_SUB = 345;;
+let _M68K_INS_SUBA = 346;;
+let _M68K_INS_SUBI = 347;;
+let _M68K_INS_SUBQ = 348;;
+let _M68K_INS_SUBX = 349;;
+let _M68K_INS_SWAP = 350;;
+let _M68K_INS_TAS = 351;;
+let _M68K_INS_TRAP = 352;;
+let _M68K_INS_TRAPV = 353;;
+let _M68K_INS_TRAPT = 354;;
+let _M68K_INS_TRAPF = 355;;
+let _M68K_INS_TRAPHI = 356;;
+let _M68K_INS_TRAPLS = 357;;
+let _M68K_INS_TRAPCC = 358;;
+let _M68K_INS_TRAPHS = 359;;
+let _M68K_INS_TRAPCS = 360;;
+let _M68K_INS_TRAPLO = 361;;
+let _M68K_INS_TRAPNE = 362;;
+let _M68K_INS_TRAPEQ = 363;;
+let _M68K_INS_TRAPVC = 364;;
+let _M68K_INS_TRAPVS = 365;;
+let _M68K_INS_TRAPPL = 366;;
+let _M68K_INS_TRAPMI = 367;;
+let _M68K_INS_TRAPGE = 368;;
+let _M68K_INS_TRAPLT = 369;;
+let _M68K_INS_TRAPGT = 370;;
+let _M68K_INS_TRAPLE = 371;;
+let _M68K_INS_TST = 372;;
+let _M68K_INS_UNLK = 373;;
+let _M68K_INS_UNPK = 374;;
+let _M68K_INS_ENDING = 375;;
+
+let _M68K_GRP_INVALID = 0;;
+let _M68K_GRP_JUMP = 1;;
+let _M68K_GRP_RET = 3;;
+let _M68K_GRP_IRET = 5;;
+let _M68K_GRP_BRANCH_RELATIVE = 7;;
+let _M68K_GRP_ENDING = 8;;
diff --git a/capstone/bindings/ocaml/mips.ml b/capstone/bindings/ocaml/mips.ml
new file mode 100644
index 000000000..f0995e352
--- /dev/null
+++ b/capstone/bindings/ocaml/mips.ml
@@ -0,0 +1,24 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Mips_const
+
+(* architecture specific info of instruction *)
+type mips_op_mem = {
+ base: int;
+ disp: int
+}
+
+type mips_op_value =
+ | MIPS_OP_INVALID of int
+ | MIPS_OP_REG of int
+ | MIPS_OP_IMM of int
+ | MIPS_OP_MEM of mips_op_mem
+
+type mips_op = {
+ value: mips_op_value;
+}
+
+type cs_mips = {
+ operands: mips_op array;
+}
diff --git a/capstone/bindings/ocaml/mips_const.ml b/capstone/bindings/ocaml/mips_const.ml
new file mode 100644
index 000000000..e0b581be6
--- /dev/null
+++ b/capstone/bindings/ocaml/mips_const.ml
@@ -0,0 +1,861 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [mips_const.ml] *)
+
+let _MIPS_OP_INVALID = 0;;
+let _MIPS_OP_REG = 1;;
+let _MIPS_OP_IMM = 2;;
+let _MIPS_OP_MEM = 3;;
+
+let _MIPS_REG_INVALID = 0;;
+let _MIPS_REG_PC = 1;;
+let _MIPS_REG_0 = 2;;
+let _MIPS_REG_1 = 3;;
+let _MIPS_REG_2 = 4;;
+let _MIPS_REG_3 = 5;;
+let _MIPS_REG_4 = 6;;
+let _MIPS_REG_5 = 7;;
+let _MIPS_REG_6 = 8;;
+let _MIPS_REG_7 = 9;;
+let _MIPS_REG_8 = 10;;
+let _MIPS_REG_9 = 11;;
+let _MIPS_REG_10 = 12;;
+let _MIPS_REG_11 = 13;;
+let _MIPS_REG_12 = 14;;
+let _MIPS_REG_13 = 15;;
+let _MIPS_REG_14 = 16;;
+let _MIPS_REG_15 = 17;;
+let _MIPS_REG_16 = 18;;
+let _MIPS_REG_17 = 19;;
+let _MIPS_REG_18 = 20;;
+let _MIPS_REG_19 = 21;;
+let _MIPS_REG_20 = 22;;
+let _MIPS_REG_21 = 23;;
+let _MIPS_REG_22 = 24;;
+let _MIPS_REG_23 = 25;;
+let _MIPS_REG_24 = 26;;
+let _MIPS_REG_25 = 27;;
+let _MIPS_REG_26 = 28;;
+let _MIPS_REG_27 = 29;;
+let _MIPS_REG_28 = 30;;
+let _MIPS_REG_29 = 31;;
+let _MIPS_REG_30 = 32;;
+let _MIPS_REG_31 = 33;;
+let _MIPS_REG_DSPCCOND = 34;;
+let _MIPS_REG_DSPCARRY = 35;;
+let _MIPS_REG_DSPEFI = 36;;
+let _MIPS_REG_DSPOUTFLAG = 37;;
+let _MIPS_REG_DSPOUTFLAG16_19 = 38;;
+let _MIPS_REG_DSPOUTFLAG20 = 39;;
+let _MIPS_REG_DSPOUTFLAG21 = 40;;
+let _MIPS_REG_DSPOUTFLAG22 = 41;;
+let _MIPS_REG_DSPOUTFLAG23 = 42;;
+let _MIPS_REG_DSPPOS = 43;;
+let _MIPS_REG_DSPSCOUNT = 44;;
+let _MIPS_REG_AC0 = 45;;
+let _MIPS_REG_AC1 = 46;;
+let _MIPS_REG_AC2 = 47;;
+let _MIPS_REG_AC3 = 48;;
+let _MIPS_REG_CC0 = 49;;
+let _MIPS_REG_CC1 = 50;;
+let _MIPS_REG_CC2 = 51;;
+let _MIPS_REG_CC3 = 52;;
+let _MIPS_REG_CC4 = 53;;
+let _MIPS_REG_CC5 = 54;;
+let _MIPS_REG_CC6 = 55;;
+let _MIPS_REG_CC7 = 56;;
+let _MIPS_REG_F0 = 57;;
+let _MIPS_REG_F1 = 58;;
+let _MIPS_REG_F2 = 59;;
+let _MIPS_REG_F3 = 60;;
+let _MIPS_REG_F4 = 61;;
+let _MIPS_REG_F5 = 62;;
+let _MIPS_REG_F6 = 63;;
+let _MIPS_REG_F7 = 64;;
+let _MIPS_REG_F8 = 65;;
+let _MIPS_REG_F9 = 66;;
+let _MIPS_REG_F10 = 67;;
+let _MIPS_REG_F11 = 68;;
+let _MIPS_REG_F12 = 69;;
+let _MIPS_REG_F13 = 70;;
+let _MIPS_REG_F14 = 71;;
+let _MIPS_REG_F15 = 72;;
+let _MIPS_REG_F16 = 73;;
+let _MIPS_REG_F17 = 74;;
+let _MIPS_REG_F18 = 75;;
+let _MIPS_REG_F19 = 76;;
+let _MIPS_REG_F20 = 77;;
+let _MIPS_REG_F21 = 78;;
+let _MIPS_REG_F22 = 79;;
+let _MIPS_REG_F23 = 80;;
+let _MIPS_REG_F24 = 81;;
+let _MIPS_REG_F25 = 82;;
+let _MIPS_REG_F26 = 83;;
+let _MIPS_REG_F27 = 84;;
+let _MIPS_REG_F28 = 85;;
+let _MIPS_REG_F29 = 86;;
+let _MIPS_REG_F30 = 87;;
+let _MIPS_REG_F31 = 88;;
+let _MIPS_REG_FCC0 = 89;;
+let _MIPS_REG_FCC1 = 90;;
+let _MIPS_REG_FCC2 = 91;;
+let _MIPS_REG_FCC3 = 92;;
+let _MIPS_REG_FCC4 = 93;;
+let _MIPS_REG_FCC5 = 94;;
+let _MIPS_REG_FCC6 = 95;;
+let _MIPS_REG_FCC7 = 96;;
+let _MIPS_REG_W0 = 97;;
+let _MIPS_REG_W1 = 98;;
+let _MIPS_REG_W2 = 99;;
+let _MIPS_REG_W3 = 100;;
+let _MIPS_REG_W4 = 101;;
+let _MIPS_REG_W5 = 102;;
+let _MIPS_REG_W6 = 103;;
+let _MIPS_REG_W7 = 104;;
+let _MIPS_REG_W8 = 105;;
+let _MIPS_REG_W9 = 106;;
+let _MIPS_REG_W10 = 107;;
+let _MIPS_REG_W11 = 108;;
+let _MIPS_REG_W12 = 109;;
+let _MIPS_REG_W13 = 110;;
+let _MIPS_REG_W14 = 111;;
+let _MIPS_REG_W15 = 112;;
+let _MIPS_REG_W16 = 113;;
+let _MIPS_REG_W17 = 114;;
+let _MIPS_REG_W18 = 115;;
+let _MIPS_REG_W19 = 116;;
+let _MIPS_REG_W20 = 117;;
+let _MIPS_REG_W21 = 118;;
+let _MIPS_REG_W22 = 119;;
+let _MIPS_REG_W23 = 120;;
+let _MIPS_REG_W24 = 121;;
+let _MIPS_REG_W25 = 122;;
+let _MIPS_REG_W26 = 123;;
+let _MIPS_REG_W27 = 124;;
+let _MIPS_REG_W28 = 125;;
+let _MIPS_REG_W29 = 126;;
+let _MIPS_REG_W30 = 127;;
+let _MIPS_REG_W31 = 128;;
+let _MIPS_REG_HI = 129;;
+let _MIPS_REG_LO = 130;;
+let _MIPS_REG_P0 = 131;;
+let _MIPS_REG_P1 = 132;;
+let _MIPS_REG_P2 = 133;;
+let _MIPS_REG_MPL0 = 134;;
+let _MIPS_REG_MPL1 = 135;;
+let _MIPS_REG_MPL2 = 136;;
+let _MIPS_REG_ENDING = 137;;
+let _MIPS_REG_ZERO = _MIPS_REG_0;;
+let _MIPS_REG_AT = _MIPS_REG_1;;
+let _MIPS_REG_V0 = _MIPS_REG_2;;
+let _MIPS_REG_V1 = _MIPS_REG_3;;
+let _MIPS_REG_A0 = _MIPS_REG_4;;
+let _MIPS_REG_A1 = _MIPS_REG_5;;
+let _MIPS_REG_A2 = _MIPS_REG_6;;
+let _MIPS_REG_A3 = _MIPS_REG_7;;
+let _MIPS_REG_T0 = _MIPS_REG_8;;
+let _MIPS_REG_T1 = _MIPS_REG_9;;
+let _MIPS_REG_T2 = _MIPS_REG_10;;
+let _MIPS_REG_T3 = _MIPS_REG_11;;
+let _MIPS_REG_T4 = _MIPS_REG_12;;
+let _MIPS_REG_T5 = _MIPS_REG_13;;
+let _MIPS_REG_T6 = _MIPS_REG_14;;
+let _MIPS_REG_T7 = _MIPS_REG_15;;
+let _MIPS_REG_S0 = _MIPS_REG_16;;
+let _MIPS_REG_S1 = _MIPS_REG_17;;
+let _MIPS_REG_S2 = _MIPS_REG_18;;
+let _MIPS_REG_S3 = _MIPS_REG_19;;
+let _MIPS_REG_S4 = _MIPS_REG_20;;
+let _MIPS_REG_S5 = _MIPS_REG_21;;
+let _MIPS_REG_S6 = _MIPS_REG_22;;
+let _MIPS_REG_S7 = _MIPS_REG_23;;
+let _MIPS_REG_T8 = _MIPS_REG_24;;
+let _MIPS_REG_T9 = _MIPS_REG_25;;
+let _MIPS_REG_K0 = _MIPS_REG_26;;
+let _MIPS_REG_K1 = _MIPS_REG_27;;
+let _MIPS_REG_GP = _MIPS_REG_28;;
+let _MIPS_REG_SP = _MIPS_REG_29;;
+let _MIPS_REG_FP = _MIPS_REG_30;;
+let _MIPS_REG_S8 = _MIPS_REG_30;;
+let _MIPS_REG_RA = _MIPS_REG_31;;
+let _MIPS_REG_HI0 = _MIPS_REG_AC0;;
+let _MIPS_REG_HI1 = _MIPS_REG_AC1;;
+let _MIPS_REG_HI2 = _MIPS_REG_AC2;;
+let _MIPS_REG_HI3 = _MIPS_REG_AC3;;
+let _MIPS_REG_LO0 = _MIPS_REG_HI0;;
+let _MIPS_REG_LO1 = _MIPS_REG_HI1;;
+let _MIPS_REG_LO2 = _MIPS_REG_HI2;;
+let _MIPS_REG_LO3 = _MIPS_REG_HI3;;
+
+let _MIPS_INS_INVALID = 0;;
+let _MIPS_INS_ABSQ_S = 1;;
+let _MIPS_INS_ADD = 2;;
+let _MIPS_INS_ADDIUPC = 3;;
+let _MIPS_INS_ADDIUR1SP = 4;;
+let _MIPS_INS_ADDIUR2 = 5;;
+let _MIPS_INS_ADDIUS5 = 6;;
+let _MIPS_INS_ADDIUSP = 7;;
+let _MIPS_INS_ADDQH = 8;;
+let _MIPS_INS_ADDQH_R = 9;;
+let _MIPS_INS_ADDQ = 10;;
+let _MIPS_INS_ADDQ_S = 11;;
+let _MIPS_INS_ADDSC = 12;;
+let _MIPS_INS_ADDS_A = 13;;
+let _MIPS_INS_ADDS_S = 14;;
+let _MIPS_INS_ADDS_U = 15;;
+let _MIPS_INS_ADDU16 = 16;;
+let _MIPS_INS_ADDUH = 17;;
+let _MIPS_INS_ADDUH_R = 18;;
+let _MIPS_INS_ADDU = 19;;
+let _MIPS_INS_ADDU_S = 20;;
+let _MIPS_INS_ADDVI = 21;;
+let _MIPS_INS_ADDV = 22;;
+let _MIPS_INS_ADDWC = 23;;
+let _MIPS_INS_ADD_A = 24;;
+let _MIPS_INS_ADDI = 25;;
+let _MIPS_INS_ADDIU = 26;;
+let _MIPS_INS_ALIGN = 27;;
+let _MIPS_INS_ALUIPC = 28;;
+let _MIPS_INS_AND = 29;;
+let _MIPS_INS_AND16 = 30;;
+let _MIPS_INS_ANDI16 = 31;;
+let _MIPS_INS_ANDI = 32;;
+let _MIPS_INS_APPEND = 33;;
+let _MIPS_INS_ASUB_S = 34;;
+let _MIPS_INS_ASUB_U = 35;;
+let _MIPS_INS_AUI = 36;;
+let _MIPS_INS_AUIPC = 37;;
+let _MIPS_INS_AVER_S = 38;;
+let _MIPS_INS_AVER_U = 39;;
+let _MIPS_INS_AVE_S = 40;;
+let _MIPS_INS_AVE_U = 41;;
+let _MIPS_INS_B16 = 42;;
+let _MIPS_INS_BADDU = 43;;
+let _MIPS_INS_BAL = 44;;
+let _MIPS_INS_BALC = 45;;
+let _MIPS_INS_BALIGN = 46;;
+let _MIPS_INS_BBIT0 = 47;;
+let _MIPS_INS_BBIT032 = 48;;
+let _MIPS_INS_BBIT1 = 49;;
+let _MIPS_INS_BBIT132 = 50;;
+let _MIPS_INS_BC = 51;;
+let _MIPS_INS_BC0F = 52;;
+let _MIPS_INS_BC0FL = 53;;
+let _MIPS_INS_BC0T = 54;;
+let _MIPS_INS_BC0TL = 55;;
+let _MIPS_INS_BC1EQZ = 56;;
+let _MIPS_INS_BC1F = 57;;
+let _MIPS_INS_BC1FL = 58;;
+let _MIPS_INS_BC1NEZ = 59;;
+let _MIPS_INS_BC1T = 60;;
+let _MIPS_INS_BC1TL = 61;;
+let _MIPS_INS_BC2EQZ = 62;;
+let _MIPS_INS_BC2F = 63;;
+let _MIPS_INS_BC2FL = 64;;
+let _MIPS_INS_BC2NEZ = 65;;
+let _MIPS_INS_BC2T = 66;;
+let _MIPS_INS_BC2TL = 67;;
+let _MIPS_INS_BC3F = 68;;
+let _MIPS_INS_BC3FL = 69;;
+let _MIPS_INS_BC3T = 70;;
+let _MIPS_INS_BC3TL = 71;;
+let _MIPS_INS_BCLRI = 72;;
+let _MIPS_INS_BCLR = 73;;
+let _MIPS_INS_BEQ = 74;;
+let _MIPS_INS_BEQC = 75;;
+let _MIPS_INS_BEQL = 76;;
+let _MIPS_INS_BEQZ16 = 77;;
+let _MIPS_INS_BEQZALC = 78;;
+let _MIPS_INS_BEQZC = 79;;
+let _MIPS_INS_BGEC = 80;;
+let _MIPS_INS_BGEUC = 81;;
+let _MIPS_INS_BGEZ = 82;;
+let _MIPS_INS_BGEZAL = 83;;
+let _MIPS_INS_BGEZALC = 84;;
+let _MIPS_INS_BGEZALL = 85;;
+let _MIPS_INS_BGEZALS = 86;;
+let _MIPS_INS_BGEZC = 87;;
+let _MIPS_INS_BGEZL = 88;;
+let _MIPS_INS_BGTZ = 89;;
+let _MIPS_INS_BGTZALC = 90;;
+let _MIPS_INS_BGTZC = 91;;
+let _MIPS_INS_BGTZL = 92;;
+let _MIPS_INS_BINSLI = 93;;
+let _MIPS_INS_BINSL = 94;;
+let _MIPS_INS_BINSRI = 95;;
+let _MIPS_INS_BINSR = 96;;
+let _MIPS_INS_BITREV = 97;;
+let _MIPS_INS_BITSWAP = 98;;
+let _MIPS_INS_BLEZ = 99;;
+let _MIPS_INS_BLEZALC = 100;;
+let _MIPS_INS_BLEZC = 101;;
+let _MIPS_INS_BLEZL = 102;;
+let _MIPS_INS_BLTC = 103;;
+let _MIPS_INS_BLTUC = 104;;
+let _MIPS_INS_BLTZ = 105;;
+let _MIPS_INS_BLTZAL = 106;;
+let _MIPS_INS_BLTZALC = 107;;
+let _MIPS_INS_BLTZALL = 108;;
+let _MIPS_INS_BLTZALS = 109;;
+let _MIPS_INS_BLTZC = 110;;
+let _MIPS_INS_BLTZL = 111;;
+let _MIPS_INS_BMNZI = 112;;
+let _MIPS_INS_BMNZ = 113;;
+let _MIPS_INS_BMZI = 114;;
+let _MIPS_INS_BMZ = 115;;
+let _MIPS_INS_BNE = 116;;
+let _MIPS_INS_BNEC = 117;;
+let _MIPS_INS_BNEGI = 118;;
+let _MIPS_INS_BNEG = 119;;
+let _MIPS_INS_BNEL = 120;;
+let _MIPS_INS_BNEZ16 = 121;;
+let _MIPS_INS_BNEZALC = 122;;
+let _MIPS_INS_BNEZC = 123;;
+let _MIPS_INS_BNVC = 124;;
+let _MIPS_INS_BNZ = 125;;
+let _MIPS_INS_BOVC = 126;;
+let _MIPS_INS_BPOSGE32 = 127;;
+let _MIPS_INS_BREAK = 128;;
+let _MIPS_INS_BREAK16 = 129;;
+let _MIPS_INS_BSELI = 130;;
+let _MIPS_INS_BSEL = 131;;
+let _MIPS_INS_BSETI = 132;;
+let _MIPS_INS_BSET = 133;;
+let _MIPS_INS_BZ = 134;;
+let _MIPS_INS_BEQZ = 135;;
+let _MIPS_INS_B = 136;;
+let _MIPS_INS_BNEZ = 137;;
+let _MIPS_INS_BTEQZ = 138;;
+let _MIPS_INS_BTNEZ = 139;;
+let _MIPS_INS_CACHE = 140;;
+let _MIPS_INS_CEIL = 141;;
+let _MIPS_INS_CEQI = 142;;
+let _MIPS_INS_CEQ = 143;;
+let _MIPS_INS_CFC1 = 144;;
+let _MIPS_INS_CFCMSA = 145;;
+let _MIPS_INS_CINS = 146;;
+let _MIPS_INS_CINS32 = 147;;
+let _MIPS_INS_CLASS = 148;;
+let _MIPS_INS_CLEI_S = 149;;
+let _MIPS_INS_CLEI_U = 150;;
+let _MIPS_INS_CLE_S = 151;;
+let _MIPS_INS_CLE_U = 152;;
+let _MIPS_INS_CLO = 153;;
+let _MIPS_INS_CLTI_S = 154;;
+let _MIPS_INS_CLTI_U = 155;;
+let _MIPS_INS_CLT_S = 156;;
+let _MIPS_INS_CLT_U = 157;;
+let _MIPS_INS_CLZ = 158;;
+let _MIPS_INS_CMPGDU = 159;;
+let _MIPS_INS_CMPGU = 160;;
+let _MIPS_INS_CMPU = 161;;
+let _MIPS_INS_CMP = 162;;
+let _MIPS_INS_COPY_S = 163;;
+let _MIPS_INS_COPY_U = 164;;
+let _MIPS_INS_CTC1 = 165;;
+let _MIPS_INS_CTCMSA = 166;;
+let _MIPS_INS_CVT = 167;;
+let _MIPS_INS_C = 168;;
+let _MIPS_INS_CMPI = 169;;
+let _MIPS_INS_DADD = 170;;
+let _MIPS_INS_DADDI = 171;;
+let _MIPS_INS_DADDIU = 172;;
+let _MIPS_INS_DADDU = 173;;
+let _MIPS_INS_DAHI = 174;;
+let _MIPS_INS_DALIGN = 175;;
+let _MIPS_INS_DATI = 176;;
+let _MIPS_INS_DAUI = 177;;
+let _MIPS_INS_DBITSWAP = 178;;
+let _MIPS_INS_DCLO = 179;;
+let _MIPS_INS_DCLZ = 180;;
+let _MIPS_INS_DDIV = 181;;
+let _MIPS_INS_DDIVU = 182;;
+let _MIPS_INS_DERET = 183;;
+let _MIPS_INS_DEXT = 184;;
+let _MIPS_INS_DEXTM = 185;;
+let _MIPS_INS_DEXTU = 186;;
+let _MIPS_INS_DI = 187;;
+let _MIPS_INS_DINS = 188;;
+let _MIPS_INS_DINSM = 189;;
+let _MIPS_INS_DINSU = 190;;
+let _MIPS_INS_DIV = 191;;
+let _MIPS_INS_DIVU = 192;;
+let _MIPS_INS_DIV_S = 193;;
+let _MIPS_INS_DIV_U = 194;;
+let _MIPS_INS_DLSA = 195;;
+let _MIPS_INS_DMFC0 = 196;;
+let _MIPS_INS_DMFC1 = 197;;
+let _MIPS_INS_DMFC2 = 198;;
+let _MIPS_INS_DMOD = 199;;
+let _MIPS_INS_DMODU = 200;;
+let _MIPS_INS_DMTC0 = 201;;
+let _MIPS_INS_DMTC1 = 202;;
+let _MIPS_INS_DMTC2 = 203;;
+let _MIPS_INS_DMUH = 204;;
+let _MIPS_INS_DMUHU = 205;;
+let _MIPS_INS_DMUL = 206;;
+let _MIPS_INS_DMULT = 207;;
+let _MIPS_INS_DMULTU = 208;;
+let _MIPS_INS_DMULU = 209;;
+let _MIPS_INS_DOTP_S = 210;;
+let _MIPS_INS_DOTP_U = 211;;
+let _MIPS_INS_DPADD_S = 212;;
+let _MIPS_INS_DPADD_U = 213;;
+let _MIPS_INS_DPAQX_SA = 214;;
+let _MIPS_INS_DPAQX_S = 215;;
+let _MIPS_INS_DPAQ_SA = 216;;
+let _MIPS_INS_DPAQ_S = 217;;
+let _MIPS_INS_DPAU = 218;;
+let _MIPS_INS_DPAX = 219;;
+let _MIPS_INS_DPA = 220;;
+let _MIPS_INS_DPOP = 221;;
+let _MIPS_INS_DPSQX_SA = 222;;
+let _MIPS_INS_DPSQX_S = 223;;
+let _MIPS_INS_DPSQ_SA = 224;;
+let _MIPS_INS_DPSQ_S = 225;;
+let _MIPS_INS_DPSUB_S = 226;;
+let _MIPS_INS_DPSUB_U = 227;;
+let _MIPS_INS_DPSU = 228;;
+let _MIPS_INS_DPSX = 229;;
+let _MIPS_INS_DPS = 230;;
+let _MIPS_INS_DROTR = 231;;
+let _MIPS_INS_DROTR32 = 232;;
+let _MIPS_INS_DROTRV = 233;;
+let _MIPS_INS_DSBH = 234;;
+let _MIPS_INS_DSHD = 235;;
+let _MIPS_INS_DSLL = 236;;
+let _MIPS_INS_DSLL32 = 237;;
+let _MIPS_INS_DSLLV = 238;;
+let _MIPS_INS_DSRA = 239;;
+let _MIPS_INS_DSRA32 = 240;;
+let _MIPS_INS_DSRAV = 241;;
+let _MIPS_INS_DSRL = 242;;
+let _MIPS_INS_DSRL32 = 243;;
+let _MIPS_INS_DSRLV = 244;;
+let _MIPS_INS_DSUB = 245;;
+let _MIPS_INS_DSUBU = 246;;
+let _MIPS_INS_EHB = 247;;
+let _MIPS_INS_EI = 248;;
+let _MIPS_INS_ERET = 249;;
+let _MIPS_INS_EXT = 250;;
+let _MIPS_INS_EXTP = 251;;
+let _MIPS_INS_EXTPDP = 252;;
+let _MIPS_INS_EXTPDPV = 253;;
+let _MIPS_INS_EXTPV = 254;;
+let _MIPS_INS_EXTRV_RS = 255;;
+let _MIPS_INS_EXTRV_R = 256;;
+let _MIPS_INS_EXTRV_S = 257;;
+let _MIPS_INS_EXTRV = 258;;
+let _MIPS_INS_EXTR_RS = 259;;
+let _MIPS_INS_EXTR_R = 260;;
+let _MIPS_INS_EXTR_S = 261;;
+let _MIPS_INS_EXTR = 262;;
+let _MIPS_INS_EXTS = 263;;
+let _MIPS_INS_EXTS32 = 264;;
+let _MIPS_INS_ABS = 265;;
+let _MIPS_INS_FADD = 266;;
+let _MIPS_INS_FCAF = 267;;
+let _MIPS_INS_FCEQ = 268;;
+let _MIPS_INS_FCLASS = 269;;
+let _MIPS_INS_FCLE = 270;;
+let _MIPS_INS_FCLT = 271;;
+let _MIPS_INS_FCNE = 272;;
+let _MIPS_INS_FCOR = 273;;
+let _MIPS_INS_FCUEQ = 274;;
+let _MIPS_INS_FCULE = 275;;
+let _MIPS_INS_FCULT = 276;;
+let _MIPS_INS_FCUNE = 277;;
+let _MIPS_INS_FCUN = 278;;
+let _MIPS_INS_FDIV = 279;;
+let _MIPS_INS_FEXDO = 280;;
+let _MIPS_INS_FEXP2 = 281;;
+let _MIPS_INS_FEXUPL = 282;;
+let _MIPS_INS_FEXUPR = 283;;
+let _MIPS_INS_FFINT_S = 284;;
+let _MIPS_INS_FFINT_U = 285;;
+let _MIPS_INS_FFQL = 286;;
+let _MIPS_INS_FFQR = 287;;
+let _MIPS_INS_FILL = 288;;
+let _MIPS_INS_FLOG2 = 289;;
+let _MIPS_INS_FLOOR = 290;;
+let _MIPS_INS_FMADD = 291;;
+let _MIPS_INS_FMAX_A = 292;;
+let _MIPS_INS_FMAX = 293;;
+let _MIPS_INS_FMIN_A = 294;;
+let _MIPS_INS_FMIN = 295;;
+let _MIPS_INS_MOV = 296;;
+let _MIPS_INS_FMSUB = 297;;
+let _MIPS_INS_FMUL = 298;;
+let _MIPS_INS_MUL = 299;;
+let _MIPS_INS_NEG = 300;;
+let _MIPS_INS_FRCP = 301;;
+let _MIPS_INS_FRINT = 302;;
+let _MIPS_INS_FRSQRT = 303;;
+let _MIPS_INS_FSAF = 304;;
+let _MIPS_INS_FSEQ = 305;;
+let _MIPS_INS_FSLE = 306;;
+let _MIPS_INS_FSLT = 307;;
+let _MIPS_INS_FSNE = 308;;
+let _MIPS_INS_FSOR = 309;;
+let _MIPS_INS_FSQRT = 310;;
+let _MIPS_INS_SQRT = 311;;
+let _MIPS_INS_FSUB = 312;;
+let _MIPS_INS_SUB = 313;;
+let _MIPS_INS_FSUEQ = 314;;
+let _MIPS_INS_FSULE = 315;;
+let _MIPS_INS_FSULT = 316;;
+let _MIPS_INS_FSUNE = 317;;
+let _MIPS_INS_FSUN = 318;;
+let _MIPS_INS_FTINT_S = 319;;
+let _MIPS_INS_FTINT_U = 320;;
+let _MIPS_INS_FTQ = 321;;
+let _MIPS_INS_FTRUNC_S = 322;;
+let _MIPS_INS_FTRUNC_U = 323;;
+let _MIPS_INS_HADD_S = 324;;
+let _MIPS_INS_HADD_U = 325;;
+let _MIPS_INS_HSUB_S = 326;;
+let _MIPS_INS_HSUB_U = 327;;
+let _MIPS_INS_ILVEV = 328;;
+let _MIPS_INS_ILVL = 329;;
+let _MIPS_INS_ILVOD = 330;;
+let _MIPS_INS_ILVR = 331;;
+let _MIPS_INS_INS = 332;;
+let _MIPS_INS_INSERT = 333;;
+let _MIPS_INS_INSV = 334;;
+let _MIPS_INS_INSVE = 335;;
+let _MIPS_INS_J = 336;;
+let _MIPS_INS_JAL = 337;;
+let _MIPS_INS_JALR = 338;;
+let _MIPS_INS_JALRS16 = 339;;
+let _MIPS_INS_JALRS = 340;;
+let _MIPS_INS_JALS = 341;;
+let _MIPS_INS_JALX = 342;;
+let _MIPS_INS_JIALC = 343;;
+let _MIPS_INS_JIC = 344;;
+let _MIPS_INS_JR = 345;;
+let _MIPS_INS_JR16 = 346;;
+let _MIPS_INS_JRADDIUSP = 347;;
+let _MIPS_INS_JRC = 348;;
+let _MIPS_INS_JALRC = 349;;
+let _MIPS_INS_LB = 350;;
+let _MIPS_INS_LBU16 = 351;;
+let _MIPS_INS_LBUX = 352;;
+let _MIPS_INS_LBU = 353;;
+let _MIPS_INS_LD = 354;;
+let _MIPS_INS_LDC1 = 355;;
+let _MIPS_INS_LDC2 = 356;;
+let _MIPS_INS_LDC3 = 357;;
+let _MIPS_INS_LDI = 358;;
+let _MIPS_INS_LDL = 359;;
+let _MIPS_INS_LDPC = 360;;
+let _MIPS_INS_LDR = 361;;
+let _MIPS_INS_LDXC1 = 362;;
+let _MIPS_INS_LH = 363;;
+let _MIPS_INS_LHU16 = 364;;
+let _MIPS_INS_LHX = 365;;
+let _MIPS_INS_LHU = 366;;
+let _MIPS_INS_LI16 = 367;;
+let _MIPS_INS_LL = 368;;
+let _MIPS_INS_LLD = 369;;
+let _MIPS_INS_LSA = 370;;
+let _MIPS_INS_LUXC1 = 371;;
+let _MIPS_INS_LUI = 372;;
+let _MIPS_INS_LW = 373;;
+let _MIPS_INS_LW16 = 374;;
+let _MIPS_INS_LWC1 = 375;;
+let _MIPS_INS_LWC2 = 376;;
+let _MIPS_INS_LWC3 = 377;;
+let _MIPS_INS_LWL = 378;;
+let _MIPS_INS_LWM16 = 379;;
+let _MIPS_INS_LWM32 = 380;;
+let _MIPS_INS_LWPC = 381;;
+let _MIPS_INS_LWP = 382;;
+let _MIPS_INS_LWR = 383;;
+let _MIPS_INS_LWUPC = 384;;
+let _MIPS_INS_LWU = 385;;
+let _MIPS_INS_LWX = 386;;
+let _MIPS_INS_LWXC1 = 387;;
+let _MIPS_INS_LWXS = 388;;
+let _MIPS_INS_LI = 389;;
+let _MIPS_INS_MADD = 390;;
+let _MIPS_INS_MADDF = 391;;
+let _MIPS_INS_MADDR_Q = 392;;
+let _MIPS_INS_MADDU = 393;;
+let _MIPS_INS_MADDV = 394;;
+let _MIPS_INS_MADD_Q = 395;;
+let _MIPS_INS_MAQ_SA = 396;;
+let _MIPS_INS_MAQ_S = 397;;
+let _MIPS_INS_MAXA = 398;;
+let _MIPS_INS_MAXI_S = 399;;
+let _MIPS_INS_MAXI_U = 400;;
+let _MIPS_INS_MAX_A = 401;;
+let _MIPS_INS_MAX = 402;;
+let _MIPS_INS_MAX_S = 403;;
+let _MIPS_INS_MAX_U = 404;;
+let _MIPS_INS_MFC0 = 405;;
+let _MIPS_INS_MFC1 = 406;;
+let _MIPS_INS_MFC2 = 407;;
+let _MIPS_INS_MFHC1 = 408;;
+let _MIPS_INS_MFHI = 409;;
+let _MIPS_INS_MFLO = 410;;
+let _MIPS_INS_MINA = 411;;
+let _MIPS_INS_MINI_S = 412;;
+let _MIPS_INS_MINI_U = 413;;
+let _MIPS_INS_MIN_A = 414;;
+let _MIPS_INS_MIN = 415;;
+let _MIPS_INS_MIN_S = 416;;
+let _MIPS_INS_MIN_U = 417;;
+let _MIPS_INS_MOD = 418;;
+let _MIPS_INS_MODSUB = 419;;
+let _MIPS_INS_MODU = 420;;
+let _MIPS_INS_MOD_S = 421;;
+let _MIPS_INS_MOD_U = 422;;
+let _MIPS_INS_MOVE = 423;;
+let _MIPS_INS_MOVEP = 424;;
+let _MIPS_INS_MOVF = 425;;
+let _MIPS_INS_MOVN = 426;;
+let _MIPS_INS_MOVT = 427;;
+let _MIPS_INS_MOVZ = 428;;
+let _MIPS_INS_MSUB = 429;;
+let _MIPS_INS_MSUBF = 430;;
+let _MIPS_INS_MSUBR_Q = 431;;
+let _MIPS_INS_MSUBU = 432;;
+let _MIPS_INS_MSUBV = 433;;
+let _MIPS_INS_MSUB_Q = 434;;
+let _MIPS_INS_MTC0 = 435;;
+let _MIPS_INS_MTC1 = 436;;
+let _MIPS_INS_MTC2 = 437;;
+let _MIPS_INS_MTHC1 = 438;;
+let _MIPS_INS_MTHI = 439;;
+let _MIPS_INS_MTHLIP = 440;;
+let _MIPS_INS_MTLO = 441;;
+let _MIPS_INS_MTM0 = 442;;
+let _MIPS_INS_MTM1 = 443;;
+let _MIPS_INS_MTM2 = 444;;
+let _MIPS_INS_MTP0 = 445;;
+let _MIPS_INS_MTP1 = 446;;
+let _MIPS_INS_MTP2 = 447;;
+let _MIPS_INS_MUH = 448;;
+let _MIPS_INS_MUHU = 449;;
+let _MIPS_INS_MULEQ_S = 450;;
+let _MIPS_INS_MULEU_S = 451;;
+let _MIPS_INS_MULQ_RS = 452;;
+let _MIPS_INS_MULQ_S = 453;;
+let _MIPS_INS_MULR_Q = 454;;
+let _MIPS_INS_MULSAQ_S = 455;;
+let _MIPS_INS_MULSA = 456;;
+let _MIPS_INS_MULT = 457;;
+let _MIPS_INS_MULTU = 458;;
+let _MIPS_INS_MULU = 459;;
+let _MIPS_INS_MULV = 460;;
+let _MIPS_INS_MUL_Q = 461;;
+let _MIPS_INS_MUL_S = 462;;
+let _MIPS_INS_NLOC = 463;;
+let _MIPS_INS_NLZC = 464;;
+let _MIPS_INS_NMADD = 465;;
+let _MIPS_INS_NMSUB = 466;;
+let _MIPS_INS_NOR = 467;;
+let _MIPS_INS_NORI = 468;;
+let _MIPS_INS_NOT16 = 469;;
+let _MIPS_INS_NOT = 470;;
+let _MIPS_INS_OR = 471;;
+let _MIPS_INS_OR16 = 472;;
+let _MIPS_INS_ORI = 473;;
+let _MIPS_INS_PACKRL = 474;;
+let _MIPS_INS_PAUSE = 475;;
+let _MIPS_INS_PCKEV = 476;;
+let _MIPS_INS_PCKOD = 477;;
+let _MIPS_INS_PCNT = 478;;
+let _MIPS_INS_PICK = 479;;
+let _MIPS_INS_POP = 480;;
+let _MIPS_INS_PRECEQU = 481;;
+let _MIPS_INS_PRECEQ = 482;;
+let _MIPS_INS_PRECEU = 483;;
+let _MIPS_INS_PRECRQU_S = 484;;
+let _MIPS_INS_PRECRQ = 485;;
+let _MIPS_INS_PRECRQ_RS = 486;;
+let _MIPS_INS_PRECR = 487;;
+let _MIPS_INS_PRECR_SRA = 488;;
+let _MIPS_INS_PRECR_SRA_R = 489;;
+let _MIPS_INS_PREF = 490;;
+let _MIPS_INS_PREPEND = 491;;
+let _MIPS_INS_RADDU = 492;;
+let _MIPS_INS_RDDSP = 493;;
+let _MIPS_INS_RDHWR = 494;;
+let _MIPS_INS_REPLV = 495;;
+let _MIPS_INS_REPL = 496;;
+let _MIPS_INS_RINT = 497;;
+let _MIPS_INS_ROTR = 498;;
+let _MIPS_INS_ROTRV = 499;;
+let _MIPS_INS_ROUND = 500;;
+let _MIPS_INS_SAT_S = 501;;
+let _MIPS_INS_SAT_U = 502;;
+let _MIPS_INS_SB = 503;;
+let _MIPS_INS_SB16 = 504;;
+let _MIPS_INS_SC = 505;;
+let _MIPS_INS_SCD = 506;;
+let _MIPS_INS_SD = 507;;
+let _MIPS_INS_SDBBP = 508;;
+let _MIPS_INS_SDBBP16 = 509;;
+let _MIPS_INS_SDC1 = 510;;
+let _MIPS_INS_SDC2 = 511;;
+let _MIPS_INS_SDC3 = 512;;
+let _MIPS_INS_SDL = 513;;
+let _MIPS_INS_SDR = 514;;
+let _MIPS_INS_SDXC1 = 515;;
+let _MIPS_INS_SEB = 516;;
+let _MIPS_INS_SEH = 517;;
+let _MIPS_INS_SELEQZ = 518;;
+let _MIPS_INS_SELNEZ = 519;;
+let _MIPS_INS_SEL = 520;;
+let _MIPS_INS_SEQ = 521;;
+let _MIPS_INS_SEQI = 522;;
+let _MIPS_INS_SH = 523;;
+let _MIPS_INS_SH16 = 524;;
+let _MIPS_INS_SHF = 525;;
+let _MIPS_INS_SHILO = 526;;
+let _MIPS_INS_SHILOV = 527;;
+let _MIPS_INS_SHLLV = 528;;
+let _MIPS_INS_SHLLV_S = 529;;
+let _MIPS_INS_SHLL = 530;;
+let _MIPS_INS_SHLL_S = 531;;
+let _MIPS_INS_SHRAV = 532;;
+let _MIPS_INS_SHRAV_R = 533;;
+let _MIPS_INS_SHRA = 534;;
+let _MIPS_INS_SHRA_R = 535;;
+let _MIPS_INS_SHRLV = 536;;
+let _MIPS_INS_SHRL = 537;;
+let _MIPS_INS_SLDI = 538;;
+let _MIPS_INS_SLD = 539;;
+let _MIPS_INS_SLL = 540;;
+let _MIPS_INS_SLL16 = 541;;
+let _MIPS_INS_SLLI = 542;;
+let _MIPS_INS_SLLV = 543;;
+let _MIPS_INS_SLT = 544;;
+let _MIPS_INS_SLTI = 545;;
+let _MIPS_INS_SLTIU = 546;;
+let _MIPS_INS_SLTU = 547;;
+let _MIPS_INS_SNE = 548;;
+let _MIPS_INS_SNEI = 549;;
+let _MIPS_INS_SPLATI = 550;;
+let _MIPS_INS_SPLAT = 551;;
+let _MIPS_INS_SRA = 552;;
+let _MIPS_INS_SRAI = 553;;
+let _MIPS_INS_SRARI = 554;;
+let _MIPS_INS_SRAR = 555;;
+let _MIPS_INS_SRAV = 556;;
+let _MIPS_INS_SRL = 557;;
+let _MIPS_INS_SRL16 = 558;;
+let _MIPS_INS_SRLI = 559;;
+let _MIPS_INS_SRLRI = 560;;
+let _MIPS_INS_SRLR = 561;;
+let _MIPS_INS_SRLV = 562;;
+let _MIPS_INS_SSNOP = 563;;
+let _MIPS_INS_ST = 564;;
+let _MIPS_INS_SUBQH = 565;;
+let _MIPS_INS_SUBQH_R = 566;;
+let _MIPS_INS_SUBQ = 567;;
+let _MIPS_INS_SUBQ_S = 568;;
+let _MIPS_INS_SUBSUS_U = 569;;
+let _MIPS_INS_SUBSUU_S = 570;;
+let _MIPS_INS_SUBS_S = 571;;
+let _MIPS_INS_SUBS_U = 572;;
+let _MIPS_INS_SUBU16 = 573;;
+let _MIPS_INS_SUBUH = 574;;
+let _MIPS_INS_SUBUH_R = 575;;
+let _MIPS_INS_SUBU = 576;;
+let _MIPS_INS_SUBU_S = 577;;
+let _MIPS_INS_SUBVI = 578;;
+let _MIPS_INS_SUBV = 579;;
+let _MIPS_INS_SUXC1 = 580;;
+let _MIPS_INS_SW = 581;;
+let _MIPS_INS_SW16 = 582;;
+let _MIPS_INS_SWC1 = 583;;
+let _MIPS_INS_SWC2 = 584;;
+let _MIPS_INS_SWC3 = 585;;
+let _MIPS_INS_SWL = 586;;
+let _MIPS_INS_SWM16 = 587;;
+let _MIPS_INS_SWM32 = 588;;
+let _MIPS_INS_SWP = 589;;
+let _MIPS_INS_SWR = 590;;
+let _MIPS_INS_SWXC1 = 591;;
+let _MIPS_INS_SYNC = 592;;
+let _MIPS_INS_SYNCI = 593;;
+let _MIPS_INS_SYSCALL = 594;;
+let _MIPS_INS_TEQ = 595;;
+let _MIPS_INS_TEQI = 596;;
+let _MIPS_INS_TGE = 597;;
+let _MIPS_INS_TGEI = 598;;
+let _MIPS_INS_TGEIU = 599;;
+let _MIPS_INS_TGEU = 600;;
+let _MIPS_INS_TLBP = 601;;
+let _MIPS_INS_TLBR = 602;;
+let _MIPS_INS_TLBWI = 603;;
+let _MIPS_INS_TLBWR = 604;;
+let _MIPS_INS_TLT = 605;;
+let _MIPS_INS_TLTI = 606;;
+let _MIPS_INS_TLTIU = 607;;
+let _MIPS_INS_TLTU = 608;;
+let _MIPS_INS_TNE = 609;;
+let _MIPS_INS_TNEI = 610;;
+let _MIPS_INS_TRUNC = 611;;
+let _MIPS_INS_V3MULU = 612;;
+let _MIPS_INS_VMM0 = 613;;
+let _MIPS_INS_VMULU = 614;;
+let _MIPS_INS_VSHF = 615;;
+let _MIPS_INS_WAIT = 616;;
+let _MIPS_INS_WRDSP = 617;;
+let _MIPS_INS_WSBH = 618;;
+let _MIPS_INS_XOR = 619;;
+let _MIPS_INS_XOR16 = 620;;
+let _MIPS_INS_XORI = 621;;
+
+(* some alias instructions *)
+let _MIPS_INS_NOP = 622;;
+let _MIPS_INS_NEGU = 623;;
+
+(* special instructions *)
+let _MIPS_INS_JALR_HB = 624;;
+let _MIPS_INS_JR_HB = 625;;
+let _MIPS_INS_ENDING = 626;;
+
+let _MIPS_GRP_INVALID = 0;;
+let _MIPS_GRP_JUMP = 1;;
+let _MIPS_GRP_CALL = 2;;
+let _MIPS_GRP_RET = 3;;
+let _MIPS_GRP_INT = 4;;
+let _MIPS_GRP_IRET = 5;;
+let _MIPS_GRP_PRIVILEGE = 6;;
+let _MIPS_GRP_BRANCH_RELATIVE = 7;;
+let _MIPS_GRP_BITCOUNT = 128;;
+let _MIPS_GRP_DSP = 129;;
+let _MIPS_GRP_DSPR2 = 130;;
+let _MIPS_GRP_FPIDX = 131;;
+let _MIPS_GRP_MSA = 132;;
+let _MIPS_GRP_MIPS32R2 = 133;;
+let _MIPS_GRP_MIPS64 = 134;;
+let _MIPS_GRP_MIPS64R2 = 135;;
+let _MIPS_GRP_SEINREG = 136;;
+let _MIPS_GRP_STDENC = 137;;
+let _MIPS_GRP_SWAP = 138;;
+let _MIPS_GRP_MICROMIPS = 139;;
+let _MIPS_GRP_MIPS16MODE = 140;;
+let _MIPS_GRP_FP64BIT = 141;;
+let _MIPS_GRP_NONANSFPMATH = 142;;
+let _MIPS_GRP_NOTFP64BIT = 143;;
+let _MIPS_GRP_NOTINMICROMIPS = 144;;
+let _MIPS_GRP_NOTNACL = 145;;
+let _MIPS_GRP_NOTMIPS32R6 = 146;;
+let _MIPS_GRP_NOTMIPS64R6 = 147;;
+let _MIPS_GRP_CNMIPS = 148;;
+let _MIPS_GRP_MIPS32 = 149;;
+let _MIPS_GRP_MIPS32R6 = 150;;
+let _MIPS_GRP_MIPS64R6 = 151;;
+let _MIPS_GRP_MIPS2 = 152;;
+let _MIPS_GRP_MIPS3 = 153;;
+let _MIPS_GRP_MIPS3_32 = 154;;
+let _MIPS_GRP_MIPS3_32R2 = 155;;
+let _MIPS_GRP_MIPS4_32 = 156;;
+let _MIPS_GRP_MIPS4_32R2 = 157;;
+let _MIPS_GRP_MIPS5_32R2 = 158;;
+let _MIPS_GRP_GP32BIT = 159;;
+let _MIPS_GRP_GP64BIT = 160;;
+let _MIPS_GRP_ENDING = 161;;
diff --git a/capstone/bindings/ocaml/ocaml.c b/capstone/bindings/ocaml/ocaml.c
new file mode 100644
index 000000000..8043d231d
--- /dev/null
+++ b/capstone/bindings/ocaml/ocaml.c
@@ -0,0 +1,1104 @@
+/* Capstone Disassembler Engine */
+/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> */
+
+#include <stdio.h> // debug
+#include <string.h>
+#include <caml/mlvalues.h>
+#include <caml/memory.h>
+#include <caml/alloc.h>
+#include <caml/fail.h>
+
+#include "capstone/capstone.h"
+
+#define ARR_SIZE(a) (sizeof(a)/sizeof(a[0]))
+
+
+// count the number of positive members in @list
+static unsigned int list_count(uint8_t *list, unsigned int max)
+{
+ unsigned int i;
+
+ for(i = 0; i < max; i++)
+ if (list[i] == 0)
+ return i;
+
+ return max;
+}
+
+CAMLprim value _cs_disasm(cs_arch arch, csh handle, const uint8_t * code, size_t code_len, uint64_t addr, size_t count)
+{
+ CAMLparam0();
+ CAMLlocal5(list, cons, rec_insn, array, tmp);
+ CAMLlocal4(arch_info, op_info_val, tmp2, tmp3);
+ cs_insn *insn;
+ size_t c;
+
+ list = Val_emptylist;
+
+ c = cs_disasm(handle, code, code_len, addr, count, &insn);
+ if (c) {
+ //printf("Found %lu insn, addr: %lx\n", c, addr);
+ uint64_t j;
+ for (j = c; j > 0; j--) {
+ unsigned int lcount, i;
+ cons = caml_alloc(2, 0);
+
+ rec_insn = caml_alloc(10, 0);
+ Store_field(rec_insn, 0, Val_int(insn[j-1].id));
+ Store_field(rec_insn, 1, Val_int(insn[j-1].address));
+ Store_field(rec_insn, 2, Val_int(insn[j-1].size));
+
+ // copy raw bytes of instruction
+ lcount = insn[j-1].size;
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].bytes[i]));
+ }
+ } else
+ array = Atom(0); // empty list
+ Store_field(rec_insn, 3, array);
+
+ Store_field(rec_insn, 4, caml_copy_string(insn[j-1].mnemonic));
+ Store_field(rec_insn, 5, caml_copy_string(insn[j-1].op_str));
+
+ // copy read registers
+ if (insn[0].detail) {
+ lcount = (insn[j-1]).detail->regs_read_count;
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].detail->regs_read[i]));
+ }
+ } else
+ array = Atom(0); // empty list
+ } else
+ array = Atom(0); // empty list
+ Store_field(rec_insn, 6, array);
+
+ if (insn[0].detail) {
+ lcount = (insn[j-1]).detail->regs_write_count;
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].detail->regs_write[i]));
+ }
+ } else
+ array = Atom(0); // empty list
+ } else
+ array = Atom(0); // empty list
+ Store_field(rec_insn, 7, array);
+
+ if (insn[0].detail) {
+ lcount = (insn[j-1]).detail->groups_count;
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].detail->groups[i]));
+ }
+ } else
+ array = Atom(0); // empty list
+ } else
+ array = Atom(0); // empty list
+ Store_field(rec_insn, 8, array);
+
+ if (insn[j-1].detail) {
+ switch(arch) {
+ case CS_ARCH_ARM:
+ arch_info = caml_alloc(1, 0);
+
+ op_info_val = caml_alloc(10, 0);
+ Store_field(op_info_val, 0, Val_bool(insn[j-1].detail->arm.usermode));
+ Store_field(op_info_val, 1, Val_int(insn[j-1].detail->arm.vector_size));
+ Store_field(op_info_val, 2, Val_int(insn[j-1].detail->arm.vector_data));
+ Store_field(op_info_val, 3, Val_int(insn[j-1].detail->arm.cps_mode));
+ Store_field(op_info_val, 4, Val_int(insn[j-1].detail->arm.cps_flag));
+ Store_field(op_info_val, 5, Val_int(insn[j-1].detail->arm.cc));
+ Store_field(op_info_val, 6, Val_bool(insn[j-1].detail->arm.update_flags));
+ Store_field(op_info_val, 7, Val_bool(insn[j-1].detail->arm.writeback));
+ Store_field(op_info_val, 8, Val_int(insn[j-1].detail->arm.mem_barrier));
+
+ lcount = insn[j-1].detail->arm.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(5, 0);
+ switch(insn[j-1].detail->arm.operands[i].type) {
+ case ARM_OP_REG:
+ case ARM_OP_SYSREG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm.operands[i].reg));
+ break;
+ case ARM_OP_CIMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm.operands[i].imm));
+ break;
+ case ARM_OP_PIMM:
+ tmp = caml_alloc(1, 3);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm.operands[i].imm));
+ break;
+ case ARM_OP_IMM:
+ tmp = caml_alloc(1, 4);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm.operands[i].imm));
+ break;
+ case ARM_OP_FP:
+ tmp = caml_alloc(1, 5);
+ Store_field(tmp, 0, caml_copy_double(insn[j-1].detail->arm.operands[i].fp));
+ break;
+ case ARM_OP_MEM:
+ tmp = caml_alloc(1, 6);
+ tmp3 = caml_alloc(5, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->arm.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->arm.operands[i].mem.index));
+ Store_field(tmp3, 2, Val_int(insn[j-1].detail->arm.operands[i].mem.scale));
+ Store_field(tmp3, 3, Val_int(insn[j-1].detail->arm.operands[i].mem.disp));
+ Store_field(tmp3, 4, Val_int(insn[j-1].detail->arm.operands[i].mem.lshift));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case ARM_OP_SETEND:
+ tmp = caml_alloc(1, 7);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm.operands[i].setend));
+ break;
+ default: break;
+ }
+ tmp3 = caml_alloc(2, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->arm.operands[i].shift.type));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->arm.operands[i].shift.value));
+ Store_field(tmp2, 0, Val_int(insn[j-1].detail->arm.operands[i].vector_index));
+ Store_field(tmp2, 1, tmp3);
+ Store_field(tmp2, 2, tmp);
+ Store_field(tmp2, 3, Val_bool(insn[j-1].detail->arm.operands[i].subtracted));
+ Store_field(tmp2, 4, Val_int(insn[j-1].detail->arm.operands[i].access));
+ Store_field(tmp2, 5, Val_int(insn[j-1].detail->arm.operands[i].neon_lane));
+ Store_field(array, i, tmp2);
+ }
+ } else // empty list
+ array = Atom(0);
+
+ Store_field(op_info_val, 9, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+ case CS_ARCH_ARM64:
+ arch_info = caml_alloc(1, 1);
+
+ op_info_val = caml_alloc(4, 0);
+ Store_field(op_info_val, 0, Val_int(insn[j-1].detail->arm64.cc));
+ Store_field(op_info_val, 1, Val_bool(insn[j-1].detail->arm64.update_flags));
+ Store_field(op_info_val, 2, Val_bool(insn[j-1].detail->arm64.writeback));
+
+ lcount = insn[j-1].detail->arm64.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(6, 0);
+ switch(insn[j-1].detail->arm64.operands[i].type) {
+ case ARM64_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].reg));
+ break;
+ case ARM64_OP_CIMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].imm));
+ break;
+ case ARM64_OP_IMM:
+ tmp = caml_alloc(1, 3);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].imm));
+ break;
+ case ARM64_OP_FP:
+ tmp = caml_alloc(1, 4);
+ Store_field(tmp, 0, caml_copy_double(insn[j-1].detail->arm64.operands[i].fp));
+ break;
+ case ARM64_OP_MEM:
+ tmp = caml_alloc(1, 5);
+ tmp3 = caml_alloc(3, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->arm64.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->arm64.operands[i].mem.index));
+ Store_field(tmp3, 2, Val_int(insn[j-1].detail->arm64.operands[i].mem.disp));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case ARM64_OP_REG_MRS:
+ tmp = caml_alloc(1, 6);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].reg));
+ break;
+ case ARM64_OP_REG_MSR:
+ tmp = caml_alloc(1, 7);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].reg));
+ break;
+ case ARM64_OP_PSTATE:
+ tmp = caml_alloc(1, 8);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].pstate));
+ break;
+ case ARM64_OP_SYS:
+ tmp = caml_alloc(1, 9);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].sys));
+ break;
+ case ARM64_OP_PREFETCH:
+ tmp = caml_alloc(1, 10);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].prefetch));
+ break;
+ case ARM64_OP_BARRIER:
+ tmp = caml_alloc(1, 11);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->arm64.operands[i].barrier));
+ break;
+ default: break;
+ }
+ tmp3 = caml_alloc(2, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->arm64.operands[i].shift.type));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->arm64.operands[i].shift.value));
+
+ Store_field(tmp2, 0, Val_int(insn[j-1].detail->arm64.operands[i].vector_index));
+ Store_field(tmp2, 1, Val_int(insn[j-1].detail->arm64.operands[i].vas));
+ Store_field(tmp2, 2, tmp3);
+ Store_field(tmp2, 3, Val_int(insn[j-1].detail->arm64.operands[i].ext));
+ Store_field(tmp2, 4, tmp);
+
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 3, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+ case CS_ARCH_MIPS:
+ arch_info = caml_alloc(1, 2);
+
+ op_info_val = caml_alloc(1, 0);
+
+ lcount = insn[j-1].detail->mips.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(1, 0);
+ switch(insn[j-1].detail->mips.operands[i].type) {
+ case MIPS_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->mips.operands[i].reg));
+ break;
+ case MIPS_OP_IMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->mips.operands[i].imm));
+ break;
+ case MIPS_OP_MEM:
+ tmp = caml_alloc(1, 3);
+ tmp3 = caml_alloc(2, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->mips.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->mips.operands[i].mem.disp));
+ Store_field(tmp, 0, tmp3);
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp);
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 0, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+ case CS_ARCH_X86:
+ arch_info = caml_alloc(1, 3);
+
+ op_info_val = caml_alloc(17, 0);
+
+ // fill prefix
+ lcount = list_count(insn[j-1].detail->x86.prefix, ARR_SIZE(insn[j-1].detail->x86.prefix));
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].detail->x86.prefix[i]));
+ }
+ } else
+ array = Atom(0);
+ Store_field(op_info_val, 0, array);
+
+ // fill opcode
+ lcount = list_count(insn[j-1].detail->x86.opcode, ARR_SIZE(insn[j-1].detail->x86.opcode));
+ if (lcount) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ Store_field(array, i, Val_int(insn[j-1].detail->x86.opcode[i]));
+ }
+ } else
+ array = Atom(0);
+ Store_field(op_info_val, 1, array);
+
+ Store_field(op_info_val, 2, Val_int(insn[j-1].detail->x86.rex));
+
+ Store_field(op_info_val, 3, Val_int(insn[j-1].detail->x86.addr_size));
+
+ Store_field(op_info_val, 4, Val_int(insn[j-1].detail->x86.modrm));
+
+ Store_field(op_info_val, 5, Val_int(insn[j-1].detail->x86.sib));
+
+ Store_field(op_info_val, 6, Val_int(insn[j-1].detail->x86.disp));
+
+ Store_field(op_info_val, 7, Val_int(insn[j-1].detail->x86.sib_index));
+
+ Store_field(op_info_val, 8, Val_int(insn[j-1].detail->x86.sib_scale));
+
+ Store_field(op_info_val, 9, Val_int(insn[j-1].detail->x86.sib_base));
+
+ Store_field(op_info_val, 10, Val_int(insn[j-1].detail->x86.xop_cc));
+ Store_field(op_info_val, 11, Val_int(insn[j-1].detail->x86.sse_cc));
+ Store_field(op_info_val, 12, Val_int(insn[j-1].detail->x86.avx_cc));
+ Store_field(op_info_val, 13, Val_int(insn[j-1].detail->x86.avx_sae));
+ Store_field(op_info_val, 14, Val_int(insn[j-1].detail->x86.avx_rm));
+ Store_field(op_info_val, 15, Val_int(insn[j-1].detail->x86.eflags));
+
+ lcount = insn[j-1].detail->x86.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ switch(insn[j-1].detail->x86.operands[i].type) {
+ case X86_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->x86.operands[i].reg));
+ break;
+ case X86_OP_IMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->x86.operands[i].imm));
+ break;
+ case X86_OP_MEM:
+ tmp = caml_alloc(1, 3);
+ tmp2 = caml_alloc(5, 0);
+ Store_field(tmp2, 0, Val_int(insn[j-1].detail->x86.operands[i].mem.segment));
+ Store_field(tmp2, 1, Val_int(insn[j-1].detail->x86.operands[i].mem.base));
+ Store_field(tmp2, 2, Val_int(insn[j-1].detail->x86.operands[i].mem.index));
+ Store_field(tmp2, 3, Val_int(insn[j-1].detail->x86.operands[i].mem.scale));
+ Store_field(tmp2, 4, Val_int(insn[j-1].detail->x86.operands[i].mem.disp));
+
+ Store_field(tmp, 0, tmp2);
+ break;
+ default:
+ tmp = caml_alloc(1, 0); // X86_OP_INVALID
+ break;
+ }
+
+ tmp2 = caml_alloc(5, 0);
+ Store_field(tmp2, 0, tmp);
+ Store_field(tmp2, 1, Val_int(insn[j-1].detail->x86.operands[i].size));
+ Store_field(tmp2, 2, Val_int(insn[j-1].detail->x86.operands[i].access));
+ Store_field(tmp2, 3, Val_int(insn[j-1].detail->x86.operands[i].avx_bcast));
+ Store_field(tmp2, 4, Val_int(insn[j-1].detail->x86.operands[i].avx_zero_opmask));
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+ Store_field(op_info_val, 16, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+ break;
+
+ case CS_ARCH_PPC:
+ arch_info = caml_alloc(1, 4);
+
+ op_info_val = caml_alloc(4, 0);
+
+ Store_field(op_info_val, 0, Val_int(insn[j-1].detail->ppc.bc));
+ Store_field(op_info_val, 1, Val_int(insn[j-1].detail->ppc.bh));
+ Store_field(op_info_val, 2, Val_bool(insn[j-1].detail->ppc.update_cr0));
+
+ lcount = insn[j-1].detail->ppc.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(1, 0);
+ switch(insn[j-1].detail->ppc.operands[i].type) {
+ case PPC_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->ppc.operands[i].reg));
+ break;
+ case PPC_OP_IMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->ppc.operands[i].imm));
+ break;
+ case PPC_OP_MEM:
+ tmp = caml_alloc(1, 3);
+ tmp3 = caml_alloc(2, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->ppc.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->ppc.operands[i].mem.disp));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case PPC_OP_CRX:
+ tmp = caml_alloc(1, 4);
+ tmp3 = caml_alloc(3, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->ppc.operands[i].crx.scale));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->ppc.operands[i].crx.reg));
+ Store_field(tmp3, 2, Val_int(insn[j-1].detail->ppc.operands[i].crx.cond));
+ Store_field(tmp, 0, tmp3);
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp);
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 3, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+
+ case CS_ARCH_SPARC:
+ arch_info = caml_alloc(1, 5);
+
+ op_info_val = caml_alloc(3, 0);
+
+ Store_field(op_info_val, 0, Val_int(insn[j-1].detail->sparc.cc));
+ Store_field(op_info_val, 1, Val_int(insn[j-1].detail->sparc.hint));
+
+ lcount = insn[j-1].detail->sparc.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(1, 0);
+ switch(insn[j-1].detail->sparc.operands[i].type) {
+ case SPARC_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->sparc.operands[i].reg));
+ break;
+ case SPARC_OP_IMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->sparc.operands[i].imm));
+ break;
+ case SPARC_OP_MEM:
+ tmp = caml_alloc(1, 3);
+ tmp3 = caml_alloc(3, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->sparc.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->sparc.operands[i].mem.index));
+ Store_field(tmp3, 2, Val_int(insn[j-1].detail->sparc.operands[i].mem.disp));
+ Store_field(tmp, 0, tmp3);
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp);
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 2, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+
+ case CS_ARCH_SYSZ:
+ arch_info = caml_alloc(1, 6);
+
+ op_info_val = caml_alloc(2, 0);
+
+ Store_field(op_info_val, 0, Val_int(insn[j-1].detail->sysz.cc));
+
+ lcount = insn[j-1].detail->sysz.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(1, 0);
+ switch(insn[j-1].detail->sysz.operands[i].type) {
+ case SYSZ_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->sysz.operands[i].reg));
+ break;
+ case SYSZ_OP_ACREG:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->sysz.operands[i].reg));
+ break;
+ case SYSZ_OP_IMM:
+ tmp = caml_alloc(1, 3);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->sysz.operands[i].imm));
+ break;
+ case SYSZ_OP_MEM:
+ tmp = caml_alloc(1, 4);
+ tmp3 = caml_alloc(4, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->sysz.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->sysz.operands[i].mem.index));
+ Store_field(tmp3, 2, caml_copy_int64(insn[j-1].detail->sysz.operands[i].mem.length));
+ Store_field(tmp3, 3, caml_copy_int64(insn[j-1].detail->sysz.operands[i].mem.disp));
+ Store_field(tmp, 0, tmp3);
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp);
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 1, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+
+ case CS_ARCH_XCORE:
+ arch_info = caml_alloc(1, 7);
+
+ op_info_val = caml_alloc(1, 0);
+
+ lcount = insn[j-1].detail->xcore.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(1, 0);
+ switch(insn[j-1].detail->xcore.operands[i].type) {
+ case XCORE_OP_REG:
+ tmp = caml_alloc(1, 1);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->xcore.operands[i].reg));
+ break;
+ case XCORE_OP_IMM:
+ tmp = caml_alloc(1, 2);
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->xcore.operands[i].imm));
+ break;
+ case XCORE_OP_MEM:
+ tmp = caml_alloc(1, 3);
+ tmp3 = caml_alloc(4, 0);
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->xcore.operands[i].mem.base));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->xcore.operands[i].mem.index));
+ Store_field(tmp3, 2, caml_copy_int64(insn[j-1].detail->xcore.operands[i].mem.disp));
+ Store_field(tmp3, 3, caml_copy_int64(insn[j-1].detail->xcore.operands[i].mem.direct));
+ Store_field(tmp, 0, tmp3);
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp);
+ Store_field(array, i, tmp2);
+ }
+ } else // empty array
+ array = Atom(0);
+
+ Store_field(op_info_val, 0, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+
+ case CS_ARCH_M680X:
+ arch_info = caml_alloc(1, 8);
+
+ op_info_val = caml_alloc(2, 0); // struct cs_m680x
+ Store_field(op_info_val, 0, Val_int(insn[j-1].detail->m680x.flags));
+
+ lcount = insn[j-1].detail->m680x.op_count;
+ if (lcount > 0) {
+ array = caml_alloc(lcount, 0);
+ for (i = 0; i < lcount; i++) {
+ tmp2 = caml_alloc(3, 0); // m680x_op
+ switch(insn[j-1].detail->m680x.operands[i].type) {
+ case M680X_OP_IMMEDIATE:
+ tmp = caml_alloc(1, 1); // imm
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->m680x.operands[i].imm));
+ break;
+ case M680X_OP_REGISTER:
+ tmp = caml_alloc(1, 2); // reg
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->m680x.operands[i].reg));
+ break;
+ case M680X_OP_INDEXED:
+ tmp = caml_alloc(1, 3);
+ tmp3 = caml_alloc(7, 0); // m680x_op_idx
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->m680x.operands[i].idx.base_reg));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->m680x.operands[i].idx.offset_reg));
+ Store_field(tmp3, 2, Val_int(insn[j-1].detail->m680x.operands[i].idx.offset));
+ Store_field(tmp3, 3, Val_int(insn[j-1].detail->m680x.operands[i].idx.offset_addr));
+ Store_field(tmp3, 4, Val_int(insn[j-1].detail->m680x.operands[i].idx.offset_bits));
+ Store_field(tmp3, 5, Val_int(insn[j-1].detail->m680x.operands[i].idx.inc_dec));
+ Store_field(tmp3, 6, Val_int(insn[j-1].detail->m680x.operands[i].idx.flags));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case M680X_OP_RELATIVE:
+ tmp = caml_alloc(1, 4);
+ tmp3 = caml_alloc(2, 0); // m680x_op_rel
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->m680x.operands[i].rel.address));
+ Store_field(tmp3, 1, Val_int(insn[j-1].detail->m680x.operands[i].rel.offset));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case M680X_OP_EXTENDED:
+ tmp = caml_alloc(1, 5);
+ tmp3 = caml_alloc(2, 0); // m680x_op_ext
+ Store_field(tmp3, 0, Val_int(insn[j-1].detail->m680x.operands[i].ext.address));
+ Store_field(tmp3, 1, Val_bool(insn[j-1].detail->m680x.operands[i].ext.indirect));
+ Store_field(tmp, 0, tmp3);
+ break;
+ case M680X_OP_DIRECT:
+ tmp = caml_alloc(1, 6); // direct_addr
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->m680x.operands[i].direct_addr));
+ break;
+ case M680X_OP_CONSTANT:
+ tmp = caml_alloc(1, 7); // const_val
+ Store_field(tmp, 0, Val_int(insn[j-1].detail->m680x.operands[i].const_val));
+ break;
+ default: break;
+ }
+ Store_field(tmp2, 0, tmp); // add union
+ Store_field(tmp2, 1, Val_int(insn[j-1].detail->m680x.operands[i].size));
+ Store_field(tmp2, 2, Val_int(insn[j-1].detail->m680x.operands[i].access));
+ Store_field(array, i, tmp2); // add operand to operand array
+ }
+ } else // empty list
+ array = Atom(0);
+
+ Store_field(op_info_val, 1, array);
+
+ // finally, insert this into arch_info
+ Store_field(arch_info, 0, op_info_val);
+
+ Store_field(rec_insn, 9, arch_info);
+
+ break;
+
+ default: break;
+ }
+ }
+
+ Store_field(cons, 0, rec_insn); // head
+ Store_field(cons, 1, list); // tail
+ list = cons;
+ }
+ cs_free(insn, count);
+ }
+
+ // do not free the handle here
+ //cs_close(&handle);
+ CAMLreturn(list);
+}
+
+CAMLprim value ocaml_cs_disasm(value _arch, value _mode, value _code, value _addr, value _count)
+{
+ CAMLparam5(_arch, _mode, _code, _addr, _count);
+ CAMLlocal1(head);
+ csh handle;
+ cs_arch arch;
+ cs_mode mode = 0;
+ const uint8_t *code;
+ uint64_t addr;
+ size_t count, code_len;
+
+ switch (Int_val(_arch)) {
+ case 0:
+ arch = CS_ARCH_ARM;
+ break;
+ case 1:
+ arch = CS_ARCH_ARM64;
+ break;
+ case 2:
+ arch = CS_ARCH_MIPS;
+ break;
+ case 3:
+ arch = CS_ARCH_X86;
+ break;
+ case 4:
+ arch = CS_ARCH_PPC;
+ break;
+ case 5:
+ arch = CS_ARCH_SPARC;
+ break;
+ case 6:
+ arch = CS_ARCH_SYSZ;
+ break;
+ case 7:
+ arch = CS_ARCH_XCORE;
+ break;
+ case 8:
+ arch = CS_ARCH_M68K;
+ break;
+ case 9:
+ arch = CS_ARCH_TMS320C64X;
+ break;
+ case 10:
+ arch = CS_ARCH_M680X;
+ break;
+ default:
+ caml_invalid_argument("Invalid arch");
+ return Val_emptylist;
+ }
+
+ while (_mode != Val_emptylist) {
+ head = Field(_mode, 0); /* accessing the head */
+ switch (Int_val(head)) {
+ case 0:
+ mode |= CS_MODE_LITTLE_ENDIAN;
+ break;
+ case 1:
+ mode |= CS_MODE_ARM;
+ break;
+ case 2:
+ mode |= CS_MODE_16;
+ break;
+ case 3:
+ mode |= CS_MODE_32;
+ break;
+ case 4:
+ mode |= CS_MODE_64;
+ break;
+ case 5:
+ mode |= CS_MODE_THUMB;
+ break;
+ case 6:
+ mode |= CS_MODE_MCLASS;
+ break;
+ case 7:
+ mode |= CS_MODE_V8;
+ break;
+ case 8:
+ mode |= CS_MODE_MICRO;
+ break;
+ case 9:
+ mode |= CS_MODE_MIPS3;
+ break;
+ case 10:
+ mode |= CS_MODE_MIPS32R6;
+ break;
+ case 11:
+ mode |= CS_MODE_MIPS2;
+ break;
+ case 12:
+ mode |= CS_MODE_V9;
+ break;
+ case 13:
+ mode |= CS_MODE_BIG_ENDIAN;
+ break;
+ case 14:
+ mode |= CS_MODE_MIPS32;
+ break;
+ case 15:
+ mode |= CS_MODE_MIPS64;
+ break;
+ case 16:
+ mode |= CS_MODE_QPX;
+ break;
+ case 17:
+ mode |= CS_MODE_M680X_6301;
+ break;
+ case 18:
+ mode |= CS_MODE_M680X_6309;
+ break;
+ case 19:
+ mode |= CS_MODE_M680X_6800;
+ break;
+ case 20:
+ mode |= CS_MODE_M680X_6801;
+ break;
+ case 21:
+ mode |= CS_MODE_M680X_6805;
+ break;
+ case 22:
+ mode |= CS_MODE_M680X_6808;
+ break;
+ case 23:
+ mode |= CS_MODE_M680X_6809;
+ break;
+ case 24:
+ mode |= CS_MODE_M680X_6811;
+ break;
+ case 25:
+ mode |= CS_MODE_M680X_CPU12;
+ break;
+ case 26:
+ mode |= CS_MODE_M680X_HCS08;
+ break;
+ default:
+ caml_invalid_argument("Invalid mode");
+ return Val_emptylist;
+ }
+ _mode = Field(_mode, 1); /* point to the tail for next loop */
+ }
+
+ cs_err ret = cs_open(arch, mode, &handle);
+ if (ret != CS_ERR_OK) {
+ return Val_emptylist;
+ }
+
+ code = (uint8_t *)String_val(_code);
+ code_len = caml_string_length(_code);
+ addr = Int64_val(_addr);
+ count = Int64_val(_count);
+
+ CAMLreturn(_cs_disasm(arch, handle, code, code_len, addr, count));
+}
+
+CAMLprim value ocaml_cs_disasm_internal(value _arch, value _handle, value _code, value _addr, value _count)
+{
+ CAMLparam5(_arch, _handle, _code, _addr, _count);
+ csh handle;
+ cs_arch arch;
+ const uint8_t *code;
+ uint64_t addr, count, code_len;
+
+ handle = Int64_val(_handle);
+
+ arch = Int_val(_arch);
+ code = (uint8_t *)String_val(_code);
+ code_len = caml_string_length(_code);
+ addr = Int64_val(_addr);
+ count = Int64_val(_count);
+
+ CAMLreturn(_cs_disasm(arch, handle, code, code_len, addr, count));
+}
+
+CAMLprim value ocaml_open(value _arch, value _mode)
+{
+ CAMLparam2(_arch, _mode);
+ CAMLlocal2(list, head);
+ csh handle;
+ cs_arch arch;
+ cs_mode mode = 0;
+
+ list = Val_emptylist;
+
+ switch (Int_val(_arch)) {
+ case 0:
+ arch = CS_ARCH_ARM;
+ break;
+ case 1:
+ arch = CS_ARCH_ARM64;
+ break;
+ case 2:
+ arch = CS_ARCH_MIPS;
+ break;
+ case 3:
+ arch = CS_ARCH_X86;
+ break;
+ case 4:
+ arch = CS_ARCH_PPC;
+ break;
+ case 5:
+ arch = CS_ARCH_SPARC;
+ break;
+ case 6:
+ arch = CS_ARCH_SYSZ;
+ break;
+ case 7:
+ arch = CS_ARCH_XCORE;
+ break;
+ case 8:
+ arch = CS_ARCH_M68K;
+ break;
+ case 9:
+ arch = CS_ARCH_TMS320C64X;
+ break;
+ case 10:
+ arch = CS_ARCH_M680X;
+ break;
+ default:
+ caml_invalid_argument("Invalid arch");
+ return Val_emptylist;
+ }
+
+
+ while (_mode != Val_emptylist) {
+ head = Field(_mode, 0); /* accessing the head */
+ switch (Int_val(head)) {
+ case 0:
+ mode |= CS_MODE_LITTLE_ENDIAN;
+ break;
+ case 1:
+ mode |= CS_MODE_ARM;
+ break;
+ case 2:
+ mode |= CS_MODE_16;
+ break;
+ case 3:
+ mode |= CS_MODE_32;
+ break;
+ case 4:
+ mode |= CS_MODE_64;
+ break;
+ case 5:
+ mode |= CS_MODE_THUMB;
+ break;
+ case 6:
+ mode |= CS_MODE_MCLASS;
+ break;
+ case 7:
+ mode |= CS_MODE_V8;
+ break;
+ case 8:
+ mode |= CS_MODE_MICRO;
+ break;
+ case 9:
+ mode |= CS_MODE_MIPS3;
+ break;
+ case 10:
+ mode |= CS_MODE_MIPS32R6;
+ break;
+ case 11:
+ mode |= CS_MODE_MIPS2;
+ break;
+ case 12:
+ mode |= CS_MODE_V9;
+ break;
+ case 13:
+ mode |= CS_MODE_BIG_ENDIAN;
+ break;
+ case 14:
+ mode |= CS_MODE_MIPS32;
+ break;
+ case 15:
+ mode |= CS_MODE_MIPS64;
+ break;
+ case 16:
+ mode |= CS_MODE_QPX;
+ break;
+ case 17:
+ mode |= CS_MODE_M680X_6301;
+ break;
+ case 18:
+ mode |= CS_MODE_M680X_6309;
+ break;
+ case 19:
+ mode |= CS_MODE_M680X_6800;
+ break;
+ case 20:
+ mode |= CS_MODE_M680X_6801;
+ break;
+ case 21:
+ mode |= CS_MODE_M680X_6805;
+ break;
+ case 22:
+ mode |= CS_MODE_M680X_6808;
+ break;
+ case 23:
+ mode |= CS_MODE_M680X_6809;
+ break;
+ case 24:
+ mode |= CS_MODE_M680X_6811;
+ break;
+ case 25:
+ mode |= CS_MODE_M680X_CPU12;
+ break;
+ case 26:
+ mode |= CS_MODE_M680X_HCS08;
+ break;
+ default:
+ caml_invalid_argument("Invalid mode");
+ return Val_emptylist;
+ }
+ _mode = Field(_mode, 1); /* point to the tail for next loop */
+ }
+
+ if (cs_open(arch, mode, &handle) != 0)
+ CAMLreturn(Val_int(0));
+
+ CAMLlocal1(result);
+ result = caml_alloc(1, 0);
+ Store_field(result, 0, caml_copy_int64(handle));
+ CAMLreturn(result);
+}
+
+CAMLprim value ocaml_option(value _handle, value _opt, value _value)
+{
+ CAMLparam3(_handle, _opt, _value);
+ cs_opt_type opt;
+ int err;
+
+ switch (Int_val(_opt)) {
+ case 0:
+ opt = CS_OPT_SYNTAX;
+ break;
+ case 1:
+ opt = CS_OPT_DETAIL;
+ break;
+ case 2:
+ opt = CS_OPT_MODE;
+ break;
+ case 3:
+ opt = CS_OPT_MEM;
+ break;
+ case 4:
+ opt = CS_OPT_SKIPDATA;
+ break;
+ case 5:
+ opt = CS_OPT_SKIPDATA_SETUP;
+ break;
+ default:
+ caml_invalid_argument("Invalid option");
+ CAMLreturn(Val_int(CS_ERR_OPTION));
+ }
+
+ err = cs_option(Int64_val(_handle), opt, Int64_val(_value));
+
+ CAMLreturn(Val_int(err));
+}
+
+CAMLprim value ocaml_register_name(value _handle, value _reg)
+{
+ const char *name = cs_reg_name(Int64_val(_handle), Int_val(_reg));
+ if (!name) {
+ caml_invalid_argument("invalid reg_id");
+ name = "invalid";
+ }
+
+ return caml_copy_string(name);
+}
+
+CAMLprim value ocaml_instruction_name(value _handle, value _insn)
+{
+ const char *name = cs_insn_name(Int64_val(_handle), Int_val(_insn));
+ if (!name) {
+ caml_invalid_argument("invalid insn_id");
+ name = "invalid";
+ }
+
+ return caml_copy_string(name);
+}
+
+CAMLprim value ocaml_group_name(value _handle, value _insn)
+{
+ const char *name = cs_group_name(Int64_val(_handle), Int_val(_insn));
+ if (!name) {
+ caml_invalid_argument("invalid insn_id");
+ name = "invalid";
+ }
+
+ return caml_copy_string(name);
+}
+
+CAMLprim value ocaml_version(void)
+{
+ int version = cs_version(NULL, NULL);
+ return Val_int(version);
+}
+
+CAMLprim value ocaml_close(value _handle)
+{
+ CAMLparam1(_handle);
+ csh h;
+
+ h = Int64_val(_handle);
+
+ CAMLreturn(Val_int(cs_close(&h)));
+}
diff --git a/capstone/bindings/ocaml/ppc.ml b/capstone/bindings/ocaml/ppc.ml
new file mode 100644
index 000000000..269bfcc9e
--- /dev/null
+++ b/capstone/bindings/ocaml/ppc.ml
@@ -0,0 +1,34 @@
+(* Capstone Disassembly Engine
+ * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Ppc_const
+
+type ppc_op_mem = {
+ base: int;
+ disp: int;
+}
+
+type ppc_op_crx = {
+ scale: int;
+ reg: int;
+ cond: int;
+}
+
+type ppc_op_value =
+ | PPC_OP_INVALID of int
+ | PPC_OP_REG of int
+ | PPC_OP_IMM of int
+ | PPC_OP_MEM of ppc_op_mem
+ | PPC_OP_CRX of ppc_op_crx
+
+type ppc_op = {
+ value: ppc_op_value;
+}
+
+type cs_ppc = {
+ bc: int;
+ bh: int;
+ update_cr0: bool;
+ operands: ppc_op array;
+}
+
diff --git a/capstone/bindings/ocaml/ppc_const.ml b/capstone/bindings/ocaml/ppc_const.ml
new file mode 100644
index 000000000..6849a0c49
--- /dev/null
+++ b/capstone/bindings/ocaml/ppc_const.ml
@@ -0,0 +1,1976 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [ppc_const.ml] *)
+
+let _PPC_BC_INVALID = 0;;
+let _PPC_BC_LT = (0 lsl 5) lor 12;;
+let _PPC_BC_LE = (1 lsl 5) lor 4;;
+let _PPC_BC_EQ = (2 lsl 5) lor 12;;
+let _PPC_BC_GE = (0 lsl 5) lor 4;;
+let _PPC_BC_GT = (1 lsl 5) lor 12;;
+let _PPC_BC_NE = (2 lsl 5) lor 4;;
+let _PPC_BC_UN = (3 lsl 5) lor 12;;
+let _PPC_BC_NU = (3 lsl 5) lor 4;;
+let _PPC_BC_SO = (4 lsl 5) lor 12;;
+let _PPC_BC_NS = (4 lsl 5) lor 4;;
+
+let _PPC_BH_INVALID = 0;;
+let _PPC_BH_PLUS = 1;;
+let _PPC_BH_MINUS = 2;;
+
+let _PPC_OP_INVALID = 0;;
+let _PPC_OP_REG = 1;;
+let _PPC_OP_IMM = 2;;
+let _PPC_OP_MEM = 3;;
+let _PPC_OP_CRX = 64;;
+
+let _PPC_REG_INVALID = 0;;
+let _PPC_REG_CARRY = 2;;
+let _PPC_REG_CTR = 3;;
+let _PPC_REG_LR = 5;;
+let _PPC_REG_RM = 6;;
+let _PPC_REG_VRSAVE = 8;;
+let _PPC_REG_XER = 9;;
+let _PPC_REG_ZERO = 10;;
+let _PPC_REG_CR0 = 12;;
+let _PPC_REG_CR1 = 13;;
+let _PPC_REG_CR2 = 14;;
+let _PPC_REG_CR3 = 15;;
+let _PPC_REG_CR4 = 16;;
+let _PPC_REG_CR5 = 17;;
+let _PPC_REG_CR6 = 18;;
+let _PPC_REG_CR7 = 19;;
+let _PPC_REG_CTR8 = 20;;
+let _PPC_REG_F0 = 21;;
+let _PPC_REG_F1 = 22;;
+let _PPC_REG_F2 = 23;;
+let _PPC_REG_F3 = 24;;
+let _PPC_REG_F4 = 25;;
+let _PPC_REG_F5 = 26;;
+let _PPC_REG_F6 = 27;;
+let _PPC_REG_F7 = 28;;
+let _PPC_REG_F8 = 29;;
+let _PPC_REG_F9 = 30;;
+let _PPC_REG_F10 = 31;;
+let _PPC_REG_F11 = 32;;
+let _PPC_REG_F12 = 33;;
+let _PPC_REG_F13 = 34;;
+let _PPC_REG_F14 = 35;;
+let _PPC_REG_F15 = 36;;
+let _PPC_REG_F16 = 37;;
+let _PPC_REG_F17 = 38;;
+let _PPC_REG_F18 = 39;;
+let _PPC_REG_F19 = 40;;
+let _PPC_REG_F20 = 41;;
+let _PPC_REG_F21 = 42;;
+let _PPC_REG_F22 = 43;;
+let _PPC_REG_F23 = 44;;
+let _PPC_REG_F24 = 45;;
+let _PPC_REG_F25 = 46;;
+let _PPC_REG_F26 = 47;;
+let _PPC_REG_F27 = 48;;
+let _PPC_REG_F28 = 49;;
+let _PPC_REG_F29 = 50;;
+let _PPC_REG_F30 = 51;;
+let _PPC_REG_F31 = 52;;
+let _PPC_REG_LR8 = 54;;
+let _PPC_REG_Q0 = 55;;
+let _PPC_REG_Q1 = 56;;
+let _PPC_REG_Q2 = 57;;
+let _PPC_REG_Q3 = 58;;
+let _PPC_REG_Q4 = 59;;
+let _PPC_REG_Q5 = 60;;
+let _PPC_REG_Q6 = 61;;
+let _PPC_REG_Q7 = 62;;
+let _PPC_REG_Q8 = 63;;
+let _PPC_REG_Q9 = 64;;
+let _PPC_REG_Q10 = 65;;
+let _PPC_REG_Q11 = 66;;
+let _PPC_REG_Q12 = 67;;
+let _PPC_REG_Q13 = 68;;
+let _PPC_REG_Q14 = 69;;
+let _PPC_REG_Q15 = 70;;
+let _PPC_REG_Q16 = 71;;
+let _PPC_REG_Q17 = 72;;
+let _PPC_REG_Q18 = 73;;
+let _PPC_REG_Q19 = 74;;
+let _PPC_REG_Q20 = 75;;
+let _PPC_REG_Q21 = 76;;
+let _PPC_REG_Q22 = 77;;
+let _PPC_REG_Q23 = 78;;
+let _PPC_REG_Q24 = 79;;
+let _PPC_REG_Q25 = 80;;
+let _PPC_REG_Q26 = 81;;
+let _PPC_REG_Q27 = 82;;
+let _PPC_REG_Q28 = 83;;
+let _PPC_REG_Q29 = 84;;
+let _PPC_REG_Q30 = 85;;
+let _PPC_REG_Q31 = 86;;
+let _PPC_REG_R0 = 87;;
+let _PPC_REG_R1 = 88;;
+let _PPC_REG_R2 = 89;;
+let _PPC_REG_R3 = 90;;
+let _PPC_REG_R4 = 91;;
+let _PPC_REG_R5 = 92;;
+let _PPC_REG_R6 = 93;;
+let _PPC_REG_R7 = 94;;
+let _PPC_REG_R8 = 95;;
+let _PPC_REG_R9 = 96;;
+let _PPC_REG_R10 = 97;;
+let _PPC_REG_R11 = 98;;
+let _PPC_REG_R12 = 99;;
+let _PPC_REG_R13 = 100;;
+let _PPC_REG_R14 = 101;;
+let _PPC_REG_R15 = 102;;
+let _PPC_REG_R16 = 103;;
+let _PPC_REG_R17 = 104;;
+let _PPC_REG_R18 = 105;;
+let _PPC_REG_R19 = 106;;
+let _PPC_REG_R20 = 107;;
+let _PPC_REG_R21 = 108;;
+let _PPC_REG_R22 = 109;;
+let _PPC_REG_R23 = 110;;
+let _PPC_REG_R24 = 111;;
+let _PPC_REG_R25 = 112;;
+let _PPC_REG_R26 = 113;;
+let _PPC_REG_R27 = 114;;
+let _PPC_REG_R28 = 115;;
+let _PPC_REG_R29 = 116;;
+let _PPC_REG_R30 = 117;;
+let _PPC_REG_R31 = 118;;
+let _PPC_REG_V0 = 151;;
+let _PPC_REG_V1 = 152;;
+let _PPC_REG_V2 = 153;;
+let _PPC_REG_V3 = 154;;
+let _PPC_REG_V4 = 155;;
+let _PPC_REG_V5 = 156;;
+let _PPC_REG_V6 = 157;;
+let _PPC_REG_V7 = 158;;
+let _PPC_REG_V8 = 159;;
+let _PPC_REG_V9 = 160;;
+let _PPC_REG_V10 = 161;;
+let _PPC_REG_V11 = 162;;
+let _PPC_REG_V12 = 163;;
+let _PPC_REG_V13 = 164;;
+let _PPC_REG_V14 = 165;;
+let _PPC_REG_V15 = 166;;
+let _PPC_REG_V16 = 167;;
+let _PPC_REG_V17 = 168;;
+let _PPC_REG_V18 = 169;;
+let _PPC_REG_V19 = 170;;
+let _PPC_REG_V20 = 171;;
+let _PPC_REG_V21 = 172;;
+let _PPC_REG_V22 = 173;;
+let _PPC_REG_V23 = 174;;
+let _PPC_REG_V24 = 175;;
+let _PPC_REG_V25 = 176;;
+let _PPC_REG_V26 = 177;;
+let _PPC_REG_V27 = 178;;
+let _PPC_REG_V28 = 179;;
+let _PPC_REG_V29 = 180;;
+let _PPC_REG_V30 = 181;;
+let _PPC_REG_V31 = 182;;
+let _PPC_REG_VS0 = 215;;
+let _PPC_REG_VS1 = 216;;
+let _PPC_REG_VS2 = 217;;
+let _PPC_REG_VS3 = 218;;
+let _PPC_REG_VS4 = 219;;
+let _PPC_REG_VS5 = 220;;
+let _PPC_REG_VS6 = 221;;
+let _PPC_REG_VS7 = 222;;
+let _PPC_REG_VS8 = 223;;
+let _PPC_REG_VS9 = 224;;
+let _PPC_REG_VS10 = 225;;
+let _PPC_REG_VS11 = 226;;
+let _PPC_REG_VS12 = 227;;
+let _PPC_REG_VS13 = 228;;
+let _PPC_REG_VS14 = 229;;
+let _PPC_REG_VS15 = 230;;
+let _PPC_REG_VS16 = 231;;
+let _PPC_REG_VS17 = 232;;
+let _PPC_REG_VS18 = 233;;
+let _PPC_REG_VS19 = 234;;
+let _PPC_REG_VS20 = 235;;
+let _PPC_REG_VS21 = 236;;
+let _PPC_REG_VS22 = 237;;
+let _PPC_REG_VS23 = 238;;
+let _PPC_REG_VS24 = 239;;
+let _PPC_REG_VS25 = 240;;
+let _PPC_REG_VS26 = 241;;
+let _PPC_REG_VS27 = 242;;
+let _PPC_REG_VS28 = 243;;
+let _PPC_REG_VS29 = 244;;
+let _PPC_REG_VS30 = 245;;
+let _PPC_REG_VS31 = 246;;
+let _PPC_REG_VS32 = 247;;
+let _PPC_REG_VS33 = 248;;
+let _PPC_REG_VS34 = 249;;
+let _PPC_REG_VS35 = 250;;
+let _PPC_REG_VS36 = 251;;
+let _PPC_REG_VS37 = 252;;
+let _PPC_REG_VS38 = 253;;
+let _PPC_REG_VS39 = 254;;
+let _PPC_REG_VS40 = 255;;
+let _PPC_REG_VS41 = 256;;
+let _PPC_REG_VS42 = 257;;
+let _PPC_REG_VS43 = 258;;
+let _PPC_REG_VS44 = 259;;
+let _PPC_REG_VS45 = 260;;
+let _PPC_REG_VS46 = 261;;
+let _PPC_REG_VS47 = 262;;
+let _PPC_REG_VS48 = 263;;
+let _PPC_REG_VS49 = 264;;
+let _PPC_REG_VS50 = 265;;
+let _PPC_REG_VS51 = 266;;
+let _PPC_REG_VS52 = 267;;
+let _PPC_REG_VS53 = 268;;
+let _PPC_REG_VS54 = 269;;
+let _PPC_REG_VS55 = 270;;
+let _PPC_REG_VS56 = 271;;
+let _PPC_REG_VS57 = 272;;
+let _PPC_REG_VS58 = 273;;
+let _PPC_REG_VS59 = 274;;
+let _PPC_REG_VS60 = 275;;
+let _PPC_REG_VS61 = 276;;
+let _PPC_REG_VS62 = 277;;
+let _PPC_REG_VS63 = 278;;
+let _PPC_REG_CR0EQ = 312;;
+let _PPC_REG_CR1EQ = 313;;
+let _PPC_REG_CR2EQ = 314;;
+let _PPC_REG_CR3EQ = 315;;
+let _PPC_REG_CR4EQ = 316;;
+let _PPC_REG_CR5EQ = 317;;
+let _PPC_REG_CR6EQ = 318;;
+let _PPC_REG_CR7EQ = 319;;
+let _PPC_REG_CR0GT = 320;;
+let _PPC_REG_CR1GT = 321;;
+let _PPC_REG_CR2GT = 322;;
+let _PPC_REG_CR3GT = 323;;
+let _PPC_REG_CR4GT = 324;;
+let _PPC_REG_CR5GT = 325;;
+let _PPC_REG_CR6GT = 326;;
+let _PPC_REG_CR7GT = 327;;
+let _PPC_REG_CR0LT = 328;;
+let _PPC_REG_CR1LT = 329;;
+let _PPC_REG_CR2LT = 330;;
+let _PPC_REG_CR3LT = 331;;
+let _PPC_REG_CR4LT = 332;;
+let _PPC_REG_CR5LT = 333;;
+let _PPC_REG_CR6LT = 334;;
+let _PPC_REG_CR7LT = 335;;
+let _PPC_REG_CR0UN = 336;;
+let _PPC_REG_CR1UN = 337;;
+let _PPC_REG_CR2UN = 338;;
+let _PPC_REG_CR3UN = 339;;
+let _PPC_REG_CR4UN = 340;;
+let _PPC_REG_CR5UN = 341;;
+let _PPC_REG_CR6UN = 342;;
+let _PPC_REG_CR7UN = 343;;
+let _PPC_REG_ENDING = 344;;
+
+let _PPC_INS_INVALID = 0;;
+let _PPC_INS_ADD = 1;;
+let _PPC_INS_ADDC = 2;;
+let _PPC_INS_ADDE = 3;;
+let _PPC_INS_ADDI = 4;;
+let _PPC_INS_ADDIC = 5;;
+let _PPC_INS_ADDIS = 6;;
+let _PPC_INS_ADDME = 7;;
+let _PPC_INS_ADDPCIS = 8;;
+let _PPC_INS_ADDZE = 9;;
+let _PPC_INS_AND = 10;;
+let _PPC_INS_ANDC = 11;;
+let _PPC_INS_ANDI = 12;;
+let _PPC_INS_ANDIS = 13;;
+let _PPC_INS_ATTN = 14;;
+let _PPC_INS_B = 15;;
+let _PPC_INS_BA = 16;;
+let _PPC_INS_BC = 17;;
+let _PPC_INS_BCA = 18;;
+let _PPC_INS_BCCTR = 19;;
+let _PPC_INS_BCCTRL = 20;;
+let _PPC_INS_BCDCFN = 21;;
+let _PPC_INS_BCDCFSQ = 22;;
+let _PPC_INS_BCDCFZ = 23;;
+let _PPC_INS_BCDCPSGN = 24;;
+let _PPC_INS_BCDCTN = 25;;
+let _PPC_INS_BCDCTSQ = 26;;
+let _PPC_INS_BCDCTZ = 27;;
+let _PPC_INS_BCDS = 28;;
+let _PPC_INS_BCDSETSGN = 29;;
+let _PPC_INS_BCDSR = 30;;
+let _PPC_INS_BCDTRUNC = 31;;
+let _PPC_INS_BCDUS = 32;;
+let _PPC_INS_BCDUTRUNC = 33;;
+let _PPC_INS_BCL = 34;;
+let _PPC_INS_BCLA = 35;;
+let _PPC_INS_BCLR = 36;;
+let _PPC_INS_BCLRL = 37;;
+let _PPC_INS_BCTR = 38;;
+let _PPC_INS_BCTRL = 39;;
+let _PPC_INS_BDNZ = 40;;
+let _PPC_INS_BDNZA = 41;;
+let _PPC_INS_BDNZF = 42;;
+let _PPC_INS_BDNZFA = 43;;
+let _PPC_INS_BDNZFL = 44;;
+let _PPC_INS_BDNZFLA = 45;;
+let _PPC_INS_BDNZFLR = 46;;
+let _PPC_INS_BDNZFLRL = 47;;
+let _PPC_INS_BDNZL = 48;;
+let _PPC_INS_BDNZLA = 49;;
+let _PPC_INS_BDNZLR = 50;;
+let _PPC_INS_BDNZLRL = 51;;
+let _PPC_INS_BDNZT = 52;;
+let _PPC_INS_BDNZTA = 53;;
+let _PPC_INS_BDNZTL = 54;;
+let _PPC_INS_BDNZTLA = 55;;
+let _PPC_INS_BDNZTLR = 56;;
+let _PPC_INS_BDNZTLRL = 57;;
+let _PPC_INS_BDZ = 58;;
+let _PPC_INS_BDZA = 59;;
+let _PPC_INS_BDZF = 60;;
+let _PPC_INS_BDZFA = 61;;
+let _PPC_INS_BDZFL = 62;;
+let _PPC_INS_BDZFLA = 63;;
+let _PPC_INS_BDZFLR = 64;;
+let _PPC_INS_BDZFLRL = 65;;
+let _PPC_INS_BDZL = 66;;
+let _PPC_INS_BDZLA = 67;;
+let _PPC_INS_BDZLR = 68;;
+let _PPC_INS_BDZLRL = 69;;
+let _PPC_INS_BDZT = 70;;
+let _PPC_INS_BDZTA = 71;;
+let _PPC_INS_BDZTL = 72;;
+let _PPC_INS_BDZTLA = 73;;
+let _PPC_INS_BDZTLR = 74;;
+let _PPC_INS_BDZTLRL = 75;;
+let _PPC_INS_BEQ = 76;;
+let _PPC_INS_BEQA = 77;;
+let _PPC_INS_BEQCTR = 78;;
+let _PPC_INS_BEQCTRL = 79;;
+let _PPC_INS_BEQL = 80;;
+let _PPC_INS_BEQLA = 81;;
+let _PPC_INS_BEQLR = 82;;
+let _PPC_INS_BEQLRL = 83;;
+let _PPC_INS_BF = 84;;
+let _PPC_INS_BFA = 85;;
+let _PPC_INS_BFCTR = 86;;
+let _PPC_INS_BFCTRL = 87;;
+let _PPC_INS_BFL = 88;;
+let _PPC_INS_BFLA = 89;;
+let _PPC_INS_BFLR = 90;;
+let _PPC_INS_BFLRL = 91;;
+let _PPC_INS_BGE = 92;;
+let _PPC_INS_BGEA = 93;;
+let _PPC_INS_BGECTR = 94;;
+let _PPC_INS_BGECTRL = 95;;
+let _PPC_INS_BGEL = 96;;
+let _PPC_INS_BGELA = 97;;
+let _PPC_INS_BGELR = 98;;
+let _PPC_INS_BGELRL = 99;;
+let _PPC_INS_BGT = 100;;
+let _PPC_INS_BGTA = 101;;
+let _PPC_INS_BGTCTR = 102;;
+let _PPC_INS_BGTCTRL = 103;;
+let _PPC_INS_BGTL = 104;;
+let _PPC_INS_BGTLA = 105;;
+let _PPC_INS_BGTLR = 106;;
+let _PPC_INS_BGTLRL = 107;;
+let _PPC_INS_BL = 108;;
+let _PPC_INS_BLA = 109;;
+let _PPC_INS_BLE = 110;;
+let _PPC_INS_BLEA = 111;;
+let _PPC_INS_BLECTR = 112;;
+let _PPC_INS_BLECTRL = 113;;
+let _PPC_INS_BLEL = 114;;
+let _PPC_INS_BLELA = 115;;
+let _PPC_INS_BLELR = 116;;
+let _PPC_INS_BLELRL = 117;;
+let _PPC_INS_BLR = 118;;
+let _PPC_INS_BLRL = 119;;
+let _PPC_INS_BLT = 120;;
+let _PPC_INS_BLTA = 121;;
+let _PPC_INS_BLTCTR = 122;;
+let _PPC_INS_BLTCTRL = 123;;
+let _PPC_INS_BLTL = 124;;
+let _PPC_INS_BLTLA = 125;;
+let _PPC_INS_BLTLR = 126;;
+let _PPC_INS_BLTLRL = 127;;
+let _PPC_INS_BNE = 128;;
+let _PPC_INS_BNEA = 129;;
+let _PPC_INS_BNECTR = 130;;
+let _PPC_INS_BNECTRL = 131;;
+let _PPC_INS_BNEL = 132;;
+let _PPC_INS_BNELA = 133;;
+let _PPC_INS_BNELR = 134;;
+let _PPC_INS_BNELRL = 135;;
+let _PPC_INS_BNG = 136;;
+let _PPC_INS_BNGA = 137;;
+let _PPC_INS_BNGCTR = 138;;
+let _PPC_INS_BNGCTRL = 139;;
+let _PPC_INS_BNGL = 140;;
+let _PPC_INS_BNGLA = 141;;
+let _PPC_INS_BNGLR = 142;;
+let _PPC_INS_BNGLRL = 143;;
+let _PPC_INS_BNL = 144;;
+let _PPC_INS_BNLA = 145;;
+let _PPC_INS_BNLCTR = 146;;
+let _PPC_INS_BNLCTRL = 147;;
+let _PPC_INS_BNLL = 148;;
+let _PPC_INS_BNLLA = 149;;
+let _PPC_INS_BNLLR = 150;;
+let _PPC_INS_BNLLRL = 151;;
+let _PPC_INS_BNS = 152;;
+let _PPC_INS_BNSA = 153;;
+let _PPC_INS_BNSCTR = 154;;
+let _PPC_INS_BNSCTRL = 155;;
+let _PPC_INS_BNSL = 156;;
+let _PPC_INS_BNSLA = 157;;
+let _PPC_INS_BNSLR = 158;;
+let _PPC_INS_BNSLRL = 159;;
+let _PPC_INS_BNU = 160;;
+let _PPC_INS_BNUA = 161;;
+let _PPC_INS_BNUCTR = 162;;
+let _PPC_INS_BNUCTRL = 163;;
+let _PPC_INS_BNUL = 164;;
+let _PPC_INS_BNULA = 165;;
+let _PPC_INS_BNULR = 166;;
+let _PPC_INS_BNULRL = 167;;
+let _PPC_INS_BPERMD = 168;;
+let _PPC_INS_BRINC = 169;;
+let _PPC_INS_BSO = 170;;
+let _PPC_INS_BSOA = 171;;
+let _PPC_INS_BSOCTR = 172;;
+let _PPC_INS_BSOCTRL = 173;;
+let _PPC_INS_BSOL = 174;;
+let _PPC_INS_BSOLA = 175;;
+let _PPC_INS_BSOLR = 176;;
+let _PPC_INS_BSOLRL = 177;;
+let _PPC_INS_BT = 178;;
+let _PPC_INS_BTA = 179;;
+let _PPC_INS_BTCTR = 180;;
+let _PPC_INS_BTCTRL = 181;;
+let _PPC_INS_BTL = 182;;
+let _PPC_INS_BTLA = 183;;
+let _PPC_INS_BTLR = 184;;
+let _PPC_INS_BTLRL = 185;;
+let _PPC_INS_BUN = 186;;
+let _PPC_INS_BUNA = 187;;
+let _PPC_INS_BUNCTR = 188;;
+let _PPC_INS_BUNCTRL = 189;;
+let _PPC_INS_BUNL = 190;;
+let _PPC_INS_BUNLA = 191;;
+let _PPC_INS_BUNLR = 192;;
+let _PPC_INS_BUNLRL = 193;;
+let _PPC_INS_CLRBHRB = 194;;
+let _PPC_INS_CLRLDI = 195;;
+let _PPC_INS_CLRLSLDI = 196;;
+let _PPC_INS_CLRLSLWI = 197;;
+let _PPC_INS_CLRLWI = 198;;
+let _PPC_INS_CLRRDI = 199;;
+let _PPC_INS_CLRRWI = 200;;
+let _PPC_INS_CMP = 201;;
+let _PPC_INS_CMPB = 202;;
+let _PPC_INS_CMPD = 203;;
+let _PPC_INS_CMPDI = 204;;
+let _PPC_INS_CMPEQB = 205;;
+let _PPC_INS_CMPI = 206;;
+let _PPC_INS_CMPL = 207;;
+let _PPC_INS_CMPLD = 208;;
+let _PPC_INS_CMPLDI = 209;;
+let _PPC_INS_CMPLI = 210;;
+let _PPC_INS_CMPLW = 211;;
+let _PPC_INS_CMPLWI = 212;;
+let _PPC_INS_CMPRB = 213;;
+let _PPC_INS_CMPW = 214;;
+let _PPC_INS_CMPWI = 215;;
+let _PPC_INS_CNTLZD = 216;;
+let _PPC_INS_CNTLZW = 217;;
+let _PPC_INS_CNTTZD = 218;;
+let _PPC_INS_CNTTZW = 219;;
+let _PPC_INS_COPY = 220;;
+let _PPC_INS_COPY_FIRST = 221;;
+let _PPC_INS_CP_ABORT = 222;;
+let _PPC_INS_CRAND = 223;;
+let _PPC_INS_CRANDC = 224;;
+let _PPC_INS_CRCLR = 225;;
+let _PPC_INS_CREQV = 226;;
+let _PPC_INS_CRMOVE = 227;;
+let _PPC_INS_CRNAND = 228;;
+let _PPC_INS_CRNOR = 229;;
+let _PPC_INS_CRNOT = 230;;
+let _PPC_INS_CROR = 231;;
+let _PPC_INS_CRORC = 232;;
+let _PPC_INS_CRSET = 233;;
+let _PPC_INS_CRXOR = 234;;
+let _PPC_INS_DARN = 235;;
+let _PPC_INS_DCBA = 236;;
+let _PPC_INS_DCBF = 237;;
+let _PPC_INS_DCBFEP = 238;;
+let _PPC_INS_DCBFL = 239;;
+let _PPC_INS_DCBFLP = 240;;
+let _PPC_INS_DCBI = 241;;
+let _PPC_INS_DCBST = 242;;
+let _PPC_INS_DCBSTEP = 243;;
+let _PPC_INS_DCBT = 244;;
+let _PPC_INS_DCBTCT = 245;;
+let _PPC_INS_DCBTDS = 246;;
+let _PPC_INS_DCBTEP = 247;;
+let _PPC_INS_DCBTST = 248;;
+let _PPC_INS_DCBTSTCT = 249;;
+let _PPC_INS_DCBTSTDS = 250;;
+let _PPC_INS_DCBTSTEP = 251;;
+let _PPC_INS_DCBTSTT = 252;;
+let _PPC_INS_DCBTT = 253;;
+let _PPC_INS_DCBZ = 254;;
+let _PPC_INS_DCBZEP = 255;;
+let _PPC_INS_DCBZL = 256;;
+let _PPC_INS_DCBZLEP = 257;;
+let _PPC_INS_DCCCI = 258;;
+let _PPC_INS_DCI = 259;;
+let _PPC_INS_DIVD = 260;;
+let _PPC_INS_DIVDE = 261;;
+let _PPC_INS_DIVDEU = 262;;
+let _PPC_INS_DIVDU = 263;;
+let _PPC_INS_DIVW = 264;;
+let _PPC_INS_DIVWE = 265;;
+let _PPC_INS_DIVWEU = 266;;
+let _PPC_INS_DIVWU = 267;;
+let _PPC_INS_DSS = 268;;
+let _PPC_INS_DSSALL = 269;;
+let _PPC_INS_DST = 270;;
+let _PPC_INS_DSTST = 271;;
+let _PPC_INS_DSTSTT = 272;;
+let _PPC_INS_DSTT = 273;;
+let _PPC_INS_EFDABS = 274;;
+let _PPC_INS_EFDADD = 275;;
+let _PPC_INS_EFDCFS = 276;;
+let _PPC_INS_EFDCFSF = 277;;
+let _PPC_INS_EFDCFSI = 278;;
+let _PPC_INS_EFDCFSID = 279;;
+let _PPC_INS_EFDCFUF = 280;;
+let _PPC_INS_EFDCFUI = 281;;
+let _PPC_INS_EFDCFUID = 282;;
+let _PPC_INS_EFDCMPEQ = 283;;
+let _PPC_INS_EFDCMPGT = 284;;
+let _PPC_INS_EFDCMPLT = 285;;
+let _PPC_INS_EFDCTSF = 286;;
+let _PPC_INS_EFDCTSI = 287;;
+let _PPC_INS_EFDCTSIDZ = 288;;
+let _PPC_INS_EFDCTSIZ = 289;;
+let _PPC_INS_EFDCTUF = 290;;
+let _PPC_INS_EFDCTUI = 291;;
+let _PPC_INS_EFDCTUIDZ = 292;;
+let _PPC_INS_EFDCTUIZ = 293;;
+let _PPC_INS_EFDDIV = 294;;
+let _PPC_INS_EFDMUL = 295;;
+let _PPC_INS_EFDNABS = 296;;
+let _PPC_INS_EFDNEG = 297;;
+let _PPC_INS_EFDSUB = 298;;
+let _PPC_INS_EFDTSTEQ = 299;;
+let _PPC_INS_EFDTSTGT = 300;;
+let _PPC_INS_EFDTSTLT = 301;;
+let _PPC_INS_EFSABS = 302;;
+let _PPC_INS_EFSADD = 303;;
+let _PPC_INS_EFSCFD = 304;;
+let _PPC_INS_EFSCFSF = 305;;
+let _PPC_INS_EFSCFSI = 306;;
+let _PPC_INS_EFSCFUF = 307;;
+let _PPC_INS_EFSCFUI = 308;;
+let _PPC_INS_EFSCMPEQ = 309;;
+let _PPC_INS_EFSCMPGT = 310;;
+let _PPC_INS_EFSCMPLT = 311;;
+let _PPC_INS_EFSCTSF = 312;;
+let _PPC_INS_EFSCTSI = 313;;
+let _PPC_INS_EFSCTSIZ = 314;;
+let _PPC_INS_EFSCTUF = 315;;
+let _PPC_INS_EFSCTUI = 316;;
+let _PPC_INS_EFSCTUIZ = 317;;
+let _PPC_INS_EFSDIV = 318;;
+let _PPC_INS_EFSMUL = 319;;
+let _PPC_INS_EFSNABS = 320;;
+let _PPC_INS_EFSNEG = 321;;
+let _PPC_INS_EFSSUB = 322;;
+let _PPC_INS_EFSTSTEQ = 323;;
+let _PPC_INS_EFSTSTGT = 324;;
+let _PPC_INS_EFSTSTLT = 325;;
+let _PPC_INS_EIEIO = 326;;
+let _PPC_INS_EQV = 327;;
+let _PPC_INS_EVABS = 328;;
+let _PPC_INS_EVADDIW = 329;;
+let _PPC_INS_EVADDSMIAAW = 330;;
+let _PPC_INS_EVADDSSIAAW = 331;;
+let _PPC_INS_EVADDUMIAAW = 332;;
+let _PPC_INS_EVADDUSIAAW = 333;;
+let _PPC_INS_EVADDW = 334;;
+let _PPC_INS_EVAND = 335;;
+let _PPC_INS_EVANDC = 336;;
+let _PPC_INS_EVCMPEQ = 337;;
+let _PPC_INS_EVCMPGTS = 338;;
+let _PPC_INS_EVCMPGTU = 339;;
+let _PPC_INS_EVCMPLTS = 340;;
+let _PPC_INS_EVCMPLTU = 341;;
+let _PPC_INS_EVCNTLSW = 342;;
+let _PPC_INS_EVCNTLZW = 343;;
+let _PPC_INS_EVDIVWS = 344;;
+let _PPC_INS_EVDIVWU = 345;;
+let _PPC_INS_EVEQV = 346;;
+let _PPC_INS_EVEXTSB = 347;;
+let _PPC_INS_EVEXTSH = 348;;
+let _PPC_INS_EVFSABS = 349;;
+let _PPC_INS_EVFSADD = 350;;
+let _PPC_INS_EVFSCFSF = 351;;
+let _PPC_INS_EVFSCFSI = 352;;
+let _PPC_INS_EVFSCFUF = 353;;
+let _PPC_INS_EVFSCFUI = 354;;
+let _PPC_INS_EVFSCMPEQ = 355;;
+let _PPC_INS_EVFSCMPGT = 356;;
+let _PPC_INS_EVFSCMPLT = 357;;
+let _PPC_INS_EVFSCTSF = 358;;
+let _PPC_INS_EVFSCTSI = 359;;
+let _PPC_INS_EVFSCTSIZ = 360;;
+let _PPC_INS_EVFSCTUI = 361;;
+let _PPC_INS_EVFSDIV = 362;;
+let _PPC_INS_EVFSMUL = 363;;
+let _PPC_INS_EVFSNABS = 364;;
+let _PPC_INS_EVFSNEG = 365;;
+let _PPC_INS_EVFSSUB = 366;;
+let _PPC_INS_EVFSTSTEQ = 367;;
+let _PPC_INS_EVFSTSTGT = 368;;
+let _PPC_INS_EVFSTSTLT = 369;;
+let _PPC_INS_EVLDD = 370;;
+let _PPC_INS_EVLDDX = 371;;
+let _PPC_INS_EVLDH = 372;;
+let _PPC_INS_EVLDHX = 373;;
+let _PPC_INS_EVLDW = 374;;
+let _PPC_INS_EVLDWX = 375;;
+let _PPC_INS_EVLHHESPLAT = 376;;
+let _PPC_INS_EVLHHESPLATX = 377;;
+let _PPC_INS_EVLHHOSSPLAT = 378;;
+let _PPC_INS_EVLHHOSSPLATX = 379;;
+let _PPC_INS_EVLHHOUSPLAT = 380;;
+let _PPC_INS_EVLHHOUSPLATX = 381;;
+let _PPC_INS_EVLWHE = 382;;
+let _PPC_INS_EVLWHEX = 383;;
+let _PPC_INS_EVLWHOS = 384;;
+let _PPC_INS_EVLWHOSX = 385;;
+let _PPC_INS_EVLWHOU = 386;;
+let _PPC_INS_EVLWHOUX = 387;;
+let _PPC_INS_EVLWHSPLAT = 388;;
+let _PPC_INS_EVLWHSPLATX = 389;;
+let _PPC_INS_EVLWWSPLAT = 390;;
+let _PPC_INS_EVLWWSPLATX = 391;;
+let _PPC_INS_EVMERGEHI = 392;;
+let _PPC_INS_EVMERGEHILO = 393;;
+let _PPC_INS_EVMERGELO = 394;;
+let _PPC_INS_EVMERGELOHI = 395;;
+let _PPC_INS_EVMHEGSMFAA = 396;;
+let _PPC_INS_EVMHEGSMFAN = 397;;
+let _PPC_INS_EVMHEGSMIAA = 398;;
+let _PPC_INS_EVMHEGSMIAN = 399;;
+let _PPC_INS_EVMHEGUMIAA = 400;;
+let _PPC_INS_EVMHEGUMIAN = 401;;
+let _PPC_INS_EVMHESMF = 402;;
+let _PPC_INS_EVMHESMFA = 403;;
+let _PPC_INS_EVMHESMFAAW = 404;;
+let _PPC_INS_EVMHESMFANW = 405;;
+let _PPC_INS_EVMHESMI = 406;;
+let _PPC_INS_EVMHESMIA = 407;;
+let _PPC_INS_EVMHESMIAAW = 408;;
+let _PPC_INS_EVMHESMIANW = 409;;
+let _PPC_INS_EVMHESSF = 410;;
+let _PPC_INS_EVMHESSFA = 411;;
+let _PPC_INS_EVMHESSFAAW = 412;;
+let _PPC_INS_EVMHESSFANW = 413;;
+let _PPC_INS_EVMHESSIAAW = 414;;
+let _PPC_INS_EVMHESSIANW = 415;;
+let _PPC_INS_EVMHEUMI = 416;;
+let _PPC_INS_EVMHEUMIA = 417;;
+let _PPC_INS_EVMHEUMIAAW = 418;;
+let _PPC_INS_EVMHEUMIANW = 419;;
+let _PPC_INS_EVMHEUSIAAW = 420;;
+let _PPC_INS_EVMHEUSIANW = 421;;
+let _PPC_INS_EVMHOGSMFAA = 422;;
+let _PPC_INS_EVMHOGSMFAN = 423;;
+let _PPC_INS_EVMHOGSMIAA = 424;;
+let _PPC_INS_EVMHOGSMIAN = 425;;
+let _PPC_INS_EVMHOGUMIAA = 426;;
+let _PPC_INS_EVMHOGUMIAN = 427;;
+let _PPC_INS_EVMHOSMF = 428;;
+let _PPC_INS_EVMHOSMFA = 429;;
+let _PPC_INS_EVMHOSMFAAW = 430;;
+let _PPC_INS_EVMHOSMFANW = 431;;
+let _PPC_INS_EVMHOSMI = 432;;
+let _PPC_INS_EVMHOSMIA = 433;;
+let _PPC_INS_EVMHOSMIAAW = 434;;
+let _PPC_INS_EVMHOSMIANW = 435;;
+let _PPC_INS_EVMHOSSF = 436;;
+let _PPC_INS_EVMHOSSFA = 437;;
+let _PPC_INS_EVMHOSSFAAW = 438;;
+let _PPC_INS_EVMHOSSFANW = 439;;
+let _PPC_INS_EVMHOSSIAAW = 440;;
+let _PPC_INS_EVMHOSSIANW = 441;;
+let _PPC_INS_EVMHOUMI = 442;;
+let _PPC_INS_EVMHOUMIA = 443;;
+let _PPC_INS_EVMHOUMIAAW = 444;;
+let _PPC_INS_EVMHOUMIANW = 445;;
+let _PPC_INS_EVMHOUSIAAW = 446;;
+let _PPC_INS_EVMHOUSIANW = 447;;
+let _PPC_INS_EVMRA = 448;;
+let _PPC_INS_EVMWHSMF = 449;;
+let _PPC_INS_EVMWHSMFA = 450;;
+let _PPC_INS_EVMWHSMI = 451;;
+let _PPC_INS_EVMWHSMIA = 452;;
+let _PPC_INS_EVMWHSSF = 453;;
+let _PPC_INS_EVMWHSSFA = 454;;
+let _PPC_INS_EVMWHUMI = 455;;
+let _PPC_INS_EVMWHUMIA = 456;;
+let _PPC_INS_EVMWLSMIAAW = 457;;
+let _PPC_INS_EVMWLSMIANW = 458;;
+let _PPC_INS_EVMWLSSIAAW = 459;;
+let _PPC_INS_EVMWLSSIANW = 460;;
+let _PPC_INS_EVMWLUMI = 461;;
+let _PPC_INS_EVMWLUMIA = 462;;
+let _PPC_INS_EVMWLUMIAAW = 463;;
+let _PPC_INS_EVMWLUMIANW = 464;;
+let _PPC_INS_EVMWLUSIAAW = 465;;
+let _PPC_INS_EVMWLUSIANW = 466;;
+let _PPC_INS_EVMWSMF = 467;;
+let _PPC_INS_EVMWSMFA = 468;;
+let _PPC_INS_EVMWSMFAA = 469;;
+let _PPC_INS_EVMWSMFAN = 470;;
+let _PPC_INS_EVMWSMI = 471;;
+let _PPC_INS_EVMWSMIA = 472;;
+let _PPC_INS_EVMWSMIAA = 473;;
+let _PPC_INS_EVMWSMIAN = 474;;
+let _PPC_INS_EVMWSSF = 475;;
+let _PPC_INS_EVMWSSFA = 476;;
+let _PPC_INS_EVMWSSFAA = 477;;
+let _PPC_INS_EVMWSSFAN = 478;;
+let _PPC_INS_EVMWUMI = 479;;
+let _PPC_INS_EVMWUMIA = 480;;
+let _PPC_INS_EVMWUMIAA = 481;;
+let _PPC_INS_EVMWUMIAN = 482;;
+let _PPC_INS_EVNAND = 483;;
+let _PPC_INS_EVNEG = 484;;
+let _PPC_INS_EVNOR = 485;;
+let _PPC_INS_EVOR = 486;;
+let _PPC_INS_EVORC = 487;;
+let _PPC_INS_EVRLW = 488;;
+let _PPC_INS_EVRLWI = 489;;
+let _PPC_INS_EVRNDW = 490;;
+let _PPC_INS_EVSEL = 491;;
+let _PPC_INS_EVSLW = 492;;
+let _PPC_INS_EVSLWI = 493;;
+let _PPC_INS_EVSPLATFI = 494;;
+let _PPC_INS_EVSPLATI = 495;;
+let _PPC_INS_EVSRWIS = 496;;
+let _PPC_INS_EVSRWIU = 497;;
+let _PPC_INS_EVSRWS = 498;;
+let _PPC_INS_EVSRWU = 499;;
+let _PPC_INS_EVSTDD = 500;;
+let _PPC_INS_EVSTDDX = 501;;
+let _PPC_INS_EVSTDH = 502;;
+let _PPC_INS_EVSTDHX = 503;;
+let _PPC_INS_EVSTDW = 504;;
+let _PPC_INS_EVSTDWX = 505;;
+let _PPC_INS_EVSTWHE = 506;;
+let _PPC_INS_EVSTWHEX = 507;;
+let _PPC_INS_EVSTWHO = 508;;
+let _PPC_INS_EVSTWHOX = 509;;
+let _PPC_INS_EVSTWWE = 510;;
+let _PPC_INS_EVSTWWEX = 511;;
+let _PPC_INS_EVSTWWO = 512;;
+let _PPC_INS_EVSTWWOX = 513;;
+let _PPC_INS_EVSUBFSMIAAW = 514;;
+let _PPC_INS_EVSUBFSSIAAW = 515;;
+let _PPC_INS_EVSUBFUMIAAW = 516;;
+let _PPC_INS_EVSUBFUSIAAW = 517;;
+let _PPC_INS_EVSUBFW = 518;;
+let _PPC_INS_EVSUBIFW = 519;;
+let _PPC_INS_EVXOR = 520;;
+let _PPC_INS_EXTLDI = 521;;
+let _PPC_INS_EXTLWI = 522;;
+let _PPC_INS_EXTRDI = 523;;
+let _PPC_INS_EXTRWI = 524;;
+let _PPC_INS_EXTSB = 525;;
+let _PPC_INS_EXTSH = 526;;
+let _PPC_INS_EXTSW = 527;;
+let _PPC_INS_EXTSWSLI = 528;;
+let _PPC_INS_FABS = 529;;
+let _PPC_INS_FADD = 530;;
+let _PPC_INS_FADDS = 531;;
+let _PPC_INS_FCFID = 532;;
+let _PPC_INS_FCFIDS = 533;;
+let _PPC_INS_FCFIDU = 534;;
+let _PPC_INS_FCFIDUS = 535;;
+let _PPC_INS_FCMPU = 536;;
+let _PPC_INS_FCPSGN = 537;;
+let _PPC_INS_FCTID = 538;;
+let _PPC_INS_FCTIDU = 539;;
+let _PPC_INS_FCTIDUZ = 540;;
+let _PPC_INS_FCTIDZ = 541;;
+let _PPC_INS_FCTIW = 542;;
+let _PPC_INS_FCTIWU = 543;;
+let _PPC_INS_FCTIWUZ = 544;;
+let _PPC_INS_FCTIWZ = 545;;
+let _PPC_INS_FDIV = 546;;
+let _PPC_INS_FDIVS = 547;;
+let _PPC_INS_FMADD = 548;;
+let _PPC_INS_FMADDS = 549;;
+let _PPC_INS_FMR = 550;;
+let _PPC_INS_FMSUB = 551;;
+let _PPC_INS_FMSUBS = 552;;
+let _PPC_INS_FMUL = 553;;
+let _PPC_INS_FMULS = 554;;
+let _PPC_INS_FNABS = 555;;
+let _PPC_INS_FNEG = 556;;
+let _PPC_INS_FNMADD = 557;;
+let _PPC_INS_FNMADDS = 558;;
+let _PPC_INS_FNMSUB = 559;;
+let _PPC_INS_FNMSUBS = 560;;
+let _PPC_INS_FRE = 561;;
+let _PPC_INS_FRES = 562;;
+let _PPC_INS_FRIM = 563;;
+let _PPC_INS_FRIN = 564;;
+let _PPC_INS_FRIP = 565;;
+let _PPC_INS_FRIZ = 566;;
+let _PPC_INS_FRSP = 567;;
+let _PPC_INS_FRSQRTE = 568;;
+let _PPC_INS_FRSQRTES = 569;;
+let _PPC_INS_FSEL = 570;;
+let _PPC_INS_FSQRT = 571;;
+let _PPC_INS_FSQRTS = 572;;
+let _PPC_INS_FSUB = 573;;
+let _PPC_INS_FSUBS = 574;;
+let _PPC_INS_FTDIV = 575;;
+let _PPC_INS_FTSQRT = 576;;
+let _PPC_INS_HRFID = 577;;
+let _PPC_INS_ICBI = 578;;
+let _PPC_INS_ICBIEP = 579;;
+let _PPC_INS_ICBLC = 580;;
+let _PPC_INS_ICBLQ = 581;;
+let _PPC_INS_ICBT = 582;;
+let _PPC_INS_ICBTLS = 583;;
+let _PPC_INS_ICCCI = 584;;
+let _PPC_INS_ICI = 585;;
+let _PPC_INS_INSLWI = 586;;
+let _PPC_INS_INSRDI = 587;;
+let _PPC_INS_INSRWI = 588;;
+let _PPC_INS_ISEL = 589;;
+let _PPC_INS_ISYNC = 590;;
+let _PPC_INS_LA = 591;;
+let _PPC_INS_LBARX = 592;;
+let _PPC_INS_LBEPX = 593;;
+let _PPC_INS_LBZ = 594;;
+let _PPC_INS_LBZCIX = 595;;
+let _PPC_INS_LBZU = 596;;
+let _PPC_INS_LBZUX = 597;;
+let _PPC_INS_LBZX = 598;;
+let _PPC_INS_LD = 599;;
+let _PPC_INS_LDARX = 600;;
+let _PPC_INS_LDAT = 601;;
+let _PPC_INS_LDBRX = 602;;
+let _PPC_INS_LDCIX = 603;;
+let _PPC_INS_LDMX = 604;;
+let _PPC_INS_LDU = 605;;
+let _PPC_INS_LDUX = 606;;
+let _PPC_INS_LDX = 607;;
+let _PPC_INS_LFD = 608;;
+let _PPC_INS_LFDEPX = 609;;
+let _PPC_INS_LFDU = 610;;
+let _PPC_INS_LFDUX = 611;;
+let _PPC_INS_LFDX = 612;;
+let _PPC_INS_LFIWAX = 613;;
+let _PPC_INS_LFIWZX = 614;;
+let _PPC_INS_LFS = 615;;
+let _PPC_INS_LFSU = 616;;
+let _PPC_INS_LFSUX = 617;;
+let _PPC_INS_LFSX = 618;;
+let _PPC_INS_LHA = 619;;
+let _PPC_INS_LHARX = 620;;
+let _PPC_INS_LHAU = 621;;
+let _PPC_INS_LHAUX = 622;;
+let _PPC_INS_LHAX = 623;;
+let _PPC_INS_LHBRX = 624;;
+let _PPC_INS_LHEPX = 625;;
+let _PPC_INS_LHZ = 626;;
+let _PPC_INS_LHZCIX = 627;;
+let _PPC_INS_LHZU = 628;;
+let _PPC_INS_LHZUX = 629;;
+let _PPC_INS_LHZX = 630;;
+let _PPC_INS_LI = 631;;
+let _PPC_INS_LIS = 632;;
+let _PPC_INS_LMW = 633;;
+let _PPC_INS_LNIA = 634;;
+let _PPC_INS_LSWI = 635;;
+let _PPC_INS_LVEBX = 636;;
+let _PPC_INS_LVEHX = 637;;
+let _PPC_INS_LVEWX = 638;;
+let _PPC_INS_LVSL = 639;;
+let _PPC_INS_LVSR = 640;;
+let _PPC_INS_LVX = 641;;
+let _PPC_INS_LVXL = 642;;
+let _PPC_INS_LWA = 643;;
+let _PPC_INS_LWARX = 644;;
+let _PPC_INS_LWAT = 645;;
+let _PPC_INS_LWAUX = 646;;
+let _PPC_INS_LWAX = 647;;
+let _PPC_INS_LWBRX = 648;;
+let _PPC_INS_LWEPX = 649;;
+let _PPC_INS_LWSYNC = 650;;
+let _PPC_INS_LWZ = 651;;
+let _PPC_INS_LWZCIX = 652;;
+let _PPC_INS_LWZU = 653;;
+let _PPC_INS_LWZUX = 654;;
+let _PPC_INS_LWZX = 655;;
+let _PPC_INS_LXSD = 656;;
+let _PPC_INS_LXSDX = 657;;
+let _PPC_INS_LXSIBZX = 658;;
+let _PPC_INS_LXSIHZX = 659;;
+let _PPC_INS_LXSIWAX = 660;;
+let _PPC_INS_LXSIWZX = 661;;
+let _PPC_INS_LXSSP = 662;;
+let _PPC_INS_LXSSPX = 663;;
+let _PPC_INS_LXV = 664;;
+let _PPC_INS_LXVB16X = 665;;
+let _PPC_INS_LXVD2X = 666;;
+let _PPC_INS_LXVDSX = 667;;
+let _PPC_INS_LXVH8X = 668;;
+let _PPC_INS_LXVL = 669;;
+let _PPC_INS_LXVLL = 670;;
+let _PPC_INS_LXVW4X = 671;;
+let _PPC_INS_LXVWSX = 672;;
+let _PPC_INS_LXVX = 673;;
+let _PPC_INS_MADDHD = 674;;
+let _PPC_INS_MADDHDU = 675;;
+let _PPC_INS_MADDLD = 676;;
+let _PPC_INS_MBAR = 677;;
+let _PPC_INS_MCRF = 678;;
+let _PPC_INS_MCRFS = 679;;
+let _PPC_INS_MCRXRX = 680;;
+let _PPC_INS_MFAMR = 681;;
+let _PPC_INS_MFASR = 682;;
+let _PPC_INS_MFBHRBE = 683;;
+let _PPC_INS_MFBR0 = 684;;
+let _PPC_INS_MFBR1 = 685;;
+let _PPC_INS_MFBR2 = 686;;
+let _PPC_INS_MFBR3 = 687;;
+let _PPC_INS_MFBR4 = 688;;
+let _PPC_INS_MFBR5 = 689;;
+let _PPC_INS_MFBR6 = 690;;
+let _PPC_INS_MFBR7 = 691;;
+let _PPC_INS_MFCFAR = 692;;
+let _PPC_INS_MFCR = 693;;
+let _PPC_INS_MFCTR = 694;;
+let _PPC_INS_MFDAR = 695;;
+let _PPC_INS_MFDBATL = 696;;
+let _PPC_INS_MFDBATU = 697;;
+let _PPC_INS_MFDCCR = 698;;
+let _PPC_INS_MFDCR = 699;;
+let _PPC_INS_MFDEAR = 700;;
+let _PPC_INS_MFDEC = 701;;
+let _PPC_INS_MFDSCR = 702;;
+let _PPC_INS_MFDSISR = 703;;
+let _PPC_INS_MFESR = 704;;
+let _PPC_INS_MFFPRD = 705;;
+let _PPC_INS_MFFS = 706;;
+let _PPC_INS_MFFSCDRN = 707;;
+let _PPC_INS_MFFSCDRNI = 708;;
+let _PPC_INS_MFFSCE = 709;;
+let _PPC_INS_MFFSCRN = 710;;
+let _PPC_INS_MFFSCRNI = 711;;
+let _PPC_INS_MFFSL = 712;;
+let _PPC_INS_MFIBATL = 713;;
+let _PPC_INS_MFIBATU = 714;;
+let _PPC_INS_MFICCR = 715;;
+let _PPC_INS_MFLR = 716;;
+let _PPC_INS_MFMSR = 717;;
+let _PPC_INS_MFOCRF = 718;;
+let _PPC_INS_MFPID = 719;;
+let _PPC_INS_MFPMR = 720;;
+let _PPC_INS_MFPVR = 721;;
+let _PPC_INS_MFRTCL = 722;;
+let _PPC_INS_MFRTCU = 723;;
+let _PPC_INS_MFSDR1 = 724;;
+let _PPC_INS_MFSPEFSCR = 725;;
+let _PPC_INS_MFSPR = 726;;
+let _PPC_INS_MFSPRG = 727;;
+let _PPC_INS_MFSPRG0 = 728;;
+let _PPC_INS_MFSPRG1 = 729;;
+let _PPC_INS_MFSPRG2 = 730;;
+let _PPC_INS_MFSPRG3 = 731;;
+let _PPC_INS_MFSPRG4 = 732;;
+let _PPC_INS_MFSPRG5 = 733;;
+let _PPC_INS_MFSPRG6 = 734;;
+let _PPC_INS_MFSPRG7 = 735;;
+let _PPC_INS_MFSR = 736;;
+let _PPC_INS_MFSRIN = 737;;
+let _PPC_INS_MFSRR0 = 738;;
+let _PPC_INS_MFSRR1 = 739;;
+let _PPC_INS_MFSRR2 = 740;;
+let _PPC_INS_MFSRR3 = 741;;
+let _PPC_INS_MFTB = 742;;
+let _PPC_INS_MFTBHI = 743;;
+let _PPC_INS_MFTBL = 744;;
+let _PPC_INS_MFTBLO = 745;;
+let _PPC_INS_MFTBU = 746;;
+let _PPC_INS_MFTCR = 747;;
+let _PPC_INS_MFVRD = 748;;
+let _PPC_INS_MFVRSAVE = 749;;
+let _PPC_INS_MFVSCR = 750;;
+let _PPC_INS_MFVSRD = 751;;
+let _PPC_INS_MFVSRLD = 752;;
+let _PPC_INS_MFVSRWZ = 753;;
+let _PPC_INS_MFXER = 754;;
+let _PPC_INS_MODSD = 755;;
+let _PPC_INS_MODSW = 756;;
+let _PPC_INS_MODUD = 757;;
+let _PPC_INS_MODUW = 758;;
+let _PPC_INS_MR = 759;;
+let _PPC_INS_MSGSYNC = 760;;
+let _PPC_INS_MSYNC = 761;;
+let _PPC_INS_MTAMR = 762;;
+let _PPC_INS_MTASR = 763;;
+let _PPC_INS_MTBR0 = 764;;
+let _PPC_INS_MTBR1 = 765;;
+let _PPC_INS_MTBR2 = 766;;
+let _PPC_INS_MTBR3 = 767;;
+let _PPC_INS_MTBR4 = 768;;
+let _PPC_INS_MTBR5 = 769;;
+let _PPC_INS_MTBR6 = 770;;
+let _PPC_INS_MTBR7 = 771;;
+let _PPC_INS_MTCFAR = 772;;
+let _PPC_INS_MTCR = 773;;
+let _PPC_INS_MTCRF = 774;;
+let _PPC_INS_MTCTR = 775;;
+let _PPC_INS_MTDAR = 776;;
+let _PPC_INS_MTDBATL = 777;;
+let _PPC_INS_MTDBATU = 778;;
+let _PPC_INS_MTDCCR = 779;;
+let _PPC_INS_MTDCR = 780;;
+let _PPC_INS_MTDEAR = 781;;
+let _PPC_INS_MTDEC = 782;;
+let _PPC_INS_MTDSCR = 783;;
+let _PPC_INS_MTDSISR = 784;;
+let _PPC_INS_MTESR = 785;;
+let _PPC_INS_MTFSB0 = 786;;
+let _PPC_INS_MTFSB1 = 787;;
+let _PPC_INS_MTFSF = 788;;
+let _PPC_INS_MTFSFI = 789;;
+let _PPC_INS_MTIBATL = 790;;
+let _PPC_INS_MTIBATU = 791;;
+let _PPC_INS_MTICCR = 792;;
+let _PPC_INS_MTLR = 793;;
+let _PPC_INS_MTMSR = 794;;
+let _PPC_INS_MTMSRD = 795;;
+let _PPC_INS_MTOCRF = 796;;
+let _PPC_INS_MTPID = 797;;
+let _PPC_INS_MTPMR = 798;;
+let _PPC_INS_MTSDR1 = 799;;
+let _PPC_INS_MTSPEFSCR = 800;;
+let _PPC_INS_MTSPR = 801;;
+let _PPC_INS_MTSPRG = 802;;
+let _PPC_INS_MTSPRG0 = 803;;
+let _PPC_INS_MTSPRG1 = 804;;
+let _PPC_INS_MTSPRG2 = 805;;
+let _PPC_INS_MTSPRG3 = 806;;
+let _PPC_INS_MTSPRG4 = 807;;
+let _PPC_INS_MTSPRG5 = 808;;
+let _PPC_INS_MTSPRG6 = 809;;
+let _PPC_INS_MTSPRG7 = 810;;
+let _PPC_INS_MTSR = 811;;
+let _PPC_INS_MTSRIN = 812;;
+let _PPC_INS_MTSRR0 = 813;;
+let _PPC_INS_MTSRR1 = 814;;
+let _PPC_INS_MTSRR2 = 815;;
+let _PPC_INS_MTSRR3 = 816;;
+let _PPC_INS_MTTBHI = 817;;
+let _PPC_INS_MTTBL = 818;;
+let _PPC_INS_MTTBLO = 819;;
+let _PPC_INS_MTTBU = 820;;
+let _PPC_INS_MTTCR = 821;;
+let _PPC_INS_MTVRSAVE = 822;;
+let _PPC_INS_MTVSCR = 823;;
+let _PPC_INS_MTVSRD = 824;;
+let _PPC_INS_MTVSRDD = 825;;
+let _PPC_INS_MTVSRWA = 826;;
+let _PPC_INS_MTVSRWS = 827;;
+let _PPC_INS_MTVSRWZ = 828;;
+let _PPC_INS_MTXER = 829;;
+let _PPC_INS_MULHD = 830;;
+let _PPC_INS_MULHDU = 831;;
+let _PPC_INS_MULHW = 832;;
+let _PPC_INS_MULHWU = 833;;
+let _PPC_INS_MULLD = 834;;
+let _PPC_INS_MULLI = 835;;
+let _PPC_INS_MULLW = 836;;
+let _PPC_INS_NAND = 837;;
+let _PPC_INS_NAP = 838;;
+let _PPC_INS_NEG = 839;;
+let _PPC_INS_NOP = 840;;
+let _PPC_INS_NOR = 841;;
+let _PPC_INS_NOT = 842;;
+let _PPC_INS_OR = 843;;
+let _PPC_INS_ORC = 844;;
+let _PPC_INS_ORI = 845;;
+let _PPC_INS_ORIS = 846;;
+let _PPC_INS_PASTE = 847;;
+let _PPC_INS_PASTE_LAST = 848;;
+let _PPC_INS_POPCNTB = 849;;
+let _PPC_INS_POPCNTD = 850;;
+let _PPC_INS_POPCNTW = 851;;
+let _PPC_INS_PTESYNC = 852;;
+let _PPC_INS_QVALIGNI = 853;;
+let _PPC_INS_QVESPLATI = 854;;
+let _PPC_INS_QVFABS = 855;;
+let _PPC_INS_QVFADD = 856;;
+let _PPC_INS_QVFADDS = 857;;
+let _PPC_INS_QVFAND = 858;;
+let _PPC_INS_QVFANDC = 859;;
+let _PPC_INS_QVFCFID = 860;;
+let _PPC_INS_QVFCFIDS = 861;;
+let _PPC_INS_QVFCFIDU = 862;;
+let _PPC_INS_QVFCFIDUS = 863;;
+let _PPC_INS_QVFCLR = 864;;
+let _PPC_INS_QVFCMPEQ = 865;;
+let _PPC_INS_QVFCMPGT = 866;;
+let _PPC_INS_QVFCMPLT = 867;;
+let _PPC_INS_QVFCPSGN = 868;;
+let _PPC_INS_QVFCTFB = 869;;
+let _PPC_INS_QVFCTID = 870;;
+let _PPC_INS_QVFCTIDU = 871;;
+let _PPC_INS_QVFCTIDUZ = 872;;
+let _PPC_INS_QVFCTIDZ = 873;;
+let _PPC_INS_QVFCTIW = 874;;
+let _PPC_INS_QVFCTIWU = 875;;
+let _PPC_INS_QVFCTIWUZ = 876;;
+let _PPC_INS_QVFCTIWZ = 877;;
+let _PPC_INS_QVFEQU = 878;;
+let _PPC_INS_QVFLOGICAL = 879;;
+let _PPC_INS_QVFMADD = 880;;
+let _PPC_INS_QVFMADDS = 881;;
+let _PPC_INS_QVFMR = 882;;
+let _PPC_INS_QVFMSUB = 883;;
+let _PPC_INS_QVFMSUBS = 884;;
+let _PPC_INS_QVFMUL = 885;;
+let _PPC_INS_QVFMULS = 886;;
+let _PPC_INS_QVFNABS = 887;;
+let _PPC_INS_QVFNAND = 888;;
+let _PPC_INS_QVFNEG = 889;;
+let _PPC_INS_QVFNMADD = 890;;
+let _PPC_INS_QVFNMADDS = 891;;
+let _PPC_INS_QVFNMSUB = 892;;
+let _PPC_INS_QVFNMSUBS = 893;;
+let _PPC_INS_QVFNOR = 894;;
+let _PPC_INS_QVFNOT = 895;;
+let _PPC_INS_QVFOR = 896;;
+let _PPC_INS_QVFORC = 897;;
+let _PPC_INS_QVFPERM = 898;;
+let _PPC_INS_QVFRE = 899;;
+let _PPC_INS_QVFRES = 900;;
+let _PPC_INS_QVFRIM = 901;;
+let _PPC_INS_QVFRIN = 902;;
+let _PPC_INS_QVFRIP = 903;;
+let _PPC_INS_QVFRIZ = 904;;
+let _PPC_INS_QVFRSP = 905;;
+let _PPC_INS_QVFRSQRTE = 906;;
+let _PPC_INS_QVFRSQRTES = 907;;
+let _PPC_INS_QVFSEL = 908;;
+let _PPC_INS_QVFSET = 909;;
+let _PPC_INS_QVFSUB = 910;;
+let _PPC_INS_QVFSUBS = 911;;
+let _PPC_INS_QVFTSTNAN = 912;;
+let _PPC_INS_QVFXMADD = 913;;
+let _PPC_INS_QVFXMADDS = 914;;
+let _PPC_INS_QVFXMUL = 915;;
+let _PPC_INS_QVFXMULS = 916;;
+let _PPC_INS_QVFXOR = 917;;
+let _PPC_INS_QVFXXCPNMADD = 918;;
+let _PPC_INS_QVFXXCPNMADDS = 919;;
+let _PPC_INS_QVFXXMADD = 920;;
+let _PPC_INS_QVFXXMADDS = 921;;
+let _PPC_INS_QVFXXNPMADD = 922;;
+let _PPC_INS_QVFXXNPMADDS = 923;;
+let _PPC_INS_QVGPCI = 924;;
+let _PPC_INS_QVLFCDUX = 925;;
+let _PPC_INS_QVLFCDUXA = 926;;
+let _PPC_INS_QVLFCDX = 927;;
+let _PPC_INS_QVLFCDXA = 928;;
+let _PPC_INS_QVLFCSUX = 929;;
+let _PPC_INS_QVLFCSUXA = 930;;
+let _PPC_INS_QVLFCSX = 931;;
+let _PPC_INS_QVLFCSXA = 932;;
+let _PPC_INS_QVLFDUX = 933;;
+let _PPC_INS_QVLFDUXA = 934;;
+let _PPC_INS_QVLFDX = 935;;
+let _PPC_INS_QVLFDXA = 936;;
+let _PPC_INS_QVLFIWAX = 937;;
+let _PPC_INS_QVLFIWAXA = 938;;
+let _PPC_INS_QVLFIWZX = 939;;
+let _PPC_INS_QVLFIWZXA = 940;;
+let _PPC_INS_QVLFSUX = 941;;
+let _PPC_INS_QVLFSUXA = 942;;
+let _PPC_INS_QVLFSX = 943;;
+let _PPC_INS_QVLFSXA = 944;;
+let _PPC_INS_QVLPCLDX = 945;;
+let _PPC_INS_QVLPCLSX = 946;;
+let _PPC_INS_QVLPCRDX = 947;;
+let _PPC_INS_QVLPCRSX = 948;;
+let _PPC_INS_QVSTFCDUX = 949;;
+let _PPC_INS_QVSTFCDUXA = 950;;
+let _PPC_INS_QVSTFCDUXI = 951;;
+let _PPC_INS_QVSTFCDUXIA = 952;;
+let _PPC_INS_QVSTFCDX = 953;;
+let _PPC_INS_QVSTFCDXA = 954;;
+let _PPC_INS_QVSTFCDXI = 955;;
+let _PPC_INS_QVSTFCDXIA = 956;;
+let _PPC_INS_QVSTFCSUX = 957;;
+let _PPC_INS_QVSTFCSUXA = 958;;
+let _PPC_INS_QVSTFCSUXI = 959;;
+let _PPC_INS_QVSTFCSUXIA = 960;;
+let _PPC_INS_QVSTFCSX = 961;;
+let _PPC_INS_QVSTFCSXA = 962;;
+let _PPC_INS_QVSTFCSXI = 963;;
+let _PPC_INS_QVSTFCSXIA = 964;;
+let _PPC_INS_QVSTFDUX = 965;;
+let _PPC_INS_QVSTFDUXA = 966;;
+let _PPC_INS_QVSTFDUXI = 967;;
+let _PPC_INS_QVSTFDUXIA = 968;;
+let _PPC_INS_QVSTFDX = 969;;
+let _PPC_INS_QVSTFDXA = 970;;
+let _PPC_INS_QVSTFDXI = 971;;
+let _PPC_INS_QVSTFDXIA = 972;;
+let _PPC_INS_QVSTFIWX = 973;;
+let _PPC_INS_QVSTFIWXA = 974;;
+let _PPC_INS_QVSTFSUX = 975;;
+let _PPC_INS_QVSTFSUXA = 976;;
+let _PPC_INS_QVSTFSUXI = 977;;
+let _PPC_INS_QVSTFSUXIA = 978;;
+let _PPC_INS_QVSTFSX = 979;;
+let _PPC_INS_QVSTFSXA = 980;;
+let _PPC_INS_QVSTFSXI = 981;;
+let _PPC_INS_QVSTFSXIA = 982;;
+let _PPC_INS_RFCI = 983;;
+let _PPC_INS_RFDI = 984;;
+let _PPC_INS_RFEBB = 985;;
+let _PPC_INS_RFI = 986;;
+let _PPC_INS_RFID = 987;;
+let _PPC_INS_RFMCI = 988;;
+let _PPC_INS_RLDCL = 989;;
+let _PPC_INS_RLDCR = 990;;
+let _PPC_INS_RLDIC = 991;;
+let _PPC_INS_RLDICL = 992;;
+let _PPC_INS_RLDICR = 993;;
+let _PPC_INS_RLDIMI = 994;;
+let _PPC_INS_RLWIMI = 995;;
+let _PPC_INS_RLWINM = 996;;
+let _PPC_INS_RLWNM = 997;;
+let _PPC_INS_ROTLD = 998;;
+let _PPC_INS_ROTLDI = 999;;
+let _PPC_INS_ROTLW = 1000;;
+let _PPC_INS_ROTLWI = 1001;;
+let _PPC_INS_ROTRDI = 1002;;
+let _PPC_INS_ROTRWI = 1003;;
+let _PPC_INS_SC = 1004;;
+let _PPC_INS_SETB = 1005;;
+let _PPC_INS_SLBIA = 1006;;
+let _PPC_INS_SLBIE = 1007;;
+let _PPC_INS_SLBIEG = 1008;;
+let _PPC_INS_SLBMFEE = 1009;;
+let _PPC_INS_SLBMFEV = 1010;;
+let _PPC_INS_SLBMTE = 1011;;
+let _PPC_INS_SLBSYNC = 1012;;
+let _PPC_INS_SLD = 1013;;
+let _PPC_INS_SLDI = 1014;;
+let _PPC_INS_SLW = 1015;;
+let _PPC_INS_SLWI = 1016;;
+let _PPC_INS_SRAD = 1017;;
+let _PPC_INS_SRADI = 1018;;
+let _PPC_INS_SRAW = 1019;;
+let _PPC_INS_SRAWI = 1020;;
+let _PPC_INS_SRD = 1021;;
+let _PPC_INS_SRDI = 1022;;
+let _PPC_INS_SRW = 1023;;
+let _PPC_INS_SRWI = 1024;;
+let _PPC_INS_STB = 1025;;
+let _PPC_INS_STBCIX = 1026;;
+let _PPC_INS_STBCX = 1027;;
+let _PPC_INS_STBEPX = 1028;;
+let _PPC_INS_STBU = 1029;;
+let _PPC_INS_STBUX = 1030;;
+let _PPC_INS_STBX = 1031;;
+let _PPC_INS_STD = 1032;;
+let _PPC_INS_STDAT = 1033;;
+let _PPC_INS_STDBRX = 1034;;
+let _PPC_INS_STDCIX = 1035;;
+let _PPC_INS_STDCX = 1036;;
+let _PPC_INS_STDU = 1037;;
+let _PPC_INS_STDUX = 1038;;
+let _PPC_INS_STDX = 1039;;
+let _PPC_INS_STFD = 1040;;
+let _PPC_INS_STFDEPX = 1041;;
+let _PPC_INS_STFDU = 1042;;
+let _PPC_INS_STFDUX = 1043;;
+let _PPC_INS_STFDX = 1044;;
+let _PPC_INS_STFIWX = 1045;;
+let _PPC_INS_STFS = 1046;;
+let _PPC_INS_STFSU = 1047;;
+let _PPC_INS_STFSUX = 1048;;
+let _PPC_INS_STFSX = 1049;;
+let _PPC_INS_STH = 1050;;
+let _PPC_INS_STHBRX = 1051;;
+let _PPC_INS_STHCIX = 1052;;
+let _PPC_INS_STHCX = 1053;;
+let _PPC_INS_STHEPX = 1054;;
+let _PPC_INS_STHU = 1055;;
+let _PPC_INS_STHUX = 1056;;
+let _PPC_INS_STHX = 1057;;
+let _PPC_INS_STMW = 1058;;
+let _PPC_INS_STOP = 1059;;
+let _PPC_INS_STSWI = 1060;;
+let _PPC_INS_STVEBX = 1061;;
+let _PPC_INS_STVEHX = 1062;;
+let _PPC_INS_STVEWX = 1063;;
+let _PPC_INS_STVX = 1064;;
+let _PPC_INS_STVXL = 1065;;
+let _PPC_INS_STW = 1066;;
+let _PPC_INS_STWAT = 1067;;
+let _PPC_INS_STWBRX = 1068;;
+let _PPC_INS_STWCIX = 1069;;
+let _PPC_INS_STWCX = 1070;;
+let _PPC_INS_STWEPX = 1071;;
+let _PPC_INS_STWU = 1072;;
+let _PPC_INS_STWUX = 1073;;
+let _PPC_INS_STWX = 1074;;
+let _PPC_INS_STXSD = 1075;;
+let _PPC_INS_STXSDX = 1076;;
+let _PPC_INS_STXSIBX = 1077;;
+let _PPC_INS_STXSIHX = 1078;;
+let _PPC_INS_STXSIWX = 1079;;
+let _PPC_INS_STXSSP = 1080;;
+let _PPC_INS_STXSSPX = 1081;;
+let _PPC_INS_STXV = 1082;;
+let _PPC_INS_STXVB16X = 1083;;
+let _PPC_INS_STXVD2X = 1084;;
+let _PPC_INS_STXVH8X = 1085;;
+let _PPC_INS_STXVL = 1086;;
+let _PPC_INS_STXVLL = 1087;;
+let _PPC_INS_STXVW4X = 1088;;
+let _PPC_INS_STXVX = 1089;;
+let _PPC_INS_SUB = 1090;;
+let _PPC_INS_SUBC = 1091;;
+let _PPC_INS_SUBF = 1092;;
+let _PPC_INS_SUBFC = 1093;;
+let _PPC_INS_SUBFE = 1094;;
+let _PPC_INS_SUBFIC = 1095;;
+let _PPC_INS_SUBFME = 1096;;
+let _PPC_INS_SUBFZE = 1097;;
+let _PPC_INS_SUBI = 1098;;
+let _PPC_INS_SUBIC = 1099;;
+let _PPC_INS_SUBIS = 1100;;
+let _PPC_INS_SUBPCIS = 1101;;
+let _PPC_INS_SYNC = 1102;;
+let _PPC_INS_TABORT = 1103;;
+let _PPC_INS_TABORTDC = 1104;;
+let _PPC_INS_TABORTDCI = 1105;;
+let _PPC_INS_TABORTWC = 1106;;
+let _PPC_INS_TABORTWCI = 1107;;
+let _PPC_INS_TBEGIN = 1108;;
+let _PPC_INS_TCHECK = 1109;;
+let _PPC_INS_TD = 1110;;
+let _PPC_INS_TDEQ = 1111;;
+let _PPC_INS_TDEQI = 1112;;
+let _PPC_INS_TDGE = 1113;;
+let _PPC_INS_TDGEI = 1114;;
+let _PPC_INS_TDGT = 1115;;
+let _PPC_INS_TDGTI = 1116;;
+let _PPC_INS_TDI = 1117;;
+let _PPC_INS_TDLE = 1118;;
+let _PPC_INS_TDLEI = 1119;;
+let _PPC_INS_TDLGE = 1120;;
+let _PPC_INS_TDLGEI = 1121;;
+let _PPC_INS_TDLGT = 1122;;
+let _PPC_INS_TDLGTI = 1123;;
+let _PPC_INS_TDLLE = 1124;;
+let _PPC_INS_TDLLEI = 1125;;
+let _PPC_INS_TDLLT = 1126;;
+let _PPC_INS_TDLLTI = 1127;;
+let _PPC_INS_TDLNG = 1128;;
+let _PPC_INS_TDLNGI = 1129;;
+let _PPC_INS_TDLNL = 1130;;
+let _PPC_INS_TDLNLI = 1131;;
+let _PPC_INS_TDLT = 1132;;
+let _PPC_INS_TDLTI = 1133;;
+let _PPC_INS_TDNE = 1134;;
+let _PPC_INS_TDNEI = 1135;;
+let _PPC_INS_TDNG = 1136;;
+let _PPC_INS_TDNGI = 1137;;
+let _PPC_INS_TDNL = 1138;;
+let _PPC_INS_TDNLI = 1139;;
+let _PPC_INS_TDU = 1140;;
+let _PPC_INS_TDUI = 1141;;
+let _PPC_INS_TEND = 1142;;
+let _PPC_INS_TLBIA = 1143;;
+let _PPC_INS_TLBIE = 1144;;
+let _PPC_INS_TLBIEL = 1145;;
+let _PPC_INS_TLBIVAX = 1146;;
+let _PPC_INS_TLBLD = 1147;;
+let _PPC_INS_TLBLI = 1148;;
+let _PPC_INS_TLBRE = 1149;;
+let _PPC_INS_TLBREHI = 1150;;
+let _PPC_INS_TLBRELO = 1151;;
+let _PPC_INS_TLBSX = 1152;;
+let _PPC_INS_TLBSYNC = 1153;;
+let _PPC_INS_TLBWE = 1154;;
+let _PPC_INS_TLBWEHI = 1155;;
+let _PPC_INS_TLBWELO = 1156;;
+let _PPC_INS_TRAP = 1157;;
+let _PPC_INS_TRECHKPT = 1158;;
+let _PPC_INS_TRECLAIM = 1159;;
+let _PPC_INS_TSR = 1160;;
+let _PPC_INS_TW = 1161;;
+let _PPC_INS_TWEQ = 1162;;
+let _PPC_INS_TWEQI = 1163;;
+let _PPC_INS_TWGE = 1164;;
+let _PPC_INS_TWGEI = 1165;;
+let _PPC_INS_TWGT = 1166;;
+let _PPC_INS_TWGTI = 1167;;
+let _PPC_INS_TWI = 1168;;
+let _PPC_INS_TWLE = 1169;;
+let _PPC_INS_TWLEI = 1170;;
+let _PPC_INS_TWLGE = 1171;;
+let _PPC_INS_TWLGEI = 1172;;
+let _PPC_INS_TWLGT = 1173;;
+let _PPC_INS_TWLGTI = 1174;;
+let _PPC_INS_TWLLE = 1175;;
+let _PPC_INS_TWLLEI = 1176;;
+let _PPC_INS_TWLLT = 1177;;
+let _PPC_INS_TWLLTI = 1178;;
+let _PPC_INS_TWLNG = 1179;;
+let _PPC_INS_TWLNGI = 1180;;
+let _PPC_INS_TWLNL = 1181;;
+let _PPC_INS_TWLNLI = 1182;;
+let _PPC_INS_TWLT = 1183;;
+let _PPC_INS_TWLTI = 1184;;
+let _PPC_INS_TWNE = 1185;;
+let _PPC_INS_TWNEI = 1186;;
+let _PPC_INS_TWNG = 1187;;
+let _PPC_INS_TWNGI = 1188;;
+let _PPC_INS_TWNL = 1189;;
+let _PPC_INS_TWNLI = 1190;;
+let _PPC_INS_TWU = 1191;;
+let _PPC_INS_TWUI = 1192;;
+let _PPC_INS_VABSDUB = 1193;;
+let _PPC_INS_VABSDUH = 1194;;
+let _PPC_INS_VABSDUW = 1195;;
+let _PPC_INS_VADDCUQ = 1196;;
+let _PPC_INS_VADDCUW = 1197;;
+let _PPC_INS_VADDECUQ = 1198;;
+let _PPC_INS_VADDEUQM = 1199;;
+let _PPC_INS_VADDFP = 1200;;
+let _PPC_INS_VADDSBS = 1201;;
+let _PPC_INS_VADDSHS = 1202;;
+let _PPC_INS_VADDSWS = 1203;;
+let _PPC_INS_VADDUBM = 1204;;
+let _PPC_INS_VADDUBS = 1205;;
+let _PPC_INS_VADDUDM = 1206;;
+let _PPC_INS_VADDUHM = 1207;;
+let _PPC_INS_VADDUHS = 1208;;
+let _PPC_INS_VADDUQM = 1209;;
+let _PPC_INS_VADDUWM = 1210;;
+let _PPC_INS_VADDUWS = 1211;;
+let _PPC_INS_VAND = 1212;;
+let _PPC_INS_VANDC = 1213;;
+let _PPC_INS_VAVGSB = 1214;;
+let _PPC_INS_VAVGSH = 1215;;
+let _PPC_INS_VAVGSW = 1216;;
+let _PPC_INS_VAVGUB = 1217;;
+let _PPC_INS_VAVGUH = 1218;;
+let _PPC_INS_VAVGUW = 1219;;
+let _PPC_INS_VBPERMD = 1220;;
+let _PPC_INS_VBPERMQ = 1221;;
+let _PPC_INS_VCFSX = 1222;;
+let _PPC_INS_VCFUX = 1223;;
+let _PPC_INS_VCIPHER = 1224;;
+let _PPC_INS_VCIPHERLAST = 1225;;
+let _PPC_INS_VCLZB = 1226;;
+let _PPC_INS_VCLZD = 1227;;
+let _PPC_INS_VCLZH = 1228;;
+let _PPC_INS_VCLZLSBB = 1229;;
+let _PPC_INS_VCLZW = 1230;;
+let _PPC_INS_VCMPBFP = 1231;;
+let _PPC_INS_VCMPEQFP = 1232;;
+let _PPC_INS_VCMPEQUB = 1233;;
+let _PPC_INS_VCMPEQUD = 1234;;
+let _PPC_INS_VCMPEQUH = 1235;;
+let _PPC_INS_VCMPEQUW = 1236;;
+let _PPC_INS_VCMPGEFP = 1237;;
+let _PPC_INS_VCMPGTFP = 1238;;
+let _PPC_INS_VCMPGTSB = 1239;;
+let _PPC_INS_VCMPGTSD = 1240;;
+let _PPC_INS_VCMPGTSH = 1241;;
+let _PPC_INS_VCMPGTSW = 1242;;
+let _PPC_INS_VCMPGTUB = 1243;;
+let _PPC_INS_VCMPGTUD = 1244;;
+let _PPC_INS_VCMPGTUH = 1245;;
+let _PPC_INS_VCMPGTUW = 1246;;
+let _PPC_INS_VCMPNEB = 1247;;
+let _PPC_INS_VCMPNEH = 1248;;
+let _PPC_INS_VCMPNEW = 1249;;
+let _PPC_INS_VCMPNEZB = 1250;;
+let _PPC_INS_VCMPNEZH = 1251;;
+let _PPC_INS_VCMPNEZW = 1252;;
+let _PPC_INS_VCTSXS = 1253;;
+let _PPC_INS_VCTUXS = 1254;;
+let _PPC_INS_VCTZB = 1255;;
+let _PPC_INS_VCTZD = 1256;;
+let _PPC_INS_VCTZH = 1257;;
+let _PPC_INS_VCTZLSBB = 1258;;
+let _PPC_INS_VCTZW = 1259;;
+let _PPC_INS_VEQV = 1260;;
+let _PPC_INS_VEXPTEFP = 1261;;
+let _PPC_INS_VEXTRACTD = 1262;;
+let _PPC_INS_VEXTRACTUB = 1263;;
+let _PPC_INS_VEXTRACTUH = 1264;;
+let _PPC_INS_VEXTRACTUW = 1265;;
+let _PPC_INS_VEXTSB2D = 1266;;
+let _PPC_INS_VEXTSB2W = 1267;;
+let _PPC_INS_VEXTSH2D = 1268;;
+let _PPC_INS_VEXTSH2W = 1269;;
+let _PPC_INS_VEXTSW2D = 1270;;
+let _PPC_INS_VEXTUBLX = 1271;;
+let _PPC_INS_VEXTUBRX = 1272;;
+let _PPC_INS_VEXTUHLX = 1273;;
+let _PPC_INS_VEXTUHRX = 1274;;
+let _PPC_INS_VEXTUWLX = 1275;;
+let _PPC_INS_VEXTUWRX = 1276;;
+let _PPC_INS_VGBBD = 1277;;
+let _PPC_INS_VINSERTB = 1278;;
+let _PPC_INS_VINSERTD = 1279;;
+let _PPC_INS_VINSERTH = 1280;;
+let _PPC_INS_VINSERTW = 1281;;
+let _PPC_INS_VLOGEFP = 1282;;
+let _PPC_INS_VMADDFP = 1283;;
+let _PPC_INS_VMAXFP = 1284;;
+let _PPC_INS_VMAXSB = 1285;;
+let _PPC_INS_VMAXSD = 1286;;
+let _PPC_INS_VMAXSH = 1287;;
+let _PPC_INS_VMAXSW = 1288;;
+let _PPC_INS_VMAXUB = 1289;;
+let _PPC_INS_VMAXUD = 1290;;
+let _PPC_INS_VMAXUH = 1291;;
+let _PPC_INS_VMAXUW = 1292;;
+let _PPC_INS_VMHADDSHS = 1293;;
+let _PPC_INS_VMHRADDSHS = 1294;;
+let _PPC_INS_VMINFP = 1295;;
+let _PPC_INS_VMINSB = 1296;;
+let _PPC_INS_VMINSD = 1297;;
+let _PPC_INS_VMINSH = 1298;;
+let _PPC_INS_VMINSW = 1299;;
+let _PPC_INS_VMINUB = 1300;;
+let _PPC_INS_VMINUD = 1301;;
+let _PPC_INS_VMINUH = 1302;;
+let _PPC_INS_VMINUW = 1303;;
+let _PPC_INS_VMLADDUHM = 1304;;
+let _PPC_INS_VMR = 1305;;
+let _PPC_INS_VMRGEW = 1306;;
+let _PPC_INS_VMRGHB = 1307;;
+let _PPC_INS_VMRGHH = 1308;;
+let _PPC_INS_VMRGHW = 1309;;
+let _PPC_INS_VMRGLB = 1310;;
+let _PPC_INS_VMRGLH = 1311;;
+let _PPC_INS_VMRGLW = 1312;;
+let _PPC_INS_VMRGOW = 1313;;
+let _PPC_INS_VMSUMMBM = 1314;;
+let _PPC_INS_VMSUMSHM = 1315;;
+let _PPC_INS_VMSUMSHS = 1316;;
+let _PPC_INS_VMSUMUBM = 1317;;
+let _PPC_INS_VMSUMUHM = 1318;;
+let _PPC_INS_VMSUMUHS = 1319;;
+let _PPC_INS_VMUL10CUQ = 1320;;
+let _PPC_INS_VMUL10ECUQ = 1321;;
+let _PPC_INS_VMUL10EUQ = 1322;;
+let _PPC_INS_VMUL10UQ = 1323;;
+let _PPC_INS_VMULESB = 1324;;
+let _PPC_INS_VMULESH = 1325;;
+let _PPC_INS_VMULESW = 1326;;
+let _PPC_INS_VMULEUB = 1327;;
+let _PPC_INS_VMULEUH = 1328;;
+let _PPC_INS_VMULEUW = 1329;;
+let _PPC_INS_VMULOSB = 1330;;
+let _PPC_INS_VMULOSH = 1331;;
+let _PPC_INS_VMULOSW = 1332;;
+let _PPC_INS_VMULOUB = 1333;;
+let _PPC_INS_VMULOUH = 1334;;
+let _PPC_INS_VMULOUW = 1335;;
+let _PPC_INS_VMULUWM = 1336;;
+let _PPC_INS_VNAND = 1337;;
+let _PPC_INS_VNCIPHER = 1338;;
+let _PPC_INS_VNCIPHERLAST = 1339;;
+let _PPC_INS_VNEGD = 1340;;
+let _PPC_INS_VNEGW = 1341;;
+let _PPC_INS_VNMSUBFP = 1342;;
+let _PPC_INS_VNOR = 1343;;
+let _PPC_INS_VNOT = 1344;;
+let _PPC_INS_VOR = 1345;;
+let _PPC_INS_VORC = 1346;;
+let _PPC_INS_VPERM = 1347;;
+let _PPC_INS_VPERMR = 1348;;
+let _PPC_INS_VPERMXOR = 1349;;
+let _PPC_INS_VPKPX = 1350;;
+let _PPC_INS_VPKSDSS = 1351;;
+let _PPC_INS_VPKSDUS = 1352;;
+let _PPC_INS_VPKSHSS = 1353;;
+let _PPC_INS_VPKSHUS = 1354;;
+let _PPC_INS_VPKSWSS = 1355;;
+let _PPC_INS_VPKSWUS = 1356;;
+let _PPC_INS_VPKUDUM = 1357;;
+let _PPC_INS_VPKUDUS = 1358;;
+let _PPC_INS_VPKUHUM = 1359;;
+let _PPC_INS_VPKUHUS = 1360;;
+let _PPC_INS_VPKUWUM = 1361;;
+let _PPC_INS_VPKUWUS = 1362;;
+let _PPC_INS_VPMSUMB = 1363;;
+let _PPC_INS_VPMSUMD = 1364;;
+let _PPC_INS_VPMSUMH = 1365;;
+let _PPC_INS_VPMSUMW = 1366;;
+let _PPC_INS_VPOPCNTB = 1367;;
+let _PPC_INS_VPOPCNTD = 1368;;
+let _PPC_INS_VPOPCNTH = 1369;;
+let _PPC_INS_VPOPCNTW = 1370;;
+let _PPC_INS_VPRTYBD = 1371;;
+let _PPC_INS_VPRTYBQ = 1372;;
+let _PPC_INS_VPRTYBW = 1373;;
+let _PPC_INS_VREFP = 1374;;
+let _PPC_INS_VRFIM = 1375;;
+let _PPC_INS_VRFIN = 1376;;
+let _PPC_INS_VRFIP = 1377;;
+let _PPC_INS_VRFIZ = 1378;;
+let _PPC_INS_VRLB = 1379;;
+let _PPC_INS_VRLD = 1380;;
+let _PPC_INS_VRLDMI = 1381;;
+let _PPC_INS_VRLDNM = 1382;;
+let _PPC_INS_VRLH = 1383;;
+let _PPC_INS_VRLW = 1384;;
+let _PPC_INS_VRLWMI = 1385;;
+let _PPC_INS_VRLWNM = 1386;;
+let _PPC_INS_VRSQRTEFP = 1387;;
+let _PPC_INS_VSBOX = 1388;;
+let _PPC_INS_VSEL = 1389;;
+let _PPC_INS_VSHASIGMAD = 1390;;
+let _PPC_INS_VSHASIGMAW = 1391;;
+let _PPC_INS_VSL = 1392;;
+let _PPC_INS_VSLB = 1393;;
+let _PPC_INS_VSLD = 1394;;
+let _PPC_INS_VSLDOI = 1395;;
+let _PPC_INS_VSLH = 1396;;
+let _PPC_INS_VSLO = 1397;;
+let _PPC_INS_VSLV = 1398;;
+let _PPC_INS_VSLW = 1399;;
+let _PPC_INS_VSPLTB = 1400;;
+let _PPC_INS_VSPLTH = 1401;;
+let _PPC_INS_VSPLTISB = 1402;;
+let _PPC_INS_VSPLTISH = 1403;;
+let _PPC_INS_VSPLTISW = 1404;;
+let _PPC_INS_VSPLTW = 1405;;
+let _PPC_INS_VSR = 1406;;
+let _PPC_INS_VSRAB = 1407;;
+let _PPC_INS_VSRAD = 1408;;
+let _PPC_INS_VSRAH = 1409;;
+let _PPC_INS_VSRAW = 1410;;
+let _PPC_INS_VSRB = 1411;;
+let _PPC_INS_VSRD = 1412;;
+let _PPC_INS_VSRH = 1413;;
+let _PPC_INS_VSRO = 1414;;
+let _PPC_INS_VSRV = 1415;;
+let _PPC_INS_VSRW = 1416;;
+let _PPC_INS_VSUBCUQ = 1417;;
+let _PPC_INS_VSUBCUW = 1418;;
+let _PPC_INS_VSUBECUQ = 1419;;
+let _PPC_INS_VSUBEUQM = 1420;;
+let _PPC_INS_VSUBFP = 1421;;
+let _PPC_INS_VSUBSBS = 1422;;
+let _PPC_INS_VSUBSHS = 1423;;
+let _PPC_INS_VSUBSWS = 1424;;
+let _PPC_INS_VSUBUBM = 1425;;
+let _PPC_INS_VSUBUBS = 1426;;
+let _PPC_INS_VSUBUDM = 1427;;
+let _PPC_INS_VSUBUHM = 1428;;
+let _PPC_INS_VSUBUHS = 1429;;
+let _PPC_INS_VSUBUQM = 1430;;
+let _PPC_INS_VSUBUWM = 1431;;
+let _PPC_INS_VSUBUWS = 1432;;
+let _PPC_INS_VSUM2SWS = 1433;;
+let _PPC_INS_VSUM4SBS = 1434;;
+let _PPC_INS_VSUM4SHS = 1435;;
+let _PPC_INS_VSUM4UBS = 1436;;
+let _PPC_INS_VSUMSWS = 1437;;
+let _PPC_INS_VUPKHPX = 1438;;
+let _PPC_INS_VUPKHSB = 1439;;
+let _PPC_INS_VUPKHSH = 1440;;
+let _PPC_INS_VUPKHSW = 1441;;
+let _PPC_INS_VUPKLPX = 1442;;
+let _PPC_INS_VUPKLSB = 1443;;
+let _PPC_INS_VUPKLSH = 1444;;
+let _PPC_INS_VUPKLSW = 1445;;
+let _PPC_INS_VXOR = 1446;;
+let _PPC_INS_WAIT = 1447;;
+let _PPC_INS_WAITIMPL = 1448;;
+let _PPC_INS_WAITRSV = 1449;;
+let _PPC_INS_WRTEE = 1450;;
+let _PPC_INS_WRTEEI = 1451;;
+let _PPC_INS_XNOP = 1452;;
+let _PPC_INS_XOR = 1453;;
+let _PPC_INS_XORI = 1454;;
+let _PPC_INS_XORIS = 1455;;
+let _PPC_INS_XSABSDP = 1456;;
+let _PPC_INS_XSABSQP = 1457;;
+let _PPC_INS_XSADDDP = 1458;;
+let _PPC_INS_XSADDQP = 1459;;
+let _PPC_INS_XSADDQPO = 1460;;
+let _PPC_INS_XSADDSP = 1461;;
+let _PPC_INS_XSCMPEQDP = 1462;;
+let _PPC_INS_XSCMPEXPDP = 1463;;
+let _PPC_INS_XSCMPEXPQP = 1464;;
+let _PPC_INS_XSCMPGEDP = 1465;;
+let _PPC_INS_XSCMPGTDP = 1466;;
+let _PPC_INS_XSCMPODP = 1467;;
+let _PPC_INS_XSCMPOQP = 1468;;
+let _PPC_INS_XSCMPUDP = 1469;;
+let _PPC_INS_XSCMPUQP = 1470;;
+let _PPC_INS_XSCPSGNDP = 1471;;
+let _PPC_INS_XSCPSGNQP = 1472;;
+let _PPC_INS_XSCVDPHP = 1473;;
+let _PPC_INS_XSCVDPQP = 1474;;
+let _PPC_INS_XSCVDPSP = 1475;;
+let _PPC_INS_XSCVDPSPN = 1476;;
+let _PPC_INS_XSCVDPSXDS = 1477;;
+let _PPC_INS_XSCVDPSXWS = 1478;;
+let _PPC_INS_XSCVDPUXDS = 1479;;
+let _PPC_INS_XSCVDPUXWS = 1480;;
+let _PPC_INS_XSCVHPDP = 1481;;
+let _PPC_INS_XSCVQPDP = 1482;;
+let _PPC_INS_XSCVQPDPO = 1483;;
+let _PPC_INS_XSCVQPSDZ = 1484;;
+let _PPC_INS_XSCVQPSWZ = 1485;;
+let _PPC_INS_XSCVQPUDZ = 1486;;
+let _PPC_INS_XSCVQPUWZ = 1487;;
+let _PPC_INS_XSCVSDQP = 1488;;
+let _PPC_INS_XSCVSPDP = 1489;;
+let _PPC_INS_XSCVSPDPN = 1490;;
+let _PPC_INS_XSCVSXDDP = 1491;;
+let _PPC_INS_XSCVSXDSP = 1492;;
+let _PPC_INS_XSCVUDQP = 1493;;
+let _PPC_INS_XSCVUXDDP = 1494;;
+let _PPC_INS_XSCVUXDSP = 1495;;
+let _PPC_INS_XSDIVDP = 1496;;
+let _PPC_INS_XSDIVQP = 1497;;
+let _PPC_INS_XSDIVQPO = 1498;;
+let _PPC_INS_XSDIVSP = 1499;;
+let _PPC_INS_XSIEXPDP = 1500;;
+let _PPC_INS_XSIEXPQP = 1501;;
+let _PPC_INS_XSMADDADP = 1502;;
+let _PPC_INS_XSMADDASP = 1503;;
+let _PPC_INS_XSMADDMDP = 1504;;
+let _PPC_INS_XSMADDMSP = 1505;;
+let _PPC_INS_XSMADDQP = 1506;;
+let _PPC_INS_XSMADDQPO = 1507;;
+let _PPC_INS_XSMAXCDP = 1508;;
+let _PPC_INS_XSMAXDP = 1509;;
+let _PPC_INS_XSMAXJDP = 1510;;
+let _PPC_INS_XSMINCDP = 1511;;
+let _PPC_INS_XSMINDP = 1512;;
+let _PPC_INS_XSMINJDP = 1513;;
+let _PPC_INS_XSMSUBADP = 1514;;
+let _PPC_INS_XSMSUBASP = 1515;;
+let _PPC_INS_XSMSUBMDP = 1516;;
+let _PPC_INS_XSMSUBMSP = 1517;;
+let _PPC_INS_XSMSUBQP = 1518;;
+let _PPC_INS_XSMSUBQPO = 1519;;
+let _PPC_INS_XSMULDP = 1520;;
+let _PPC_INS_XSMULQP = 1521;;
+let _PPC_INS_XSMULQPO = 1522;;
+let _PPC_INS_XSMULSP = 1523;;
+let _PPC_INS_XSNABSDP = 1524;;
+let _PPC_INS_XSNABSQP = 1525;;
+let _PPC_INS_XSNEGDP = 1526;;
+let _PPC_INS_XSNEGQP = 1527;;
+let _PPC_INS_XSNMADDADP = 1528;;
+let _PPC_INS_XSNMADDASP = 1529;;
+let _PPC_INS_XSNMADDMDP = 1530;;
+let _PPC_INS_XSNMADDMSP = 1531;;
+let _PPC_INS_XSNMADDQP = 1532;;
+let _PPC_INS_XSNMADDQPO = 1533;;
+let _PPC_INS_XSNMSUBADP = 1534;;
+let _PPC_INS_XSNMSUBASP = 1535;;
+let _PPC_INS_XSNMSUBMDP = 1536;;
+let _PPC_INS_XSNMSUBMSP = 1537;;
+let _PPC_INS_XSNMSUBQP = 1538;;
+let _PPC_INS_XSNMSUBQPO = 1539;;
+let _PPC_INS_XSRDPI = 1540;;
+let _PPC_INS_XSRDPIC = 1541;;
+let _PPC_INS_XSRDPIM = 1542;;
+let _PPC_INS_XSRDPIP = 1543;;
+let _PPC_INS_XSRDPIZ = 1544;;
+let _PPC_INS_XSREDP = 1545;;
+let _PPC_INS_XSRESP = 1546;;
+let _PPC_INS_XSRQPI = 1547;;
+let _PPC_INS_XSRQPIX = 1548;;
+let _PPC_INS_XSRQPXP = 1549;;
+let _PPC_INS_XSRSP = 1550;;
+let _PPC_INS_XSRSQRTEDP = 1551;;
+let _PPC_INS_XSRSQRTESP = 1552;;
+let _PPC_INS_XSSQRTDP = 1553;;
+let _PPC_INS_XSSQRTQP = 1554;;
+let _PPC_INS_XSSQRTQPO = 1555;;
+let _PPC_INS_XSSQRTSP = 1556;;
+let _PPC_INS_XSSUBDP = 1557;;
+let _PPC_INS_XSSUBQP = 1558;;
+let _PPC_INS_XSSUBQPO = 1559;;
+let _PPC_INS_XSSUBSP = 1560;;
+let _PPC_INS_XSTDIVDP = 1561;;
+let _PPC_INS_XSTSQRTDP = 1562;;
+let _PPC_INS_XSTSTDCDP = 1563;;
+let _PPC_INS_XSTSTDCQP = 1564;;
+let _PPC_INS_XSTSTDCSP = 1565;;
+let _PPC_INS_XSXEXPDP = 1566;;
+let _PPC_INS_XSXEXPQP = 1567;;
+let _PPC_INS_XSXSIGDP = 1568;;
+let _PPC_INS_XSXSIGQP = 1569;;
+let _PPC_INS_XVABSDP = 1570;;
+let _PPC_INS_XVABSSP = 1571;;
+let _PPC_INS_XVADDDP = 1572;;
+let _PPC_INS_XVADDSP = 1573;;
+let _PPC_INS_XVCMPEQDP = 1574;;
+let _PPC_INS_XVCMPEQSP = 1575;;
+let _PPC_INS_XVCMPGEDP = 1576;;
+let _PPC_INS_XVCMPGESP = 1577;;
+let _PPC_INS_XVCMPGTDP = 1578;;
+let _PPC_INS_XVCMPGTSP = 1579;;
+let _PPC_INS_XVCPSGNDP = 1580;;
+let _PPC_INS_XVCPSGNSP = 1581;;
+let _PPC_INS_XVCVDPSP = 1582;;
+let _PPC_INS_XVCVDPSXDS = 1583;;
+let _PPC_INS_XVCVDPSXWS = 1584;;
+let _PPC_INS_XVCVDPUXDS = 1585;;
+let _PPC_INS_XVCVDPUXWS = 1586;;
+let _PPC_INS_XVCVHPSP = 1587;;
+let _PPC_INS_XVCVSPDP = 1588;;
+let _PPC_INS_XVCVSPHP = 1589;;
+let _PPC_INS_XVCVSPSXDS = 1590;;
+let _PPC_INS_XVCVSPSXWS = 1591;;
+let _PPC_INS_XVCVSPUXDS = 1592;;
+let _PPC_INS_XVCVSPUXWS = 1593;;
+let _PPC_INS_XVCVSXDDP = 1594;;
+let _PPC_INS_XVCVSXDSP = 1595;;
+let _PPC_INS_XVCVSXWDP = 1596;;
+let _PPC_INS_XVCVSXWSP = 1597;;
+let _PPC_INS_XVCVUXDDP = 1598;;
+let _PPC_INS_XVCVUXDSP = 1599;;
+let _PPC_INS_XVCVUXWDP = 1600;;
+let _PPC_INS_XVCVUXWSP = 1601;;
+let _PPC_INS_XVDIVDP = 1602;;
+let _PPC_INS_XVDIVSP = 1603;;
+let _PPC_INS_XVIEXPDP = 1604;;
+let _PPC_INS_XVIEXPSP = 1605;;
+let _PPC_INS_XVMADDADP = 1606;;
+let _PPC_INS_XVMADDASP = 1607;;
+let _PPC_INS_XVMADDMDP = 1608;;
+let _PPC_INS_XVMADDMSP = 1609;;
+let _PPC_INS_XVMAXDP = 1610;;
+let _PPC_INS_XVMAXSP = 1611;;
+let _PPC_INS_XVMINDP = 1612;;
+let _PPC_INS_XVMINSP = 1613;;
+let _PPC_INS_XVMOVDP = 1614;;
+let _PPC_INS_XVMOVSP = 1615;;
+let _PPC_INS_XVMSUBADP = 1616;;
+let _PPC_INS_XVMSUBASP = 1617;;
+let _PPC_INS_XVMSUBMDP = 1618;;
+let _PPC_INS_XVMSUBMSP = 1619;;
+let _PPC_INS_XVMULDP = 1620;;
+let _PPC_INS_XVMULSP = 1621;;
+let _PPC_INS_XVNABSDP = 1622;;
+let _PPC_INS_XVNABSSP = 1623;;
+let _PPC_INS_XVNEGDP = 1624;;
+let _PPC_INS_XVNEGSP = 1625;;
+let _PPC_INS_XVNMADDADP = 1626;;
+let _PPC_INS_XVNMADDASP = 1627;;
+let _PPC_INS_XVNMADDMDP = 1628;;
+let _PPC_INS_XVNMADDMSP = 1629;;
+let _PPC_INS_XVNMSUBADP = 1630;;
+let _PPC_INS_XVNMSUBASP = 1631;;
+let _PPC_INS_XVNMSUBMDP = 1632;;
+let _PPC_INS_XVNMSUBMSP = 1633;;
+let _PPC_INS_XVRDPI = 1634;;
+let _PPC_INS_XVRDPIC = 1635;;
+let _PPC_INS_XVRDPIM = 1636;;
+let _PPC_INS_XVRDPIP = 1637;;
+let _PPC_INS_XVRDPIZ = 1638;;
+let _PPC_INS_XVREDP = 1639;;
+let _PPC_INS_XVRESP = 1640;;
+let _PPC_INS_XVRSPI = 1641;;
+let _PPC_INS_XVRSPIC = 1642;;
+let _PPC_INS_XVRSPIM = 1643;;
+let _PPC_INS_XVRSPIP = 1644;;
+let _PPC_INS_XVRSPIZ = 1645;;
+let _PPC_INS_XVRSQRTEDP = 1646;;
+let _PPC_INS_XVRSQRTESP = 1647;;
+let _PPC_INS_XVSQRTDP = 1648;;
+let _PPC_INS_XVSQRTSP = 1649;;
+let _PPC_INS_XVSUBDP = 1650;;
+let _PPC_INS_XVSUBSP = 1651;;
+let _PPC_INS_XVTDIVDP = 1652;;
+let _PPC_INS_XVTDIVSP = 1653;;
+let _PPC_INS_XVTSQRTDP = 1654;;
+let _PPC_INS_XVTSQRTSP = 1655;;
+let _PPC_INS_XVTSTDCDP = 1656;;
+let _PPC_INS_XVTSTDCSP = 1657;;
+let _PPC_INS_XVXEXPDP = 1658;;
+let _PPC_INS_XVXEXPSP = 1659;;
+let _PPC_INS_XVXSIGDP = 1660;;
+let _PPC_INS_XVXSIGSP = 1661;;
+let _PPC_INS_XXBRD = 1662;;
+let _PPC_INS_XXBRH = 1663;;
+let _PPC_INS_XXBRQ = 1664;;
+let _PPC_INS_XXBRW = 1665;;
+let _PPC_INS_XXEXTRACTUW = 1666;;
+let _PPC_INS_XXINSERTW = 1667;;
+let _PPC_INS_XXLAND = 1668;;
+let _PPC_INS_XXLANDC = 1669;;
+let _PPC_INS_XXLEQV = 1670;;
+let _PPC_INS_XXLNAND = 1671;;
+let _PPC_INS_XXLNOR = 1672;;
+let _PPC_INS_XXLOR = 1673;;
+let _PPC_INS_XXLORC = 1674;;
+let _PPC_INS_XXLXOR = 1675;;
+let _PPC_INS_XXMRGHD = 1676;;
+let _PPC_INS_XXMRGHW = 1677;;
+let _PPC_INS_XXMRGLD = 1678;;
+let _PPC_INS_XXMRGLW = 1679;;
+let _PPC_INS_XXPERM = 1680;;
+let _PPC_INS_XXPERMDI = 1681;;
+let _PPC_INS_XXPERMR = 1682;;
+let _PPC_INS_XXSEL = 1683;;
+let _PPC_INS_XXSLDWI = 1684;;
+let _PPC_INS_XXSPLTD = 1685;;
+let _PPC_INS_XXSPLTIB = 1686;;
+let _PPC_INS_XXSPLTW = 1687;;
+let _PPC_INS_XXSWAPD = 1688;;
+let _PPC_INS_ENDING = 1689;;
+
+let _PPC_GRP_INVALID = 0;;
+let _PPC_GRP_JUMP = 1;;
+let _PPC_GRP_ALTIVEC = 128;;
+let _PPC_GRP_MODE32 = 129;;
+let _PPC_GRP_MODE64 = 130;;
+let _PPC_GRP_BOOKE = 131;;
+let _PPC_GRP_NOTBOOKE = 132;;
+let _PPC_GRP_SPE = 133;;
+let _PPC_GRP_VSX = 134;;
+let _PPC_GRP_E500 = 135;;
+let _PPC_GRP_PPC4XX = 136;;
+let _PPC_GRP_PPC6XX = 137;;
+let _PPC_GRP_ICBT = 138;;
+let _PPC_GRP_P8ALTIVEC = 139;;
+let _PPC_GRP_P8VECTOR = 140;;
+let _PPC_GRP_QPX = 141;;
+let _PPC_GRP_ENDING = 142;;
diff --git a/capstone/bindings/ocaml/sparc.ml b/capstone/bindings/ocaml/sparc.ml
new file mode 100644
index 000000000..17df4b387
--- /dev/null
+++ b/capstone/bindings/ocaml/sparc.ml
@@ -0,0 +1,27 @@
+(* Capstone Disassembly Engine
+ * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Sparc_const
+
+type sparc_op_mem = {
+ base: int;
+ index: int;
+ disp: int;
+}
+
+type sparc_op_value =
+ | SPARC_OP_INVALID of int
+ | SPARC_OP_REG of int
+ | SPARC_OP_IMM of int
+ | SPARC_OP_MEM of sparc_op_mem
+
+type sparc_op = {
+ value: sparc_op_value;
+}
+
+type cs_sparc = {
+ cc: int;
+ hint: int;
+ operands: sparc_op array;
+}
+
diff --git a/capstone/bindings/ocaml/sparc_const.ml b/capstone/bindings/ocaml/sparc_const.ml
new file mode 100644
index 000000000..000dbfebd
--- /dev/null
+++ b/capstone/bindings/ocaml/sparc_const.ml
@@ -0,0 +1,429 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [sparc_const.ml] *)
+
+let _SPARC_CC_INVALID = 0;;
+let _SPARC_CC_ICC_A = 8+256;;
+let _SPARC_CC_ICC_N = 0+256;;
+let _SPARC_CC_ICC_NE = 9+256;;
+let _SPARC_CC_ICC_E = 1+256;;
+let _SPARC_CC_ICC_G = 10+256;;
+let _SPARC_CC_ICC_LE = 2+256;;
+let _SPARC_CC_ICC_GE = 11+256;;
+let _SPARC_CC_ICC_L = 3+256;;
+let _SPARC_CC_ICC_GU = 12+256;;
+let _SPARC_CC_ICC_LEU = 4+256;;
+let _SPARC_CC_ICC_CC = 13+256;;
+let _SPARC_CC_ICC_CS = 5+256;;
+let _SPARC_CC_ICC_POS = 14+256;;
+let _SPARC_CC_ICC_NEG = 6+256;;
+let _SPARC_CC_ICC_VC = 15+256;;
+let _SPARC_CC_ICC_VS = 7+256;;
+let _SPARC_CC_FCC_A = 8+16+256;;
+let _SPARC_CC_FCC_N = 0+16+256;;
+let _SPARC_CC_FCC_U = 7+16+256;;
+let _SPARC_CC_FCC_G = 6+16+256;;
+let _SPARC_CC_FCC_UG = 5+16+256;;
+let _SPARC_CC_FCC_L = 4+16+256;;
+let _SPARC_CC_FCC_UL = 3+16+256;;
+let _SPARC_CC_FCC_LG = 2+16+256;;
+let _SPARC_CC_FCC_NE = 1+16+256;;
+let _SPARC_CC_FCC_E = 9+16+256;;
+let _SPARC_CC_FCC_UE = 10+16+256;;
+let _SPARC_CC_FCC_GE = 11+16+256;;
+let _SPARC_CC_FCC_UGE = 12+16+256;;
+let _SPARC_CC_FCC_LE = 13+16+256;;
+let _SPARC_CC_FCC_ULE = 14+16+256;;
+let _SPARC_CC_FCC_O = 15+16+256;;
+
+let _SPARC_HINT_INVALID = 0;;
+let _SPARC_HINT_A = 1 lsl 0;;
+let _SPARC_HINT_PT = 1 lsl 1;;
+let _SPARC_HINT_PN = 1 lsl 2;;
+
+let _SPARC_OP_INVALID = 0;;
+let _SPARC_OP_REG = 1;;
+let _SPARC_OP_IMM = 2;;
+let _SPARC_OP_MEM = 3;;
+
+let _SPARC_REG_INVALID = 0;;
+let _SPARC_REG_F0 = 1;;
+let _SPARC_REG_F1 = 2;;
+let _SPARC_REG_F2 = 3;;
+let _SPARC_REG_F3 = 4;;
+let _SPARC_REG_F4 = 5;;
+let _SPARC_REG_F5 = 6;;
+let _SPARC_REG_F6 = 7;;
+let _SPARC_REG_F7 = 8;;
+let _SPARC_REG_F8 = 9;;
+let _SPARC_REG_F9 = 10;;
+let _SPARC_REG_F10 = 11;;
+let _SPARC_REG_F11 = 12;;
+let _SPARC_REG_F12 = 13;;
+let _SPARC_REG_F13 = 14;;
+let _SPARC_REG_F14 = 15;;
+let _SPARC_REG_F15 = 16;;
+let _SPARC_REG_F16 = 17;;
+let _SPARC_REG_F17 = 18;;
+let _SPARC_REG_F18 = 19;;
+let _SPARC_REG_F19 = 20;;
+let _SPARC_REG_F20 = 21;;
+let _SPARC_REG_F21 = 22;;
+let _SPARC_REG_F22 = 23;;
+let _SPARC_REG_F23 = 24;;
+let _SPARC_REG_F24 = 25;;
+let _SPARC_REG_F25 = 26;;
+let _SPARC_REG_F26 = 27;;
+let _SPARC_REG_F27 = 28;;
+let _SPARC_REG_F28 = 29;;
+let _SPARC_REG_F29 = 30;;
+let _SPARC_REG_F30 = 31;;
+let _SPARC_REG_F31 = 32;;
+let _SPARC_REG_F32 = 33;;
+let _SPARC_REG_F34 = 34;;
+let _SPARC_REG_F36 = 35;;
+let _SPARC_REG_F38 = 36;;
+let _SPARC_REG_F40 = 37;;
+let _SPARC_REG_F42 = 38;;
+let _SPARC_REG_F44 = 39;;
+let _SPARC_REG_F46 = 40;;
+let _SPARC_REG_F48 = 41;;
+let _SPARC_REG_F50 = 42;;
+let _SPARC_REG_F52 = 43;;
+let _SPARC_REG_F54 = 44;;
+let _SPARC_REG_F56 = 45;;
+let _SPARC_REG_F58 = 46;;
+let _SPARC_REG_F60 = 47;;
+let _SPARC_REG_F62 = 48;;
+let _SPARC_REG_FCC0 = 49;;
+let _SPARC_REG_FCC1 = 50;;
+let _SPARC_REG_FCC2 = 51;;
+let _SPARC_REG_FCC3 = 52;;
+let _SPARC_REG_FP = 53;;
+let _SPARC_REG_G0 = 54;;
+let _SPARC_REG_G1 = 55;;
+let _SPARC_REG_G2 = 56;;
+let _SPARC_REG_G3 = 57;;
+let _SPARC_REG_G4 = 58;;
+let _SPARC_REG_G5 = 59;;
+let _SPARC_REG_G6 = 60;;
+let _SPARC_REG_G7 = 61;;
+let _SPARC_REG_I0 = 62;;
+let _SPARC_REG_I1 = 63;;
+let _SPARC_REG_I2 = 64;;
+let _SPARC_REG_I3 = 65;;
+let _SPARC_REG_I4 = 66;;
+let _SPARC_REG_I5 = 67;;
+let _SPARC_REG_I7 = 68;;
+let _SPARC_REG_ICC = 69;;
+let _SPARC_REG_L0 = 70;;
+let _SPARC_REG_L1 = 71;;
+let _SPARC_REG_L2 = 72;;
+let _SPARC_REG_L3 = 73;;
+let _SPARC_REG_L4 = 74;;
+let _SPARC_REG_L5 = 75;;
+let _SPARC_REG_L6 = 76;;
+let _SPARC_REG_L7 = 77;;
+let _SPARC_REG_O0 = 78;;
+let _SPARC_REG_O1 = 79;;
+let _SPARC_REG_O2 = 80;;
+let _SPARC_REG_O3 = 81;;
+let _SPARC_REG_O4 = 82;;
+let _SPARC_REG_O5 = 83;;
+let _SPARC_REG_O7 = 84;;
+let _SPARC_REG_SP = 85;;
+let _SPARC_REG_Y = 86;;
+let _SPARC_REG_XCC = 87;;
+let _SPARC_REG_ENDING = 88;;
+let _SPARC_REG_O6 = _SPARC_REG_SP;;
+let _SPARC_REG_I6 = _SPARC_REG_FP;;
+
+let _SPARC_INS_INVALID = 0;;
+let _SPARC_INS_ADDCC = 1;;
+let _SPARC_INS_ADDX = 2;;
+let _SPARC_INS_ADDXCC = 3;;
+let _SPARC_INS_ADDXC = 4;;
+let _SPARC_INS_ADDXCCC = 5;;
+let _SPARC_INS_ADD = 6;;
+let _SPARC_INS_ALIGNADDR = 7;;
+let _SPARC_INS_ALIGNADDRL = 8;;
+let _SPARC_INS_ANDCC = 9;;
+let _SPARC_INS_ANDNCC = 10;;
+let _SPARC_INS_ANDN = 11;;
+let _SPARC_INS_AND = 12;;
+let _SPARC_INS_ARRAY16 = 13;;
+let _SPARC_INS_ARRAY32 = 14;;
+let _SPARC_INS_ARRAY8 = 15;;
+let _SPARC_INS_B = 16;;
+let _SPARC_INS_JMP = 17;;
+let _SPARC_INS_BMASK = 18;;
+let _SPARC_INS_FB = 19;;
+let _SPARC_INS_BRGEZ = 20;;
+let _SPARC_INS_BRGZ = 21;;
+let _SPARC_INS_BRLEZ = 22;;
+let _SPARC_INS_BRLZ = 23;;
+let _SPARC_INS_BRNZ = 24;;
+let _SPARC_INS_BRZ = 25;;
+let _SPARC_INS_BSHUFFLE = 26;;
+let _SPARC_INS_CALL = 27;;
+let _SPARC_INS_CASX = 28;;
+let _SPARC_INS_CAS = 29;;
+let _SPARC_INS_CMASK16 = 30;;
+let _SPARC_INS_CMASK32 = 31;;
+let _SPARC_INS_CMASK8 = 32;;
+let _SPARC_INS_CMP = 33;;
+let _SPARC_INS_EDGE16 = 34;;
+let _SPARC_INS_EDGE16L = 35;;
+let _SPARC_INS_EDGE16LN = 36;;
+let _SPARC_INS_EDGE16N = 37;;
+let _SPARC_INS_EDGE32 = 38;;
+let _SPARC_INS_EDGE32L = 39;;
+let _SPARC_INS_EDGE32LN = 40;;
+let _SPARC_INS_EDGE32N = 41;;
+let _SPARC_INS_EDGE8 = 42;;
+let _SPARC_INS_EDGE8L = 43;;
+let _SPARC_INS_EDGE8LN = 44;;
+let _SPARC_INS_EDGE8N = 45;;
+let _SPARC_INS_FABSD = 46;;
+let _SPARC_INS_FABSQ = 47;;
+let _SPARC_INS_FABSS = 48;;
+let _SPARC_INS_FADDD = 49;;
+let _SPARC_INS_FADDQ = 50;;
+let _SPARC_INS_FADDS = 51;;
+let _SPARC_INS_FALIGNDATA = 52;;
+let _SPARC_INS_FAND = 53;;
+let _SPARC_INS_FANDNOT1 = 54;;
+let _SPARC_INS_FANDNOT1S = 55;;
+let _SPARC_INS_FANDNOT2 = 56;;
+let _SPARC_INS_FANDNOT2S = 57;;
+let _SPARC_INS_FANDS = 58;;
+let _SPARC_INS_FCHKSM16 = 59;;
+let _SPARC_INS_FCMPD = 60;;
+let _SPARC_INS_FCMPEQ16 = 61;;
+let _SPARC_INS_FCMPEQ32 = 62;;
+let _SPARC_INS_FCMPGT16 = 63;;
+let _SPARC_INS_FCMPGT32 = 64;;
+let _SPARC_INS_FCMPLE16 = 65;;
+let _SPARC_INS_FCMPLE32 = 66;;
+let _SPARC_INS_FCMPNE16 = 67;;
+let _SPARC_INS_FCMPNE32 = 68;;
+let _SPARC_INS_FCMPQ = 69;;
+let _SPARC_INS_FCMPS = 70;;
+let _SPARC_INS_FDIVD = 71;;
+let _SPARC_INS_FDIVQ = 72;;
+let _SPARC_INS_FDIVS = 73;;
+let _SPARC_INS_FDMULQ = 74;;
+let _SPARC_INS_FDTOI = 75;;
+let _SPARC_INS_FDTOQ = 76;;
+let _SPARC_INS_FDTOS = 77;;
+let _SPARC_INS_FDTOX = 78;;
+let _SPARC_INS_FEXPAND = 79;;
+let _SPARC_INS_FHADDD = 80;;
+let _SPARC_INS_FHADDS = 81;;
+let _SPARC_INS_FHSUBD = 82;;
+let _SPARC_INS_FHSUBS = 83;;
+let _SPARC_INS_FITOD = 84;;
+let _SPARC_INS_FITOQ = 85;;
+let _SPARC_INS_FITOS = 86;;
+let _SPARC_INS_FLCMPD = 87;;
+let _SPARC_INS_FLCMPS = 88;;
+let _SPARC_INS_FLUSHW = 89;;
+let _SPARC_INS_FMEAN16 = 90;;
+let _SPARC_INS_FMOVD = 91;;
+let _SPARC_INS_FMOVQ = 92;;
+let _SPARC_INS_FMOVRDGEZ = 93;;
+let _SPARC_INS_FMOVRQGEZ = 94;;
+let _SPARC_INS_FMOVRSGEZ = 95;;
+let _SPARC_INS_FMOVRDGZ = 96;;
+let _SPARC_INS_FMOVRQGZ = 97;;
+let _SPARC_INS_FMOVRSGZ = 98;;
+let _SPARC_INS_FMOVRDLEZ = 99;;
+let _SPARC_INS_FMOVRQLEZ = 100;;
+let _SPARC_INS_FMOVRSLEZ = 101;;
+let _SPARC_INS_FMOVRDLZ = 102;;
+let _SPARC_INS_FMOVRQLZ = 103;;
+let _SPARC_INS_FMOVRSLZ = 104;;
+let _SPARC_INS_FMOVRDNZ = 105;;
+let _SPARC_INS_FMOVRQNZ = 106;;
+let _SPARC_INS_FMOVRSNZ = 107;;
+let _SPARC_INS_FMOVRDZ = 108;;
+let _SPARC_INS_FMOVRQZ = 109;;
+let _SPARC_INS_FMOVRSZ = 110;;
+let _SPARC_INS_FMOVS = 111;;
+let _SPARC_INS_FMUL8SUX16 = 112;;
+let _SPARC_INS_FMUL8ULX16 = 113;;
+let _SPARC_INS_FMUL8X16 = 114;;
+let _SPARC_INS_FMUL8X16AL = 115;;
+let _SPARC_INS_FMUL8X16AU = 116;;
+let _SPARC_INS_FMULD = 117;;
+let _SPARC_INS_FMULD8SUX16 = 118;;
+let _SPARC_INS_FMULD8ULX16 = 119;;
+let _SPARC_INS_FMULQ = 120;;
+let _SPARC_INS_FMULS = 121;;
+let _SPARC_INS_FNADDD = 122;;
+let _SPARC_INS_FNADDS = 123;;
+let _SPARC_INS_FNAND = 124;;
+let _SPARC_INS_FNANDS = 125;;
+let _SPARC_INS_FNEGD = 126;;
+let _SPARC_INS_FNEGQ = 127;;
+let _SPARC_INS_FNEGS = 128;;
+let _SPARC_INS_FNHADDD = 129;;
+let _SPARC_INS_FNHADDS = 130;;
+let _SPARC_INS_FNOR = 131;;
+let _SPARC_INS_FNORS = 132;;
+let _SPARC_INS_FNOT1 = 133;;
+let _SPARC_INS_FNOT1S = 134;;
+let _SPARC_INS_FNOT2 = 135;;
+let _SPARC_INS_FNOT2S = 136;;
+let _SPARC_INS_FONE = 137;;
+let _SPARC_INS_FONES = 138;;
+let _SPARC_INS_FOR = 139;;
+let _SPARC_INS_FORNOT1 = 140;;
+let _SPARC_INS_FORNOT1S = 141;;
+let _SPARC_INS_FORNOT2 = 142;;
+let _SPARC_INS_FORNOT2S = 143;;
+let _SPARC_INS_FORS = 144;;
+let _SPARC_INS_FPACK16 = 145;;
+let _SPARC_INS_FPACK32 = 146;;
+let _SPARC_INS_FPACKFIX = 147;;
+let _SPARC_INS_FPADD16 = 148;;
+let _SPARC_INS_FPADD16S = 149;;
+let _SPARC_INS_FPADD32 = 150;;
+let _SPARC_INS_FPADD32S = 151;;
+let _SPARC_INS_FPADD64 = 152;;
+let _SPARC_INS_FPMERGE = 153;;
+let _SPARC_INS_FPSUB16 = 154;;
+let _SPARC_INS_FPSUB16S = 155;;
+let _SPARC_INS_FPSUB32 = 156;;
+let _SPARC_INS_FPSUB32S = 157;;
+let _SPARC_INS_FQTOD = 158;;
+let _SPARC_INS_FQTOI = 159;;
+let _SPARC_INS_FQTOS = 160;;
+let _SPARC_INS_FQTOX = 161;;
+let _SPARC_INS_FSLAS16 = 162;;
+let _SPARC_INS_FSLAS32 = 163;;
+let _SPARC_INS_FSLL16 = 164;;
+let _SPARC_INS_FSLL32 = 165;;
+let _SPARC_INS_FSMULD = 166;;
+let _SPARC_INS_FSQRTD = 167;;
+let _SPARC_INS_FSQRTQ = 168;;
+let _SPARC_INS_FSQRTS = 169;;
+let _SPARC_INS_FSRA16 = 170;;
+let _SPARC_INS_FSRA32 = 171;;
+let _SPARC_INS_FSRC1 = 172;;
+let _SPARC_INS_FSRC1S = 173;;
+let _SPARC_INS_FSRC2 = 174;;
+let _SPARC_INS_FSRC2S = 175;;
+let _SPARC_INS_FSRL16 = 176;;
+let _SPARC_INS_FSRL32 = 177;;
+let _SPARC_INS_FSTOD = 178;;
+let _SPARC_INS_FSTOI = 179;;
+let _SPARC_INS_FSTOQ = 180;;
+let _SPARC_INS_FSTOX = 181;;
+let _SPARC_INS_FSUBD = 182;;
+let _SPARC_INS_FSUBQ = 183;;
+let _SPARC_INS_FSUBS = 184;;
+let _SPARC_INS_FXNOR = 185;;
+let _SPARC_INS_FXNORS = 186;;
+let _SPARC_INS_FXOR = 187;;
+let _SPARC_INS_FXORS = 188;;
+let _SPARC_INS_FXTOD = 189;;
+let _SPARC_INS_FXTOQ = 190;;
+let _SPARC_INS_FXTOS = 191;;
+let _SPARC_INS_FZERO = 192;;
+let _SPARC_INS_FZEROS = 193;;
+let _SPARC_INS_JMPL = 194;;
+let _SPARC_INS_LDD = 195;;
+let _SPARC_INS_LD = 196;;
+let _SPARC_INS_LDQ = 197;;
+let _SPARC_INS_LDSB = 198;;
+let _SPARC_INS_LDSH = 199;;
+let _SPARC_INS_LDSW = 200;;
+let _SPARC_INS_LDUB = 201;;
+let _SPARC_INS_LDUH = 202;;
+let _SPARC_INS_LDX = 203;;
+let _SPARC_INS_LZCNT = 204;;
+let _SPARC_INS_MEMBAR = 205;;
+let _SPARC_INS_MOVDTOX = 206;;
+let _SPARC_INS_MOV = 207;;
+let _SPARC_INS_MOVRGEZ = 208;;
+let _SPARC_INS_MOVRGZ = 209;;
+let _SPARC_INS_MOVRLEZ = 210;;
+let _SPARC_INS_MOVRLZ = 211;;
+let _SPARC_INS_MOVRNZ = 212;;
+let _SPARC_INS_MOVRZ = 213;;
+let _SPARC_INS_MOVSTOSW = 214;;
+let _SPARC_INS_MOVSTOUW = 215;;
+let _SPARC_INS_MULX = 216;;
+let _SPARC_INS_NOP = 217;;
+let _SPARC_INS_ORCC = 218;;
+let _SPARC_INS_ORNCC = 219;;
+let _SPARC_INS_ORN = 220;;
+let _SPARC_INS_OR = 221;;
+let _SPARC_INS_PDIST = 222;;
+let _SPARC_INS_PDISTN = 223;;
+let _SPARC_INS_POPC = 224;;
+let _SPARC_INS_RD = 225;;
+let _SPARC_INS_RESTORE = 226;;
+let _SPARC_INS_RETT = 227;;
+let _SPARC_INS_SAVE = 228;;
+let _SPARC_INS_SDIVCC = 229;;
+let _SPARC_INS_SDIVX = 230;;
+let _SPARC_INS_SDIV = 231;;
+let _SPARC_INS_SETHI = 232;;
+let _SPARC_INS_SHUTDOWN = 233;;
+let _SPARC_INS_SIAM = 234;;
+let _SPARC_INS_SLLX = 235;;
+let _SPARC_INS_SLL = 236;;
+let _SPARC_INS_SMULCC = 237;;
+let _SPARC_INS_SMUL = 238;;
+let _SPARC_INS_SRAX = 239;;
+let _SPARC_INS_SRA = 240;;
+let _SPARC_INS_SRLX = 241;;
+let _SPARC_INS_SRL = 242;;
+let _SPARC_INS_STBAR = 243;;
+let _SPARC_INS_STB = 244;;
+let _SPARC_INS_STD = 245;;
+let _SPARC_INS_ST = 246;;
+let _SPARC_INS_STH = 247;;
+let _SPARC_INS_STQ = 248;;
+let _SPARC_INS_STX = 249;;
+let _SPARC_INS_SUBCC = 250;;
+let _SPARC_INS_SUBX = 251;;
+let _SPARC_INS_SUBXCC = 252;;
+let _SPARC_INS_SUB = 253;;
+let _SPARC_INS_SWAP = 254;;
+let _SPARC_INS_TADDCCTV = 255;;
+let _SPARC_INS_TADDCC = 256;;
+let _SPARC_INS_T = 257;;
+let _SPARC_INS_TSUBCCTV = 258;;
+let _SPARC_INS_TSUBCC = 259;;
+let _SPARC_INS_UDIVCC = 260;;
+let _SPARC_INS_UDIVX = 261;;
+let _SPARC_INS_UDIV = 262;;
+let _SPARC_INS_UMULCC = 263;;
+let _SPARC_INS_UMULXHI = 264;;
+let _SPARC_INS_UMUL = 265;;
+let _SPARC_INS_UNIMP = 266;;
+let _SPARC_INS_FCMPED = 267;;
+let _SPARC_INS_FCMPEQ = 268;;
+let _SPARC_INS_FCMPES = 269;;
+let _SPARC_INS_WR = 270;;
+let _SPARC_INS_XMULX = 271;;
+let _SPARC_INS_XMULXHI = 272;;
+let _SPARC_INS_XNORCC = 273;;
+let _SPARC_INS_XNOR = 274;;
+let _SPARC_INS_XORCC = 275;;
+let _SPARC_INS_XOR = 276;;
+let _SPARC_INS_RET = 277;;
+let _SPARC_INS_RETL = 278;;
+let _SPARC_INS_ENDING = 279;;
+
+let _SPARC_GRP_INVALID = 0;;
+let _SPARC_GRP_JUMP = 1;;
+let _SPARC_GRP_HARDQUAD = 128;;
+let _SPARC_GRP_V9 = 129;;
+let _SPARC_GRP_VIS = 130;;
+let _SPARC_GRP_VIS2 = 131;;
+let _SPARC_GRP_VIS3 = 132;;
+let _SPARC_GRP_32BIT = 133;;
+let _SPARC_GRP_64BIT = 134;;
+let _SPARC_GRP_ENDING = 135;;
diff --git a/capstone/bindings/ocaml/systemz.ml b/capstone/bindings/ocaml/systemz.ml
new file mode 100644
index 000000000..755bf5d79
--- /dev/null
+++ b/capstone/bindings/ocaml/systemz.ml
@@ -0,0 +1,27 @@
+(* Capstone Disassembly Engine
+ * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Sysz_const
+
+type sysz_op_mem = {
+ base: int;
+ index: int;
+ length: int64;
+ disp: int64;
+}
+
+type sysz_op_value =
+ | SYSZ_OP_INVALID of int
+ | SYSZ_OP_REG of int
+ | SYSZ_OP_ACREG of int
+ | SYSZ_OP_IMM of int
+ | SYSZ_OP_MEM of sysz_op_mem
+
+type sysz_op = {
+ value: sysz_op_value;
+}
+
+type cs_sysz = {
+ cc: int;
+ operands: sysz_op array;
+}
diff --git a/capstone/bindings/ocaml/sysz_const.ml b/capstone/bindings/ocaml/sysz_const.ml
new file mode 100644
index 000000000..e738b5c26
--- /dev/null
+++ b/capstone/bindings/ocaml/sysz_const.ml
@@ -0,0 +1,2523 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [sysz_const.ml] *)
+
+let _SYSZ_CC_INVALID = 0;;
+let _SYSZ_CC_O = 1;;
+let _SYSZ_CC_H = 2;;
+let _SYSZ_CC_NLE = 3;;
+let _SYSZ_CC_L = 4;;
+let _SYSZ_CC_NHE = 5;;
+let _SYSZ_CC_LH = 6;;
+let _SYSZ_CC_NE = 7;;
+let _SYSZ_CC_E = 8;;
+let _SYSZ_CC_NLH = 9;;
+let _SYSZ_CC_HE = 10;;
+let _SYSZ_CC_NL = 11;;
+let _SYSZ_CC_LE = 12;;
+let _SYSZ_CC_NH = 13;;
+let _SYSZ_CC_NO = 14;;
+
+let _SYSZ_OP_INVALID = 0;;
+let _SYSZ_OP_REG = 1;;
+let _SYSZ_OP_IMM = 2;;
+let _SYSZ_OP_MEM = 3;;
+let _SYSZ_OP_ACREG = 64;;
+
+let _SYSZ_REG_INVALID = 0;;
+let _SYSZ_REG_0 = 1;;
+let _SYSZ_REG_1 = 2;;
+let _SYSZ_REG_2 = 3;;
+let _SYSZ_REG_3 = 4;;
+let _SYSZ_REG_4 = 5;;
+let _SYSZ_REG_5 = 6;;
+let _SYSZ_REG_6 = 7;;
+let _SYSZ_REG_7 = 8;;
+let _SYSZ_REG_8 = 9;;
+let _SYSZ_REG_9 = 10;;
+let _SYSZ_REG_10 = 11;;
+let _SYSZ_REG_11 = 12;;
+let _SYSZ_REG_12 = 13;;
+let _SYSZ_REG_13 = 14;;
+let _SYSZ_REG_14 = 15;;
+let _SYSZ_REG_15 = 16;;
+let _SYSZ_REG_CC = 17;;
+let _SYSZ_REG_F0 = 18;;
+let _SYSZ_REG_F1 = 19;;
+let _SYSZ_REG_F2 = 20;;
+let _SYSZ_REG_F3 = 21;;
+let _SYSZ_REG_F4 = 22;;
+let _SYSZ_REG_F5 = 23;;
+let _SYSZ_REG_F6 = 24;;
+let _SYSZ_REG_F7 = 25;;
+let _SYSZ_REG_F8 = 26;;
+let _SYSZ_REG_F9 = 27;;
+let _SYSZ_REG_F10 = 28;;
+let _SYSZ_REG_F11 = 29;;
+let _SYSZ_REG_F12 = 30;;
+let _SYSZ_REG_F13 = 31;;
+let _SYSZ_REG_F14 = 32;;
+let _SYSZ_REG_F15 = 33;;
+let _SYSZ_REG_R0L = 34;;
+let _SYSZ_REG_A0 = 35;;
+let _SYSZ_REG_A1 = 36;;
+let _SYSZ_REG_A2 = 37;;
+let _SYSZ_REG_A3 = 38;;
+let _SYSZ_REG_A4 = 39;;
+let _SYSZ_REG_A5 = 40;;
+let _SYSZ_REG_A6 = 41;;
+let _SYSZ_REG_A7 = 42;;
+let _SYSZ_REG_A8 = 43;;
+let _SYSZ_REG_A9 = 44;;
+let _SYSZ_REG_A10 = 45;;
+let _SYSZ_REG_A11 = 46;;
+let _SYSZ_REG_A12 = 47;;
+let _SYSZ_REG_A13 = 48;;
+let _SYSZ_REG_A14 = 49;;
+let _SYSZ_REG_A15 = 50;;
+let _SYSZ_REG_C0 = 51;;
+let _SYSZ_REG_C1 = 52;;
+let _SYSZ_REG_C2 = 53;;
+let _SYSZ_REG_C3 = 54;;
+let _SYSZ_REG_C4 = 55;;
+let _SYSZ_REG_C5 = 56;;
+let _SYSZ_REG_C6 = 57;;
+let _SYSZ_REG_C7 = 58;;
+let _SYSZ_REG_C8 = 59;;
+let _SYSZ_REG_C9 = 60;;
+let _SYSZ_REG_C10 = 61;;
+let _SYSZ_REG_C11 = 62;;
+let _SYSZ_REG_C12 = 63;;
+let _SYSZ_REG_C13 = 64;;
+let _SYSZ_REG_C14 = 65;;
+let _SYSZ_REG_C15 = 66;;
+let _SYSZ_REG_V0 = 67;;
+let _SYSZ_REG_V1 = 68;;
+let _SYSZ_REG_V2 = 69;;
+let _SYSZ_REG_V3 = 70;;
+let _SYSZ_REG_V4 = 71;;
+let _SYSZ_REG_V5 = 72;;
+let _SYSZ_REG_V6 = 73;;
+let _SYSZ_REG_V7 = 74;;
+let _SYSZ_REG_V8 = 75;;
+let _SYSZ_REG_V9 = 76;;
+let _SYSZ_REG_V10 = 77;;
+let _SYSZ_REG_V11 = 78;;
+let _SYSZ_REG_V12 = 79;;
+let _SYSZ_REG_V13 = 80;;
+let _SYSZ_REG_V14 = 81;;
+let _SYSZ_REG_V15 = 82;;
+let _SYSZ_REG_V16 = 83;;
+let _SYSZ_REG_V17 = 84;;
+let _SYSZ_REG_V18 = 85;;
+let _SYSZ_REG_V19 = 86;;
+let _SYSZ_REG_V20 = 87;;
+let _SYSZ_REG_V21 = 88;;
+let _SYSZ_REG_V22 = 89;;
+let _SYSZ_REG_V23 = 90;;
+let _SYSZ_REG_V24 = 91;;
+let _SYSZ_REG_V25 = 92;;
+let _SYSZ_REG_V26 = 93;;
+let _SYSZ_REG_V27 = 94;;
+let _SYSZ_REG_V28 = 95;;
+let _SYSZ_REG_V29 = 96;;
+let _SYSZ_REG_V30 = 97;;
+let _SYSZ_REG_V31 = 98;;
+let _SYSZ_REG_F16 = 99;;
+let _SYSZ_REG_F17 = 100;;
+let _SYSZ_REG_F18 = 101;;
+let _SYSZ_REG_F19 = 102;;
+let _SYSZ_REG_F20 = 103;;
+let _SYSZ_REG_F21 = 104;;
+let _SYSZ_REG_F22 = 105;;
+let _SYSZ_REG_F23 = 106;;
+let _SYSZ_REG_F24 = 107;;
+let _SYSZ_REG_F25 = 108;;
+let _SYSZ_REG_F26 = 109;;
+let _SYSZ_REG_F27 = 110;;
+let _SYSZ_REG_F28 = 111;;
+let _SYSZ_REG_F29 = 112;;
+let _SYSZ_REG_F30 = 113;;
+let _SYSZ_REG_F31 = 114;;
+let _SYSZ_REG_F0Q = 115;;
+let _SYSZ_REG_F4Q = 116;;
+let _SYSZ_REG_ENDING = 117;;
+
+let _SYSZ_INS_INVALID = 0;;
+let _SYSZ_INS_A = 1;;
+let _SYSZ_INS_ADB = 2;;
+let _SYSZ_INS_ADBR = 3;;
+let _SYSZ_INS_AEB = 4;;
+let _SYSZ_INS_AEBR = 5;;
+let _SYSZ_INS_AFI = 6;;
+let _SYSZ_INS_AG = 7;;
+let _SYSZ_INS_AGF = 8;;
+let _SYSZ_INS_AGFI = 9;;
+let _SYSZ_INS_AGFR = 10;;
+let _SYSZ_INS_AGHI = 11;;
+let _SYSZ_INS_AGHIK = 12;;
+let _SYSZ_INS_AGR = 13;;
+let _SYSZ_INS_AGRK = 14;;
+let _SYSZ_INS_AGSI = 15;;
+let _SYSZ_INS_AH = 16;;
+let _SYSZ_INS_AHI = 17;;
+let _SYSZ_INS_AHIK = 18;;
+let _SYSZ_INS_AHY = 19;;
+let _SYSZ_INS_AIH = 20;;
+let _SYSZ_INS_AL = 21;;
+let _SYSZ_INS_ALC = 22;;
+let _SYSZ_INS_ALCG = 23;;
+let _SYSZ_INS_ALCGR = 24;;
+let _SYSZ_INS_ALCR = 25;;
+let _SYSZ_INS_ALFI = 26;;
+let _SYSZ_INS_ALG = 27;;
+let _SYSZ_INS_ALGF = 28;;
+let _SYSZ_INS_ALGFI = 29;;
+let _SYSZ_INS_ALGFR = 30;;
+let _SYSZ_INS_ALGHSIK = 31;;
+let _SYSZ_INS_ALGR = 32;;
+let _SYSZ_INS_ALGRK = 33;;
+let _SYSZ_INS_ALHSIK = 34;;
+let _SYSZ_INS_ALR = 35;;
+let _SYSZ_INS_ALRK = 36;;
+let _SYSZ_INS_ALY = 37;;
+let _SYSZ_INS_AR = 38;;
+let _SYSZ_INS_ARK = 39;;
+let _SYSZ_INS_ASI = 40;;
+let _SYSZ_INS_AXBR = 41;;
+let _SYSZ_INS_AY = 42;;
+let _SYSZ_INS_BCR = 43;;
+let _SYSZ_INS_BRC = 44;;
+let _SYSZ_INS_BRCL = 45;;
+let _SYSZ_INS_CGIJ = 46;;
+let _SYSZ_INS_CGRJ = 47;;
+let _SYSZ_INS_CIJ = 48;;
+let _SYSZ_INS_CLGIJ = 49;;
+let _SYSZ_INS_CLGRJ = 50;;
+let _SYSZ_INS_CLIJ = 51;;
+let _SYSZ_INS_CLRJ = 52;;
+let _SYSZ_INS_CRJ = 53;;
+let _SYSZ_INS_BER = 54;;
+let _SYSZ_INS_JE = 55;;
+let _SYSZ_INS_JGE = 56;;
+let _SYSZ_INS_LOCE = 57;;
+let _SYSZ_INS_LOCGE = 58;;
+let _SYSZ_INS_LOCGRE = 59;;
+let _SYSZ_INS_LOCRE = 60;;
+let _SYSZ_INS_STOCE = 61;;
+let _SYSZ_INS_STOCGE = 62;;
+let _SYSZ_INS_BHR = 63;;
+let _SYSZ_INS_BHER = 64;;
+let _SYSZ_INS_JHE = 65;;
+let _SYSZ_INS_JGHE = 66;;
+let _SYSZ_INS_LOCHE = 67;;
+let _SYSZ_INS_LOCGHE = 68;;
+let _SYSZ_INS_LOCGRHE = 69;;
+let _SYSZ_INS_LOCRHE = 70;;
+let _SYSZ_INS_STOCHE = 71;;
+let _SYSZ_INS_STOCGHE = 72;;
+let _SYSZ_INS_JH = 73;;
+let _SYSZ_INS_JGH = 74;;
+let _SYSZ_INS_LOCH = 75;;
+let _SYSZ_INS_LOCGH = 76;;
+let _SYSZ_INS_LOCGRH = 77;;
+let _SYSZ_INS_LOCRH = 78;;
+let _SYSZ_INS_STOCH = 79;;
+let _SYSZ_INS_STOCGH = 80;;
+let _SYSZ_INS_CGIJNLH = 81;;
+let _SYSZ_INS_CGRJNLH = 82;;
+let _SYSZ_INS_CIJNLH = 83;;
+let _SYSZ_INS_CLGIJNLH = 84;;
+let _SYSZ_INS_CLGRJNLH = 85;;
+let _SYSZ_INS_CLIJNLH = 86;;
+let _SYSZ_INS_CLRJNLH = 87;;
+let _SYSZ_INS_CRJNLH = 88;;
+let _SYSZ_INS_CGIJE = 89;;
+let _SYSZ_INS_CGRJE = 90;;
+let _SYSZ_INS_CIJE = 91;;
+let _SYSZ_INS_CLGIJE = 92;;
+let _SYSZ_INS_CLGRJE = 93;;
+let _SYSZ_INS_CLIJE = 94;;
+let _SYSZ_INS_CLRJE = 95;;
+let _SYSZ_INS_CRJE = 96;;
+let _SYSZ_INS_CGIJNLE = 97;;
+let _SYSZ_INS_CGRJNLE = 98;;
+let _SYSZ_INS_CIJNLE = 99;;
+let _SYSZ_INS_CLGIJNLE = 100;;
+let _SYSZ_INS_CLGRJNLE = 101;;
+let _SYSZ_INS_CLIJNLE = 102;;
+let _SYSZ_INS_CLRJNLE = 103;;
+let _SYSZ_INS_CRJNLE = 104;;
+let _SYSZ_INS_CGIJH = 105;;
+let _SYSZ_INS_CGRJH = 106;;
+let _SYSZ_INS_CIJH = 107;;
+let _SYSZ_INS_CLGIJH = 108;;
+let _SYSZ_INS_CLGRJH = 109;;
+let _SYSZ_INS_CLIJH = 110;;
+let _SYSZ_INS_CLRJH = 111;;
+let _SYSZ_INS_CRJH = 112;;
+let _SYSZ_INS_CGIJNL = 113;;
+let _SYSZ_INS_CGRJNL = 114;;
+let _SYSZ_INS_CIJNL = 115;;
+let _SYSZ_INS_CLGIJNL = 116;;
+let _SYSZ_INS_CLGRJNL = 117;;
+let _SYSZ_INS_CLIJNL = 118;;
+let _SYSZ_INS_CLRJNL = 119;;
+let _SYSZ_INS_CRJNL = 120;;
+let _SYSZ_INS_CGIJHE = 121;;
+let _SYSZ_INS_CGRJHE = 122;;
+let _SYSZ_INS_CIJHE = 123;;
+let _SYSZ_INS_CLGIJHE = 124;;
+let _SYSZ_INS_CLGRJHE = 125;;
+let _SYSZ_INS_CLIJHE = 126;;
+let _SYSZ_INS_CLRJHE = 127;;
+let _SYSZ_INS_CRJHE = 128;;
+let _SYSZ_INS_CGIJNHE = 129;;
+let _SYSZ_INS_CGRJNHE = 130;;
+let _SYSZ_INS_CIJNHE = 131;;
+let _SYSZ_INS_CLGIJNHE = 132;;
+let _SYSZ_INS_CLGRJNHE = 133;;
+let _SYSZ_INS_CLIJNHE = 134;;
+let _SYSZ_INS_CLRJNHE = 135;;
+let _SYSZ_INS_CRJNHE = 136;;
+let _SYSZ_INS_CGIJL = 137;;
+let _SYSZ_INS_CGRJL = 138;;
+let _SYSZ_INS_CIJL = 139;;
+let _SYSZ_INS_CLGIJL = 140;;
+let _SYSZ_INS_CLGRJL = 141;;
+let _SYSZ_INS_CLIJL = 142;;
+let _SYSZ_INS_CLRJL = 143;;
+let _SYSZ_INS_CRJL = 144;;
+let _SYSZ_INS_CGIJNH = 145;;
+let _SYSZ_INS_CGRJNH = 146;;
+let _SYSZ_INS_CIJNH = 147;;
+let _SYSZ_INS_CLGIJNH = 148;;
+let _SYSZ_INS_CLGRJNH = 149;;
+let _SYSZ_INS_CLIJNH = 150;;
+let _SYSZ_INS_CLRJNH = 151;;
+let _SYSZ_INS_CRJNH = 152;;
+let _SYSZ_INS_CGIJLE = 153;;
+let _SYSZ_INS_CGRJLE = 154;;
+let _SYSZ_INS_CIJLE = 155;;
+let _SYSZ_INS_CLGIJLE = 156;;
+let _SYSZ_INS_CLGRJLE = 157;;
+let _SYSZ_INS_CLIJLE = 158;;
+let _SYSZ_INS_CLRJLE = 159;;
+let _SYSZ_INS_CRJLE = 160;;
+let _SYSZ_INS_CGIJNE = 161;;
+let _SYSZ_INS_CGRJNE = 162;;
+let _SYSZ_INS_CIJNE = 163;;
+let _SYSZ_INS_CLGIJNE = 164;;
+let _SYSZ_INS_CLGRJNE = 165;;
+let _SYSZ_INS_CLIJNE = 166;;
+let _SYSZ_INS_CLRJNE = 167;;
+let _SYSZ_INS_CRJNE = 168;;
+let _SYSZ_INS_CGIJLH = 169;;
+let _SYSZ_INS_CGRJLH = 170;;
+let _SYSZ_INS_CIJLH = 171;;
+let _SYSZ_INS_CLGIJLH = 172;;
+let _SYSZ_INS_CLGRJLH = 173;;
+let _SYSZ_INS_CLIJLH = 174;;
+let _SYSZ_INS_CLRJLH = 175;;
+let _SYSZ_INS_CRJLH = 176;;
+let _SYSZ_INS_BLR = 177;;
+let _SYSZ_INS_BLER = 178;;
+let _SYSZ_INS_JLE = 179;;
+let _SYSZ_INS_JGLE = 180;;
+let _SYSZ_INS_LOCLE = 181;;
+let _SYSZ_INS_LOCGLE = 182;;
+let _SYSZ_INS_LOCGRLE = 183;;
+let _SYSZ_INS_LOCRLE = 184;;
+let _SYSZ_INS_STOCLE = 185;;
+let _SYSZ_INS_STOCGLE = 186;;
+let _SYSZ_INS_BLHR = 187;;
+let _SYSZ_INS_JLH = 188;;
+let _SYSZ_INS_JGLH = 189;;
+let _SYSZ_INS_LOCLH = 190;;
+let _SYSZ_INS_LOCGLH = 191;;
+let _SYSZ_INS_LOCGRLH = 192;;
+let _SYSZ_INS_LOCRLH = 193;;
+let _SYSZ_INS_STOCLH = 194;;
+let _SYSZ_INS_STOCGLH = 195;;
+let _SYSZ_INS_JL = 196;;
+let _SYSZ_INS_JGL = 197;;
+let _SYSZ_INS_LOCL = 198;;
+let _SYSZ_INS_LOCGL = 199;;
+let _SYSZ_INS_LOCGRL = 200;;
+let _SYSZ_INS_LOCRL = 201;;
+let _SYSZ_INS_LOC = 202;;
+let _SYSZ_INS_LOCG = 203;;
+let _SYSZ_INS_LOCGR = 204;;
+let _SYSZ_INS_LOCR = 205;;
+let _SYSZ_INS_STOCL = 206;;
+let _SYSZ_INS_STOCGL = 207;;
+let _SYSZ_INS_BNER = 208;;
+let _SYSZ_INS_JNE = 209;;
+let _SYSZ_INS_JGNE = 210;;
+let _SYSZ_INS_LOCNE = 211;;
+let _SYSZ_INS_LOCGNE = 212;;
+let _SYSZ_INS_LOCGRNE = 213;;
+let _SYSZ_INS_LOCRNE = 214;;
+let _SYSZ_INS_STOCNE = 215;;
+let _SYSZ_INS_STOCGNE = 216;;
+let _SYSZ_INS_BNHR = 217;;
+let _SYSZ_INS_BNHER = 218;;
+let _SYSZ_INS_JNHE = 219;;
+let _SYSZ_INS_JGNHE = 220;;
+let _SYSZ_INS_LOCNHE = 221;;
+let _SYSZ_INS_LOCGNHE = 222;;
+let _SYSZ_INS_LOCGRNHE = 223;;
+let _SYSZ_INS_LOCRNHE = 224;;
+let _SYSZ_INS_STOCNHE = 225;;
+let _SYSZ_INS_STOCGNHE = 226;;
+let _SYSZ_INS_JNH = 227;;
+let _SYSZ_INS_JGNH = 228;;
+let _SYSZ_INS_LOCNH = 229;;
+let _SYSZ_INS_LOCGNH = 230;;
+let _SYSZ_INS_LOCGRNH = 231;;
+let _SYSZ_INS_LOCRNH = 232;;
+let _SYSZ_INS_STOCNH = 233;;
+let _SYSZ_INS_STOCGNH = 234;;
+let _SYSZ_INS_BNLR = 235;;
+let _SYSZ_INS_BNLER = 236;;
+let _SYSZ_INS_JNLE = 237;;
+let _SYSZ_INS_JGNLE = 238;;
+let _SYSZ_INS_LOCNLE = 239;;
+let _SYSZ_INS_LOCGNLE = 240;;
+let _SYSZ_INS_LOCGRNLE = 241;;
+let _SYSZ_INS_LOCRNLE = 242;;
+let _SYSZ_INS_STOCNLE = 243;;
+let _SYSZ_INS_STOCGNLE = 244;;
+let _SYSZ_INS_BNLHR = 245;;
+let _SYSZ_INS_JNLH = 246;;
+let _SYSZ_INS_JGNLH = 247;;
+let _SYSZ_INS_LOCNLH = 248;;
+let _SYSZ_INS_LOCGNLH = 249;;
+let _SYSZ_INS_LOCGRNLH = 250;;
+let _SYSZ_INS_LOCRNLH = 251;;
+let _SYSZ_INS_STOCNLH = 252;;
+let _SYSZ_INS_STOCGNLH = 253;;
+let _SYSZ_INS_JNL = 254;;
+let _SYSZ_INS_JGNL = 255;;
+let _SYSZ_INS_LOCNL = 256;;
+let _SYSZ_INS_LOCGNL = 257;;
+let _SYSZ_INS_LOCGRNL = 258;;
+let _SYSZ_INS_LOCRNL = 259;;
+let _SYSZ_INS_STOCNL = 260;;
+let _SYSZ_INS_STOCGNL = 261;;
+let _SYSZ_INS_BNOR = 262;;
+let _SYSZ_INS_JNO = 263;;
+let _SYSZ_INS_JGNO = 264;;
+let _SYSZ_INS_LOCNO = 265;;
+let _SYSZ_INS_LOCGNO = 266;;
+let _SYSZ_INS_LOCGRNO = 267;;
+let _SYSZ_INS_LOCRNO = 268;;
+let _SYSZ_INS_STOCNO = 269;;
+let _SYSZ_INS_STOCGNO = 270;;
+let _SYSZ_INS_BOR = 271;;
+let _SYSZ_INS_JO = 272;;
+let _SYSZ_INS_JGO = 273;;
+let _SYSZ_INS_LOCO = 274;;
+let _SYSZ_INS_LOCGO = 275;;
+let _SYSZ_INS_LOCGRO = 276;;
+let _SYSZ_INS_LOCRO = 277;;
+let _SYSZ_INS_STOCO = 278;;
+let _SYSZ_INS_STOCGO = 279;;
+let _SYSZ_INS_STOC = 280;;
+let _SYSZ_INS_STOCG = 281;;
+let _SYSZ_INS_BASR = 282;;
+let _SYSZ_INS_BR = 283;;
+let _SYSZ_INS_BRAS = 284;;
+let _SYSZ_INS_BRASL = 285;;
+let _SYSZ_INS_J = 286;;
+let _SYSZ_INS_JG = 287;;
+let _SYSZ_INS_BRCT = 288;;
+let _SYSZ_INS_BRCTG = 289;;
+let _SYSZ_INS_C = 290;;
+let _SYSZ_INS_CDB = 291;;
+let _SYSZ_INS_CDBR = 292;;
+let _SYSZ_INS_CDFBR = 293;;
+let _SYSZ_INS_CDGBR = 294;;
+let _SYSZ_INS_CDLFBR = 295;;
+let _SYSZ_INS_CDLGBR = 296;;
+let _SYSZ_INS_CEB = 297;;
+let _SYSZ_INS_CEBR = 298;;
+let _SYSZ_INS_CEFBR = 299;;
+let _SYSZ_INS_CEGBR = 300;;
+let _SYSZ_INS_CELFBR = 301;;
+let _SYSZ_INS_CELGBR = 302;;
+let _SYSZ_INS_CFDBR = 303;;
+let _SYSZ_INS_CFEBR = 304;;
+let _SYSZ_INS_CFI = 305;;
+let _SYSZ_INS_CFXBR = 306;;
+let _SYSZ_INS_CG = 307;;
+let _SYSZ_INS_CGDBR = 308;;
+let _SYSZ_INS_CGEBR = 309;;
+let _SYSZ_INS_CGF = 310;;
+let _SYSZ_INS_CGFI = 311;;
+let _SYSZ_INS_CGFR = 312;;
+let _SYSZ_INS_CGFRL = 313;;
+let _SYSZ_INS_CGH = 314;;
+let _SYSZ_INS_CGHI = 315;;
+let _SYSZ_INS_CGHRL = 316;;
+let _SYSZ_INS_CGHSI = 317;;
+let _SYSZ_INS_CGR = 318;;
+let _SYSZ_INS_CGRL = 319;;
+let _SYSZ_INS_CGXBR = 320;;
+let _SYSZ_INS_CH = 321;;
+let _SYSZ_INS_CHF = 322;;
+let _SYSZ_INS_CHHSI = 323;;
+let _SYSZ_INS_CHI = 324;;
+let _SYSZ_INS_CHRL = 325;;
+let _SYSZ_INS_CHSI = 326;;
+let _SYSZ_INS_CHY = 327;;
+let _SYSZ_INS_CIH = 328;;
+let _SYSZ_INS_CL = 329;;
+let _SYSZ_INS_CLC = 330;;
+let _SYSZ_INS_CLFDBR = 331;;
+let _SYSZ_INS_CLFEBR = 332;;
+let _SYSZ_INS_CLFHSI = 333;;
+let _SYSZ_INS_CLFI = 334;;
+let _SYSZ_INS_CLFXBR = 335;;
+let _SYSZ_INS_CLG = 336;;
+let _SYSZ_INS_CLGDBR = 337;;
+let _SYSZ_INS_CLGEBR = 338;;
+let _SYSZ_INS_CLGF = 339;;
+let _SYSZ_INS_CLGFI = 340;;
+let _SYSZ_INS_CLGFR = 341;;
+let _SYSZ_INS_CLGFRL = 342;;
+let _SYSZ_INS_CLGHRL = 343;;
+let _SYSZ_INS_CLGHSI = 344;;
+let _SYSZ_INS_CLGR = 345;;
+let _SYSZ_INS_CLGRL = 346;;
+let _SYSZ_INS_CLGXBR = 347;;
+let _SYSZ_INS_CLHF = 348;;
+let _SYSZ_INS_CLHHSI = 349;;
+let _SYSZ_INS_CLHRL = 350;;
+let _SYSZ_INS_CLI = 351;;
+let _SYSZ_INS_CLIH = 352;;
+let _SYSZ_INS_CLIY = 353;;
+let _SYSZ_INS_CLR = 354;;
+let _SYSZ_INS_CLRL = 355;;
+let _SYSZ_INS_CLST = 356;;
+let _SYSZ_INS_CLY = 357;;
+let _SYSZ_INS_CPSDR = 358;;
+let _SYSZ_INS_CR = 359;;
+let _SYSZ_INS_CRL = 360;;
+let _SYSZ_INS_CS = 361;;
+let _SYSZ_INS_CSG = 362;;
+let _SYSZ_INS_CSY = 363;;
+let _SYSZ_INS_CXBR = 364;;
+let _SYSZ_INS_CXFBR = 365;;
+let _SYSZ_INS_CXGBR = 366;;
+let _SYSZ_INS_CXLFBR = 367;;
+let _SYSZ_INS_CXLGBR = 368;;
+let _SYSZ_INS_CY = 369;;
+let _SYSZ_INS_DDB = 370;;
+let _SYSZ_INS_DDBR = 371;;
+let _SYSZ_INS_DEB = 372;;
+let _SYSZ_INS_DEBR = 373;;
+let _SYSZ_INS_DL = 374;;
+let _SYSZ_INS_DLG = 375;;
+let _SYSZ_INS_DLGR = 376;;
+let _SYSZ_INS_DLR = 377;;
+let _SYSZ_INS_DSG = 378;;
+let _SYSZ_INS_DSGF = 379;;
+let _SYSZ_INS_DSGFR = 380;;
+let _SYSZ_INS_DSGR = 381;;
+let _SYSZ_INS_DXBR = 382;;
+let _SYSZ_INS_EAR = 383;;
+let _SYSZ_INS_FIDBR = 384;;
+let _SYSZ_INS_FIDBRA = 385;;
+let _SYSZ_INS_FIEBR = 386;;
+let _SYSZ_INS_FIEBRA = 387;;
+let _SYSZ_INS_FIXBR = 388;;
+let _SYSZ_INS_FIXBRA = 389;;
+let _SYSZ_INS_FLOGR = 390;;
+let _SYSZ_INS_IC = 391;;
+let _SYSZ_INS_ICY = 392;;
+let _SYSZ_INS_IIHF = 393;;
+let _SYSZ_INS_IIHH = 394;;
+let _SYSZ_INS_IIHL = 395;;
+let _SYSZ_INS_IILF = 396;;
+let _SYSZ_INS_IILH = 397;;
+let _SYSZ_INS_IILL = 398;;
+let _SYSZ_INS_IPM = 399;;
+let _SYSZ_INS_L = 400;;
+let _SYSZ_INS_LA = 401;;
+let _SYSZ_INS_LAA = 402;;
+let _SYSZ_INS_LAAG = 403;;
+let _SYSZ_INS_LAAL = 404;;
+let _SYSZ_INS_LAALG = 405;;
+let _SYSZ_INS_LAN = 406;;
+let _SYSZ_INS_LANG = 407;;
+let _SYSZ_INS_LAO = 408;;
+let _SYSZ_INS_LAOG = 409;;
+let _SYSZ_INS_LARL = 410;;
+let _SYSZ_INS_LAX = 411;;
+let _SYSZ_INS_LAXG = 412;;
+let _SYSZ_INS_LAY = 413;;
+let _SYSZ_INS_LB = 414;;
+let _SYSZ_INS_LBH = 415;;
+let _SYSZ_INS_LBR = 416;;
+let _SYSZ_INS_LCDBR = 417;;
+let _SYSZ_INS_LCEBR = 418;;
+let _SYSZ_INS_LCGFR = 419;;
+let _SYSZ_INS_LCGR = 420;;
+let _SYSZ_INS_LCR = 421;;
+let _SYSZ_INS_LCXBR = 422;;
+let _SYSZ_INS_LD = 423;;
+let _SYSZ_INS_LDEB = 424;;
+let _SYSZ_INS_LDEBR = 425;;
+let _SYSZ_INS_LDGR = 426;;
+let _SYSZ_INS_LDR = 427;;
+let _SYSZ_INS_LDXBR = 428;;
+let _SYSZ_INS_LDXBRA = 429;;
+let _SYSZ_INS_LDY = 430;;
+let _SYSZ_INS_LE = 431;;
+let _SYSZ_INS_LEDBR = 432;;
+let _SYSZ_INS_LEDBRA = 433;;
+let _SYSZ_INS_LER = 434;;
+let _SYSZ_INS_LEXBR = 435;;
+let _SYSZ_INS_LEXBRA = 436;;
+let _SYSZ_INS_LEY = 437;;
+let _SYSZ_INS_LFH = 438;;
+let _SYSZ_INS_LG = 439;;
+let _SYSZ_INS_LGB = 440;;
+let _SYSZ_INS_LGBR = 441;;
+let _SYSZ_INS_LGDR = 442;;
+let _SYSZ_INS_LGF = 443;;
+let _SYSZ_INS_LGFI = 444;;
+let _SYSZ_INS_LGFR = 445;;
+let _SYSZ_INS_LGFRL = 446;;
+let _SYSZ_INS_LGH = 447;;
+let _SYSZ_INS_LGHI = 448;;
+let _SYSZ_INS_LGHR = 449;;
+let _SYSZ_INS_LGHRL = 450;;
+let _SYSZ_INS_LGR = 451;;
+let _SYSZ_INS_LGRL = 452;;
+let _SYSZ_INS_LH = 453;;
+let _SYSZ_INS_LHH = 454;;
+let _SYSZ_INS_LHI = 455;;
+let _SYSZ_INS_LHR = 456;;
+let _SYSZ_INS_LHRL = 457;;
+let _SYSZ_INS_LHY = 458;;
+let _SYSZ_INS_LLC = 459;;
+let _SYSZ_INS_LLCH = 460;;
+let _SYSZ_INS_LLCR = 461;;
+let _SYSZ_INS_LLGC = 462;;
+let _SYSZ_INS_LLGCR = 463;;
+let _SYSZ_INS_LLGF = 464;;
+let _SYSZ_INS_LLGFR = 465;;
+let _SYSZ_INS_LLGFRL = 466;;
+let _SYSZ_INS_LLGH = 467;;
+let _SYSZ_INS_LLGHR = 468;;
+let _SYSZ_INS_LLGHRL = 469;;
+let _SYSZ_INS_LLH = 470;;
+let _SYSZ_INS_LLHH = 471;;
+let _SYSZ_INS_LLHR = 472;;
+let _SYSZ_INS_LLHRL = 473;;
+let _SYSZ_INS_LLIHF = 474;;
+let _SYSZ_INS_LLIHH = 475;;
+let _SYSZ_INS_LLIHL = 476;;
+let _SYSZ_INS_LLILF = 477;;
+let _SYSZ_INS_LLILH = 478;;
+let _SYSZ_INS_LLILL = 479;;
+let _SYSZ_INS_LMG = 480;;
+let _SYSZ_INS_LNDBR = 481;;
+let _SYSZ_INS_LNEBR = 482;;
+let _SYSZ_INS_LNGFR = 483;;
+let _SYSZ_INS_LNGR = 484;;
+let _SYSZ_INS_LNR = 485;;
+let _SYSZ_INS_LNXBR = 486;;
+let _SYSZ_INS_LPDBR = 487;;
+let _SYSZ_INS_LPEBR = 488;;
+let _SYSZ_INS_LPGFR = 489;;
+let _SYSZ_INS_LPGR = 490;;
+let _SYSZ_INS_LPR = 491;;
+let _SYSZ_INS_LPXBR = 492;;
+let _SYSZ_INS_LR = 493;;
+let _SYSZ_INS_LRL = 494;;
+let _SYSZ_INS_LRV = 495;;
+let _SYSZ_INS_LRVG = 496;;
+let _SYSZ_INS_LRVGR = 497;;
+let _SYSZ_INS_LRVR = 498;;
+let _SYSZ_INS_LT = 499;;
+let _SYSZ_INS_LTDBR = 500;;
+let _SYSZ_INS_LTEBR = 501;;
+let _SYSZ_INS_LTG = 502;;
+let _SYSZ_INS_LTGF = 503;;
+let _SYSZ_INS_LTGFR = 504;;
+let _SYSZ_INS_LTGR = 505;;
+let _SYSZ_INS_LTR = 506;;
+let _SYSZ_INS_LTXBR = 507;;
+let _SYSZ_INS_LXDB = 508;;
+let _SYSZ_INS_LXDBR = 509;;
+let _SYSZ_INS_LXEB = 510;;
+let _SYSZ_INS_LXEBR = 511;;
+let _SYSZ_INS_LXR = 512;;
+let _SYSZ_INS_LY = 513;;
+let _SYSZ_INS_LZDR = 514;;
+let _SYSZ_INS_LZER = 515;;
+let _SYSZ_INS_LZXR = 516;;
+let _SYSZ_INS_MADB = 517;;
+let _SYSZ_INS_MADBR = 518;;
+let _SYSZ_INS_MAEB = 519;;
+let _SYSZ_INS_MAEBR = 520;;
+let _SYSZ_INS_MDB = 521;;
+let _SYSZ_INS_MDBR = 522;;
+let _SYSZ_INS_MDEB = 523;;
+let _SYSZ_INS_MDEBR = 524;;
+let _SYSZ_INS_MEEB = 525;;
+let _SYSZ_INS_MEEBR = 526;;
+let _SYSZ_INS_MGHI = 527;;
+let _SYSZ_INS_MH = 528;;
+let _SYSZ_INS_MHI = 529;;
+let _SYSZ_INS_MHY = 530;;
+let _SYSZ_INS_MLG = 531;;
+let _SYSZ_INS_MLGR = 532;;
+let _SYSZ_INS_MS = 533;;
+let _SYSZ_INS_MSDB = 534;;
+let _SYSZ_INS_MSDBR = 535;;
+let _SYSZ_INS_MSEB = 536;;
+let _SYSZ_INS_MSEBR = 537;;
+let _SYSZ_INS_MSFI = 538;;
+let _SYSZ_INS_MSG = 539;;
+let _SYSZ_INS_MSGF = 540;;
+let _SYSZ_INS_MSGFI = 541;;
+let _SYSZ_INS_MSGFR = 542;;
+let _SYSZ_INS_MSGR = 543;;
+let _SYSZ_INS_MSR = 544;;
+let _SYSZ_INS_MSY = 545;;
+let _SYSZ_INS_MVC = 546;;
+let _SYSZ_INS_MVGHI = 547;;
+let _SYSZ_INS_MVHHI = 548;;
+let _SYSZ_INS_MVHI = 549;;
+let _SYSZ_INS_MVI = 550;;
+let _SYSZ_INS_MVIY = 551;;
+let _SYSZ_INS_MVST = 552;;
+let _SYSZ_INS_MXBR = 553;;
+let _SYSZ_INS_MXDB = 554;;
+let _SYSZ_INS_MXDBR = 555;;
+let _SYSZ_INS_N = 556;;
+let _SYSZ_INS_NC = 557;;
+let _SYSZ_INS_NG = 558;;
+let _SYSZ_INS_NGR = 559;;
+let _SYSZ_INS_NGRK = 560;;
+let _SYSZ_INS_NI = 561;;
+let _SYSZ_INS_NIHF = 562;;
+let _SYSZ_INS_NIHH = 563;;
+let _SYSZ_INS_NIHL = 564;;
+let _SYSZ_INS_NILF = 565;;
+let _SYSZ_INS_NILH = 566;;
+let _SYSZ_INS_NILL = 567;;
+let _SYSZ_INS_NIY = 568;;
+let _SYSZ_INS_NR = 569;;
+let _SYSZ_INS_NRK = 570;;
+let _SYSZ_INS_NY = 571;;
+let _SYSZ_INS_O = 572;;
+let _SYSZ_INS_OC = 573;;
+let _SYSZ_INS_OG = 574;;
+let _SYSZ_INS_OGR = 575;;
+let _SYSZ_INS_OGRK = 576;;
+let _SYSZ_INS_OI = 577;;
+let _SYSZ_INS_OIHF = 578;;
+let _SYSZ_INS_OIHH = 579;;
+let _SYSZ_INS_OIHL = 580;;
+let _SYSZ_INS_OILF = 581;;
+let _SYSZ_INS_OILH = 582;;
+let _SYSZ_INS_OILL = 583;;
+let _SYSZ_INS_OIY = 584;;
+let _SYSZ_INS_OR = 585;;
+let _SYSZ_INS_ORK = 586;;
+let _SYSZ_INS_OY = 587;;
+let _SYSZ_INS_PFD = 588;;
+let _SYSZ_INS_PFDRL = 589;;
+let _SYSZ_INS_RISBG = 590;;
+let _SYSZ_INS_RISBHG = 591;;
+let _SYSZ_INS_RISBLG = 592;;
+let _SYSZ_INS_RLL = 593;;
+let _SYSZ_INS_RLLG = 594;;
+let _SYSZ_INS_RNSBG = 595;;
+let _SYSZ_INS_ROSBG = 596;;
+let _SYSZ_INS_RXSBG = 597;;
+let _SYSZ_INS_S = 598;;
+let _SYSZ_INS_SDB = 599;;
+let _SYSZ_INS_SDBR = 600;;
+let _SYSZ_INS_SEB = 601;;
+let _SYSZ_INS_SEBR = 602;;
+let _SYSZ_INS_SG = 603;;
+let _SYSZ_INS_SGF = 604;;
+let _SYSZ_INS_SGFR = 605;;
+let _SYSZ_INS_SGR = 606;;
+let _SYSZ_INS_SGRK = 607;;
+let _SYSZ_INS_SH = 608;;
+let _SYSZ_INS_SHY = 609;;
+let _SYSZ_INS_SL = 610;;
+let _SYSZ_INS_SLB = 611;;
+let _SYSZ_INS_SLBG = 612;;
+let _SYSZ_INS_SLBR = 613;;
+let _SYSZ_INS_SLFI = 614;;
+let _SYSZ_INS_SLG = 615;;
+let _SYSZ_INS_SLBGR = 616;;
+let _SYSZ_INS_SLGF = 617;;
+let _SYSZ_INS_SLGFI = 618;;
+let _SYSZ_INS_SLGFR = 619;;
+let _SYSZ_INS_SLGR = 620;;
+let _SYSZ_INS_SLGRK = 621;;
+let _SYSZ_INS_SLL = 622;;
+let _SYSZ_INS_SLLG = 623;;
+let _SYSZ_INS_SLLK = 624;;
+let _SYSZ_INS_SLR = 625;;
+let _SYSZ_INS_SLRK = 626;;
+let _SYSZ_INS_SLY = 627;;
+let _SYSZ_INS_SQDB = 628;;
+let _SYSZ_INS_SQDBR = 629;;
+let _SYSZ_INS_SQEB = 630;;
+let _SYSZ_INS_SQEBR = 631;;
+let _SYSZ_INS_SQXBR = 632;;
+let _SYSZ_INS_SR = 633;;
+let _SYSZ_INS_SRA = 634;;
+let _SYSZ_INS_SRAG = 635;;
+let _SYSZ_INS_SRAK = 636;;
+let _SYSZ_INS_SRK = 637;;
+let _SYSZ_INS_SRL = 638;;
+let _SYSZ_INS_SRLG = 639;;
+let _SYSZ_INS_SRLK = 640;;
+let _SYSZ_INS_SRST = 641;;
+let _SYSZ_INS_ST = 642;;
+let _SYSZ_INS_STC = 643;;
+let _SYSZ_INS_STCH = 644;;
+let _SYSZ_INS_STCY = 645;;
+let _SYSZ_INS_STD = 646;;
+let _SYSZ_INS_STDY = 647;;
+let _SYSZ_INS_STE = 648;;
+let _SYSZ_INS_STEY = 649;;
+let _SYSZ_INS_STFH = 650;;
+let _SYSZ_INS_STG = 651;;
+let _SYSZ_INS_STGRL = 652;;
+let _SYSZ_INS_STH = 653;;
+let _SYSZ_INS_STHH = 654;;
+let _SYSZ_INS_STHRL = 655;;
+let _SYSZ_INS_STHY = 656;;
+let _SYSZ_INS_STMG = 657;;
+let _SYSZ_INS_STRL = 658;;
+let _SYSZ_INS_STRV = 659;;
+let _SYSZ_INS_STRVG = 660;;
+let _SYSZ_INS_STY = 661;;
+let _SYSZ_INS_SXBR = 662;;
+let _SYSZ_INS_SY = 663;;
+let _SYSZ_INS_TM = 664;;
+let _SYSZ_INS_TMHH = 665;;
+let _SYSZ_INS_TMHL = 666;;
+let _SYSZ_INS_TMLH = 667;;
+let _SYSZ_INS_TMLL = 668;;
+let _SYSZ_INS_TMY = 669;;
+let _SYSZ_INS_X = 670;;
+let _SYSZ_INS_XC = 671;;
+let _SYSZ_INS_XG = 672;;
+let _SYSZ_INS_XGR = 673;;
+let _SYSZ_INS_XGRK = 674;;
+let _SYSZ_INS_XI = 675;;
+let _SYSZ_INS_XIHF = 676;;
+let _SYSZ_INS_XILF = 677;;
+let _SYSZ_INS_XIY = 678;;
+let _SYSZ_INS_XR = 679;;
+let _SYSZ_INS_XRK = 680;;
+let _SYSZ_INS_XY = 681;;
+let _SYSZ_INS_AD = 682;;
+let _SYSZ_INS_ADR = 683;;
+let _SYSZ_INS_ADTR = 684;;
+let _SYSZ_INS_ADTRA = 685;;
+let _SYSZ_INS_AE = 686;;
+let _SYSZ_INS_AER = 687;;
+let _SYSZ_INS_AGH = 688;;
+let _SYSZ_INS_AHHHR = 689;;
+let _SYSZ_INS_AHHLR = 690;;
+let _SYSZ_INS_ALGSI = 691;;
+let _SYSZ_INS_ALHHHR = 692;;
+let _SYSZ_INS_ALHHLR = 693;;
+let _SYSZ_INS_ALSI = 694;;
+let _SYSZ_INS_ALSIH = 695;;
+let _SYSZ_INS_ALSIHN = 696;;
+let _SYSZ_INS_AP = 697;;
+let _SYSZ_INS_AU = 698;;
+let _SYSZ_INS_AUR = 699;;
+let _SYSZ_INS_AW = 700;;
+let _SYSZ_INS_AWR = 701;;
+let _SYSZ_INS_AXR = 702;;
+let _SYSZ_INS_AXTR = 703;;
+let _SYSZ_INS_AXTRA = 704;;
+let _SYSZ_INS_B = 705;;
+let _SYSZ_INS_BAKR = 706;;
+let _SYSZ_INS_BAL = 707;;
+let _SYSZ_INS_BALR = 708;;
+let _SYSZ_INS_BAS = 709;;
+let _SYSZ_INS_BASSM = 710;;
+let _SYSZ_INS_BC = 711;;
+let _SYSZ_INS_BCT = 712;;
+let _SYSZ_INS_BCTG = 713;;
+let _SYSZ_INS_BCTGR = 714;;
+let _SYSZ_INS_BCTR = 715;;
+let _SYSZ_INS_BE = 716;;
+let _SYSZ_INS_BH = 717;;
+let _SYSZ_INS_BHE = 718;;
+let _SYSZ_INS_BI = 719;;
+let _SYSZ_INS_BIC = 720;;
+let _SYSZ_INS_BIE = 721;;
+let _SYSZ_INS_BIH = 722;;
+let _SYSZ_INS_BIHE = 723;;
+let _SYSZ_INS_BIL = 724;;
+let _SYSZ_INS_BILE = 725;;
+let _SYSZ_INS_BILH = 726;;
+let _SYSZ_INS_BIM = 727;;
+let _SYSZ_INS_BINE = 728;;
+let _SYSZ_INS_BINH = 729;;
+let _SYSZ_INS_BINHE = 730;;
+let _SYSZ_INS_BINL = 731;;
+let _SYSZ_INS_BINLE = 732;;
+let _SYSZ_INS_BINLH = 733;;
+let _SYSZ_INS_BINM = 734;;
+let _SYSZ_INS_BINO = 735;;
+let _SYSZ_INS_BINP = 736;;
+let _SYSZ_INS_BINZ = 737;;
+let _SYSZ_INS_BIO = 738;;
+let _SYSZ_INS_BIP = 739;;
+let _SYSZ_INS_BIZ = 740;;
+let _SYSZ_INS_BL = 741;;
+let _SYSZ_INS_BLE = 742;;
+let _SYSZ_INS_BLH = 743;;
+let _SYSZ_INS_BM = 744;;
+let _SYSZ_INS_BMR = 745;;
+let _SYSZ_INS_BNE = 746;;
+let _SYSZ_INS_BNH = 747;;
+let _SYSZ_INS_BNHE = 748;;
+let _SYSZ_INS_BNL = 749;;
+let _SYSZ_INS_BNLE = 750;;
+let _SYSZ_INS_BNLH = 751;;
+let _SYSZ_INS_BNM = 752;;
+let _SYSZ_INS_BNMR = 753;;
+let _SYSZ_INS_BNO = 754;;
+let _SYSZ_INS_BNP = 755;;
+let _SYSZ_INS_BNPR = 756;;
+let _SYSZ_INS_BNZ = 757;;
+let _SYSZ_INS_BNZR = 758;;
+let _SYSZ_INS_BO = 759;;
+let _SYSZ_INS_BP = 760;;
+let _SYSZ_INS_BPP = 761;;
+let _SYSZ_INS_BPR = 762;;
+let _SYSZ_INS_BPRP = 763;;
+let _SYSZ_INS_BRCTH = 764;;
+let _SYSZ_INS_BRXH = 765;;
+let _SYSZ_INS_BRXHG = 766;;
+let _SYSZ_INS_BRXLE = 767;;
+let _SYSZ_INS_BRXLG = 768;;
+let _SYSZ_INS_BSA = 769;;
+let _SYSZ_INS_BSG = 770;;
+let _SYSZ_INS_BSM = 771;;
+let _SYSZ_INS_BXH = 772;;
+let _SYSZ_INS_BXHG = 773;;
+let _SYSZ_INS_BXLE = 774;;
+let _SYSZ_INS_BXLEG = 775;;
+let _SYSZ_INS_BZ = 776;;
+let _SYSZ_INS_BZR = 777;;
+let _SYSZ_INS_CD = 778;;
+let _SYSZ_INS_CDFBRA = 779;;
+let _SYSZ_INS_CDFR = 780;;
+let _SYSZ_INS_CDFTR = 781;;
+let _SYSZ_INS_CDGBRA = 782;;
+let _SYSZ_INS_CDGR = 783;;
+let _SYSZ_INS_CDGTR = 784;;
+let _SYSZ_INS_CDGTRA = 785;;
+let _SYSZ_INS_CDLFTR = 786;;
+let _SYSZ_INS_CDLGTR = 787;;
+let _SYSZ_INS_CDPT = 788;;
+let _SYSZ_INS_CDR = 789;;
+let _SYSZ_INS_CDS = 790;;
+let _SYSZ_INS_CDSG = 791;;
+let _SYSZ_INS_CDSTR = 792;;
+let _SYSZ_INS_CDSY = 793;;
+let _SYSZ_INS_CDTR = 794;;
+let _SYSZ_INS_CDUTR = 795;;
+let _SYSZ_INS_CDZT = 796;;
+let _SYSZ_INS_CE = 797;;
+let _SYSZ_INS_CEDTR = 798;;
+let _SYSZ_INS_CEFBRA = 799;;
+let _SYSZ_INS_CEFR = 800;;
+let _SYSZ_INS_CEGBRA = 801;;
+let _SYSZ_INS_CEGR = 802;;
+let _SYSZ_INS_CER = 803;;
+let _SYSZ_INS_CEXTR = 804;;
+let _SYSZ_INS_CFC = 805;;
+let _SYSZ_INS_CFDBRA = 806;;
+let _SYSZ_INS_CFDR = 807;;
+let _SYSZ_INS_CFDTR = 808;;
+let _SYSZ_INS_CFEBRA = 809;;
+let _SYSZ_INS_CFER = 810;;
+let _SYSZ_INS_CFXBRA = 811;;
+let _SYSZ_INS_CFXR = 812;;
+let _SYSZ_INS_CFXTR = 813;;
+let _SYSZ_INS_CGDBRA = 814;;
+let _SYSZ_INS_CGDR = 815;;
+let _SYSZ_INS_CGDTR = 816;;
+let _SYSZ_INS_CGDTRA = 817;;
+let _SYSZ_INS_CGEBRA = 818;;
+let _SYSZ_INS_CGER = 819;;
+let _SYSZ_INS_CGIB = 820;;
+let _SYSZ_INS_CGIBE = 821;;
+let _SYSZ_INS_CGIBH = 822;;
+let _SYSZ_INS_CGIBHE = 823;;
+let _SYSZ_INS_CGIBL = 824;;
+let _SYSZ_INS_CGIBLE = 825;;
+let _SYSZ_INS_CGIBLH = 826;;
+let _SYSZ_INS_CGIBNE = 827;;
+let _SYSZ_INS_CGIBNH = 828;;
+let _SYSZ_INS_CGIBNHE = 829;;
+let _SYSZ_INS_CGIBNL = 830;;
+let _SYSZ_INS_CGIBNLE = 831;;
+let _SYSZ_INS_CGIBNLH = 832;;
+let _SYSZ_INS_CGIT = 833;;
+let _SYSZ_INS_CGITE = 834;;
+let _SYSZ_INS_CGITH = 835;;
+let _SYSZ_INS_CGITHE = 836;;
+let _SYSZ_INS_CGITL = 837;;
+let _SYSZ_INS_CGITLE = 838;;
+let _SYSZ_INS_CGITLH = 839;;
+let _SYSZ_INS_CGITNE = 840;;
+let _SYSZ_INS_CGITNH = 841;;
+let _SYSZ_INS_CGITNHE = 842;;
+let _SYSZ_INS_CGITNL = 843;;
+let _SYSZ_INS_CGITNLE = 844;;
+let _SYSZ_INS_CGITNLH = 845;;
+let _SYSZ_INS_CGRB = 846;;
+let _SYSZ_INS_CGRBE = 847;;
+let _SYSZ_INS_CGRBH = 848;;
+let _SYSZ_INS_CGRBHE = 849;;
+let _SYSZ_INS_CGRBL = 850;;
+let _SYSZ_INS_CGRBLE = 851;;
+let _SYSZ_INS_CGRBLH = 852;;
+let _SYSZ_INS_CGRBNE = 853;;
+let _SYSZ_INS_CGRBNH = 854;;
+let _SYSZ_INS_CGRBNHE = 855;;
+let _SYSZ_INS_CGRBNL = 856;;
+let _SYSZ_INS_CGRBNLE = 857;;
+let _SYSZ_INS_CGRBNLH = 858;;
+let _SYSZ_INS_CGRT = 859;;
+let _SYSZ_INS_CGRTE = 860;;
+let _SYSZ_INS_CGRTH = 861;;
+let _SYSZ_INS_CGRTHE = 862;;
+let _SYSZ_INS_CGRTL = 863;;
+let _SYSZ_INS_CGRTLE = 864;;
+let _SYSZ_INS_CGRTLH = 865;;
+let _SYSZ_INS_CGRTNE = 866;;
+let _SYSZ_INS_CGRTNH = 867;;
+let _SYSZ_INS_CGRTNHE = 868;;
+let _SYSZ_INS_CGRTNL = 869;;
+let _SYSZ_INS_CGRTNLE = 870;;
+let _SYSZ_INS_CGRTNLH = 871;;
+let _SYSZ_INS_CGXBRA = 872;;
+let _SYSZ_INS_CGXR = 873;;
+let _SYSZ_INS_CGXTR = 874;;
+let _SYSZ_INS_CGXTRA = 875;;
+let _SYSZ_INS_CHHR = 876;;
+let _SYSZ_INS_CHLR = 877;;
+let _SYSZ_INS_CIB = 878;;
+let _SYSZ_INS_CIBE = 879;;
+let _SYSZ_INS_CIBH = 880;;
+let _SYSZ_INS_CIBHE = 881;;
+let _SYSZ_INS_CIBL = 882;;
+let _SYSZ_INS_CIBLE = 883;;
+let _SYSZ_INS_CIBLH = 884;;
+let _SYSZ_INS_CIBNE = 885;;
+let _SYSZ_INS_CIBNH = 886;;
+let _SYSZ_INS_CIBNHE = 887;;
+let _SYSZ_INS_CIBNL = 888;;
+let _SYSZ_INS_CIBNLE = 889;;
+let _SYSZ_INS_CIBNLH = 890;;
+let _SYSZ_INS_CIT = 891;;
+let _SYSZ_INS_CITE = 892;;
+let _SYSZ_INS_CITH = 893;;
+let _SYSZ_INS_CITHE = 894;;
+let _SYSZ_INS_CITL = 895;;
+let _SYSZ_INS_CITLE = 896;;
+let _SYSZ_INS_CITLH = 897;;
+let _SYSZ_INS_CITNE = 898;;
+let _SYSZ_INS_CITNH = 899;;
+let _SYSZ_INS_CITNHE = 900;;
+let _SYSZ_INS_CITNL = 901;;
+let _SYSZ_INS_CITNLE = 902;;
+let _SYSZ_INS_CITNLH = 903;;
+let _SYSZ_INS_CKSM = 904;;
+let _SYSZ_INS_CLCL = 905;;
+let _SYSZ_INS_CLCLE = 906;;
+let _SYSZ_INS_CLCLU = 907;;
+let _SYSZ_INS_CLFDTR = 908;;
+let _SYSZ_INS_CLFIT = 909;;
+let _SYSZ_INS_CLFITE = 910;;
+let _SYSZ_INS_CLFITH = 911;;
+let _SYSZ_INS_CLFITHE = 912;;
+let _SYSZ_INS_CLFITL = 913;;
+let _SYSZ_INS_CLFITLE = 914;;
+let _SYSZ_INS_CLFITLH = 915;;
+let _SYSZ_INS_CLFITNE = 916;;
+let _SYSZ_INS_CLFITNH = 917;;
+let _SYSZ_INS_CLFITNHE = 918;;
+let _SYSZ_INS_CLFITNL = 919;;
+let _SYSZ_INS_CLFITNLE = 920;;
+let _SYSZ_INS_CLFITNLH = 921;;
+let _SYSZ_INS_CLFXTR = 922;;
+let _SYSZ_INS_CLGDTR = 923;;
+let _SYSZ_INS_CLGIB = 924;;
+let _SYSZ_INS_CLGIBE = 925;;
+let _SYSZ_INS_CLGIBH = 926;;
+let _SYSZ_INS_CLGIBHE = 927;;
+let _SYSZ_INS_CLGIBL = 928;;
+let _SYSZ_INS_CLGIBLE = 929;;
+let _SYSZ_INS_CLGIBLH = 930;;
+let _SYSZ_INS_CLGIBNE = 931;;
+let _SYSZ_INS_CLGIBNH = 932;;
+let _SYSZ_INS_CLGIBNHE = 933;;
+let _SYSZ_INS_CLGIBNL = 934;;
+let _SYSZ_INS_CLGIBNLE = 935;;
+let _SYSZ_INS_CLGIBNLH = 936;;
+let _SYSZ_INS_CLGIT = 937;;
+let _SYSZ_INS_CLGITE = 938;;
+let _SYSZ_INS_CLGITH = 939;;
+let _SYSZ_INS_CLGITHE = 940;;
+let _SYSZ_INS_CLGITL = 941;;
+let _SYSZ_INS_CLGITLE = 942;;
+let _SYSZ_INS_CLGITLH = 943;;
+let _SYSZ_INS_CLGITNE = 944;;
+let _SYSZ_INS_CLGITNH = 945;;
+let _SYSZ_INS_CLGITNHE = 946;;
+let _SYSZ_INS_CLGITNL = 947;;
+let _SYSZ_INS_CLGITNLE = 948;;
+let _SYSZ_INS_CLGITNLH = 949;;
+let _SYSZ_INS_CLGRB = 950;;
+let _SYSZ_INS_CLGRBE = 951;;
+let _SYSZ_INS_CLGRBH = 952;;
+let _SYSZ_INS_CLGRBHE = 953;;
+let _SYSZ_INS_CLGRBL = 954;;
+let _SYSZ_INS_CLGRBLE = 955;;
+let _SYSZ_INS_CLGRBLH = 956;;
+let _SYSZ_INS_CLGRBNE = 957;;
+let _SYSZ_INS_CLGRBNH = 958;;
+let _SYSZ_INS_CLGRBNHE = 959;;
+let _SYSZ_INS_CLGRBNL = 960;;
+let _SYSZ_INS_CLGRBNLE = 961;;
+let _SYSZ_INS_CLGRBNLH = 962;;
+let _SYSZ_INS_CLGRT = 963;;
+let _SYSZ_INS_CLGRTE = 964;;
+let _SYSZ_INS_CLGRTH = 965;;
+let _SYSZ_INS_CLGRTHE = 966;;
+let _SYSZ_INS_CLGRTL = 967;;
+let _SYSZ_INS_CLGRTLE = 968;;
+let _SYSZ_INS_CLGRTLH = 969;;
+let _SYSZ_INS_CLGRTNE = 970;;
+let _SYSZ_INS_CLGRTNH = 971;;
+let _SYSZ_INS_CLGRTNHE = 972;;
+let _SYSZ_INS_CLGRTNL = 973;;
+let _SYSZ_INS_CLGRTNLE = 974;;
+let _SYSZ_INS_CLGRTNLH = 975;;
+let _SYSZ_INS_CLGT = 976;;
+let _SYSZ_INS_CLGTE = 977;;
+let _SYSZ_INS_CLGTH = 978;;
+let _SYSZ_INS_CLGTHE = 979;;
+let _SYSZ_INS_CLGTL = 980;;
+let _SYSZ_INS_CLGTLE = 981;;
+let _SYSZ_INS_CLGTLH = 982;;
+let _SYSZ_INS_CLGTNE = 983;;
+let _SYSZ_INS_CLGTNH = 984;;
+let _SYSZ_INS_CLGTNHE = 985;;
+let _SYSZ_INS_CLGTNL = 986;;
+let _SYSZ_INS_CLGTNLE = 987;;
+let _SYSZ_INS_CLGTNLH = 988;;
+let _SYSZ_INS_CLGXTR = 989;;
+let _SYSZ_INS_CLHHR = 990;;
+let _SYSZ_INS_CLHLR = 991;;
+let _SYSZ_INS_CLIB = 992;;
+let _SYSZ_INS_CLIBE = 993;;
+let _SYSZ_INS_CLIBH = 994;;
+let _SYSZ_INS_CLIBHE = 995;;
+let _SYSZ_INS_CLIBL = 996;;
+let _SYSZ_INS_CLIBLE = 997;;
+let _SYSZ_INS_CLIBLH = 998;;
+let _SYSZ_INS_CLIBNE = 999;;
+let _SYSZ_INS_CLIBNH = 1000;;
+let _SYSZ_INS_CLIBNHE = 1001;;
+let _SYSZ_INS_CLIBNL = 1002;;
+let _SYSZ_INS_CLIBNLE = 1003;;
+let _SYSZ_INS_CLIBNLH = 1004;;
+let _SYSZ_INS_CLM = 1005;;
+let _SYSZ_INS_CLMH = 1006;;
+let _SYSZ_INS_CLMY = 1007;;
+let _SYSZ_INS_CLRB = 1008;;
+let _SYSZ_INS_CLRBE = 1009;;
+let _SYSZ_INS_CLRBH = 1010;;
+let _SYSZ_INS_CLRBHE = 1011;;
+let _SYSZ_INS_CLRBL = 1012;;
+let _SYSZ_INS_CLRBLE = 1013;;
+let _SYSZ_INS_CLRBLH = 1014;;
+let _SYSZ_INS_CLRBNE = 1015;;
+let _SYSZ_INS_CLRBNH = 1016;;
+let _SYSZ_INS_CLRBNHE = 1017;;
+let _SYSZ_INS_CLRBNL = 1018;;
+let _SYSZ_INS_CLRBNLE = 1019;;
+let _SYSZ_INS_CLRBNLH = 1020;;
+let _SYSZ_INS_CLRT = 1021;;
+let _SYSZ_INS_CLRTE = 1022;;
+let _SYSZ_INS_CLRTH = 1023;;
+let _SYSZ_INS_CLRTHE = 1024;;
+let _SYSZ_INS_CLRTL = 1025;;
+let _SYSZ_INS_CLRTLE = 1026;;
+let _SYSZ_INS_CLRTLH = 1027;;
+let _SYSZ_INS_CLRTNE = 1028;;
+let _SYSZ_INS_CLRTNH = 1029;;
+let _SYSZ_INS_CLRTNHE = 1030;;
+let _SYSZ_INS_CLRTNL = 1031;;
+let _SYSZ_INS_CLRTNLE = 1032;;
+let _SYSZ_INS_CLRTNLH = 1033;;
+let _SYSZ_INS_CLT = 1034;;
+let _SYSZ_INS_CLTE = 1035;;
+let _SYSZ_INS_CLTH = 1036;;
+let _SYSZ_INS_CLTHE = 1037;;
+let _SYSZ_INS_CLTL = 1038;;
+let _SYSZ_INS_CLTLE = 1039;;
+let _SYSZ_INS_CLTLH = 1040;;
+let _SYSZ_INS_CLTNE = 1041;;
+let _SYSZ_INS_CLTNH = 1042;;
+let _SYSZ_INS_CLTNHE = 1043;;
+let _SYSZ_INS_CLTNL = 1044;;
+let _SYSZ_INS_CLTNLE = 1045;;
+let _SYSZ_INS_CLTNLH = 1046;;
+let _SYSZ_INS_CMPSC = 1047;;
+let _SYSZ_INS_CP = 1048;;
+let _SYSZ_INS_CPDT = 1049;;
+let _SYSZ_INS_CPXT = 1050;;
+let _SYSZ_INS_CPYA = 1051;;
+let _SYSZ_INS_CRB = 1052;;
+let _SYSZ_INS_CRBE = 1053;;
+let _SYSZ_INS_CRBH = 1054;;
+let _SYSZ_INS_CRBHE = 1055;;
+let _SYSZ_INS_CRBL = 1056;;
+let _SYSZ_INS_CRBLE = 1057;;
+let _SYSZ_INS_CRBLH = 1058;;
+let _SYSZ_INS_CRBNE = 1059;;
+let _SYSZ_INS_CRBNH = 1060;;
+let _SYSZ_INS_CRBNHE = 1061;;
+let _SYSZ_INS_CRBNL = 1062;;
+let _SYSZ_INS_CRBNLE = 1063;;
+let _SYSZ_INS_CRBNLH = 1064;;
+let _SYSZ_INS_CRDTE = 1065;;
+let _SYSZ_INS_CRT = 1066;;
+let _SYSZ_INS_CRTE = 1067;;
+let _SYSZ_INS_CRTH = 1068;;
+let _SYSZ_INS_CRTHE = 1069;;
+let _SYSZ_INS_CRTL = 1070;;
+let _SYSZ_INS_CRTLE = 1071;;
+let _SYSZ_INS_CRTLH = 1072;;
+let _SYSZ_INS_CRTNE = 1073;;
+let _SYSZ_INS_CRTNH = 1074;;
+let _SYSZ_INS_CRTNHE = 1075;;
+let _SYSZ_INS_CRTNL = 1076;;
+let _SYSZ_INS_CRTNLE = 1077;;
+let _SYSZ_INS_CRTNLH = 1078;;
+let _SYSZ_INS_CSCH = 1079;;
+let _SYSZ_INS_CSDTR = 1080;;
+let _SYSZ_INS_CSP = 1081;;
+let _SYSZ_INS_CSPG = 1082;;
+let _SYSZ_INS_CSST = 1083;;
+let _SYSZ_INS_CSXTR = 1084;;
+let _SYSZ_INS_CU12 = 1085;;
+let _SYSZ_INS_CU14 = 1086;;
+let _SYSZ_INS_CU21 = 1087;;
+let _SYSZ_INS_CU24 = 1088;;
+let _SYSZ_INS_CU41 = 1089;;
+let _SYSZ_INS_CU42 = 1090;;
+let _SYSZ_INS_CUDTR = 1091;;
+let _SYSZ_INS_CUSE = 1092;;
+let _SYSZ_INS_CUTFU = 1093;;
+let _SYSZ_INS_CUUTF = 1094;;
+let _SYSZ_INS_CUXTR = 1095;;
+let _SYSZ_INS_CVB = 1096;;
+let _SYSZ_INS_CVBG = 1097;;
+let _SYSZ_INS_CVBY = 1098;;
+let _SYSZ_INS_CVD = 1099;;
+let _SYSZ_INS_CVDG = 1100;;
+let _SYSZ_INS_CVDY = 1101;;
+let _SYSZ_INS_CXFBRA = 1102;;
+let _SYSZ_INS_CXFR = 1103;;
+let _SYSZ_INS_CXFTR = 1104;;
+let _SYSZ_INS_CXGBRA = 1105;;
+let _SYSZ_INS_CXGR = 1106;;
+let _SYSZ_INS_CXGTR = 1107;;
+let _SYSZ_INS_CXGTRA = 1108;;
+let _SYSZ_INS_CXLFTR = 1109;;
+let _SYSZ_INS_CXLGTR = 1110;;
+let _SYSZ_INS_CXPT = 1111;;
+let _SYSZ_INS_CXR = 1112;;
+let _SYSZ_INS_CXSTR = 1113;;
+let _SYSZ_INS_CXTR = 1114;;
+let _SYSZ_INS_CXUTR = 1115;;
+let _SYSZ_INS_CXZT = 1116;;
+let _SYSZ_INS_CZDT = 1117;;
+let _SYSZ_INS_CZXT = 1118;;
+let _SYSZ_INS_D = 1119;;
+let _SYSZ_INS_DD = 1120;;
+let _SYSZ_INS_DDR = 1121;;
+let _SYSZ_INS_DDTR = 1122;;
+let _SYSZ_INS_DDTRA = 1123;;
+let _SYSZ_INS_DE = 1124;;
+let _SYSZ_INS_DER = 1125;;
+let _SYSZ_INS_DIAG = 1126;;
+let _SYSZ_INS_DIDBR = 1127;;
+let _SYSZ_INS_DIEBR = 1128;;
+let _SYSZ_INS_DP = 1129;;
+let _SYSZ_INS_DR = 1130;;
+let _SYSZ_INS_DXR = 1131;;
+let _SYSZ_INS_DXTR = 1132;;
+let _SYSZ_INS_DXTRA = 1133;;
+let _SYSZ_INS_ECAG = 1134;;
+let _SYSZ_INS_ECCTR = 1135;;
+let _SYSZ_INS_ECPGA = 1136;;
+let _SYSZ_INS_ECTG = 1137;;
+let _SYSZ_INS_ED = 1138;;
+let _SYSZ_INS_EDMK = 1139;;
+let _SYSZ_INS_EEDTR = 1140;;
+let _SYSZ_INS_EEXTR = 1141;;
+let _SYSZ_INS_EFPC = 1142;;
+let _SYSZ_INS_EPAIR = 1143;;
+let _SYSZ_INS_EPAR = 1144;;
+let _SYSZ_INS_EPCTR = 1145;;
+let _SYSZ_INS_EPSW = 1146;;
+let _SYSZ_INS_EREG = 1147;;
+let _SYSZ_INS_EREGG = 1148;;
+let _SYSZ_INS_ESAIR = 1149;;
+let _SYSZ_INS_ESAR = 1150;;
+let _SYSZ_INS_ESDTR = 1151;;
+let _SYSZ_INS_ESEA = 1152;;
+let _SYSZ_INS_ESTA = 1153;;
+let _SYSZ_INS_ESXTR = 1154;;
+let _SYSZ_INS_ETND = 1155;;
+let _SYSZ_INS_EX = 1156;;
+let _SYSZ_INS_EXRL = 1157;;
+let _SYSZ_INS_FIDR = 1158;;
+let _SYSZ_INS_FIDTR = 1159;;
+let _SYSZ_INS_FIER = 1160;;
+let _SYSZ_INS_FIXR = 1161;;
+let _SYSZ_INS_FIXTR = 1162;;
+let _SYSZ_INS_HDR = 1163;;
+let _SYSZ_INS_HER = 1164;;
+let _SYSZ_INS_HSCH = 1165;;
+let _SYSZ_INS_IAC = 1166;;
+let _SYSZ_INS_ICM = 1167;;
+let _SYSZ_INS_ICMH = 1168;;
+let _SYSZ_INS_ICMY = 1169;;
+let _SYSZ_INS_IDTE = 1170;;
+let _SYSZ_INS_IEDTR = 1171;;
+let _SYSZ_INS_IEXTR = 1172;;
+let _SYSZ_INS_IPK = 1173;;
+let _SYSZ_INS_IPTE = 1174;;
+let _SYSZ_INS_IRBM = 1175;;
+let _SYSZ_INS_ISKE = 1176;;
+let _SYSZ_INS_IVSK = 1177;;
+let _SYSZ_INS_JGM = 1178;;
+let _SYSZ_INS_JGNM = 1179;;
+let _SYSZ_INS_JGNP = 1180;;
+let _SYSZ_INS_JGNZ = 1181;;
+let _SYSZ_INS_JGP = 1182;;
+let _SYSZ_INS_JGZ = 1183;;
+let _SYSZ_INS_JM = 1184;;
+let _SYSZ_INS_JNM = 1185;;
+let _SYSZ_INS_JNP = 1186;;
+let _SYSZ_INS_JNZ = 1187;;
+let _SYSZ_INS_JP = 1188;;
+let _SYSZ_INS_JZ = 1189;;
+let _SYSZ_INS_KDB = 1190;;
+let _SYSZ_INS_KDBR = 1191;;
+let _SYSZ_INS_KDTR = 1192;;
+let _SYSZ_INS_KEB = 1193;;
+let _SYSZ_INS_KEBR = 1194;;
+let _SYSZ_INS_KIMD = 1195;;
+let _SYSZ_INS_KLMD = 1196;;
+let _SYSZ_INS_KM = 1197;;
+let _SYSZ_INS_KMA = 1198;;
+let _SYSZ_INS_KMAC = 1199;;
+let _SYSZ_INS_KMC = 1200;;
+let _SYSZ_INS_KMCTR = 1201;;
+let _SYSZ_INS_KMF = 1202;;
+let _SYSZ_INS_KMO = 1203;;
+let _SYSZ_INS_KXBR = 1204;;
+let _SYSZ_INS_KXTR = 1205;;
+let _SYSZ_INS_LAE = 1206;;
+let _SYSZ_INS_LAEY = 1207;;
+let _SYSZ_INS_LAM = 1208;;
+let _SYSZ_INS_LAMY = 1209;;
+let _SYSZ_INS_LASP = 1210;;
+let _SYSZ_INS_LAT = 1211;;
+let _SYSZ_INS_LCBB = 1212;;
+let _SYSZ_INS_LCCTL = 1213;;
+let _SYSZ_INS_LCDFR = 1214;;
+let _SYSZ_INS_LCDR = 1215;;
+let _SYSZ_INS_LCER = 1216;;
+let _SYSZ_INS_LCTL = 1217;;
+let _SYSZ_INS_LCTLG = 1218;;
+let _SYSZ_INS_LCXR = 1219;;
+let _SYSZ_INS_LDE = 1220;;
+let _SYSZ_INS_LDER = 1221;;
+let _SYSZ_INS_LDETR = 1222;;
+let _SYSZ_INS_LDXR = 1223;;
+let _SYSZ_INS_LDXTR = 1224;;
+let _SYSZ_INS_LEDR = 1225;;
+let _SYSZ_INS_LEDTR = 1226;;
+let _SYSZ_INS_LEXR = 1227;;
+let _SYSZ_INS_LFAS = 1228;;
+let _SYSZ_INS_LFHAT = 1229;;
+let _SYSZ_INS_LFPC = 1230;;
+let _SYSZ_INS_LGAT = 1231;;
+let _SYSZ_INS_LGG = 1232;;
+let _SYSZ_INS_LGSC = 1233;;
+let _SYSZ_INS_LLGFAT = 1234;;
+let _SYSZ_INS_LLGFSG = 1235;;
+let _SYSZ_INS_LLGT = 1236;;
+let _SYSZ_INS_LLGTAT = 1237;;
+let _SYSZ_INS_LLGTR = 1238;;
+let _SYSZ_INS_LLZRGF = 1239;;
+let _SYSZ_INS_LM = 1240;;
+let _SYSZ_INS_LMD = 1241;;
+let _SYSZ_INS_LMH = 1242;;
+let _SYSZ_INS_LMY = 1243;;
+let _SYSZ_INS_LNDFR = 1244;;
+let _SYSZ_INS_LNDR = 1245;;
+let _SYSZ_INS_LNER = 1246;;
+let _SYSZ_INS_LNXR = 1247;;
+let _SYSZ_INS_LOCFH = 1248;;
+let _SYSZ_INS_LOCFHE = 1249;;
+let _SYSZ_INS_LOCFHH = 1250;;
+let _SYSZ_INS_LOCFHHE = 1251;;
+let _SYSZ_INS_LOCFHL = 1252;;
+let _SYSZ_INS_LOCFHLE = 1253;;
+let _SYSZ_INS_LOCFHLH = 1254;;
+let _SYSZ_INS_LOCFHM = 1255;;
+let _SYSZ_INS_LOCFHNE = 1256;;
+let _SYSZ_INS_LOCFHNH = 1257;;
+let _SYSZ_INS_LOCFHNHE = 1258;;
+let _SYSZ_INS_LOCFHNL = 1259;;
+let _SYSZ_INS_LOCFHNLE = 1260;;
+let _SYSZ_INS_LOCFHNLH = 1261;;
+let _SYSZ_INS_LOCFHNM = 1262;;
+let _SYSZ_INS_LOCFHNO = 1263;;
+let _SYSZ_INS_LOCFHNP = 1264;;
+let _SYSZ_INS_LOCFHNZ = 1265;;
+let _SYSZ_INS_LOCFHO = 1266;;
+let _SYSZ_INS_LOCFHP = 1267;;
+let _SYSZ_INS_LOCFHR = 1268;;
+let _SYSZ_INS_LOCFHRE = 1269;;
+let _SYSZ_INS_LOCFHRH = 1270;;
+let _SYSZ_INS_LOCFHRHE = 1271;;
+let _SYSZ_INS_LOCFHRL = 1272;;
+let _SYSZ_INS_LOCFHRLE = 1273;;
+let _SYSZ_INS_LOCFHRLH = 1274;;
+let _SYSZ_INS_LOCFHRM = 1275;;
+let _SYSZ_INS_LOCFHRNE = 1276;;
+let _SYSZ_INS_LOCFHRNH = 1277;;
+let _SYSZ_INS_LOCFHRNHE = 1278;;
+let _SYSZ_INS_LOCFHRNL = 1279;;
+let _SYSZ_INS_LOCFHRNLE = 1280;;
+let _SYSZ_INS_LOCFHRNLH = 1281;;
+let _SYSZ_INS_LOCFHRNM = 1282;;
+let _SYSZ_INS_LOCFHRNO = 1283;;
+let _SYSZ_INS_LOCFHRNP = 1284;;
+let _SYSZ_INS_LOCFHRNZ = 1285;;
+let _SYSZ_INS_LOCFHRO = 1286;;
+let _SYSZ_INS_LOCFHRP = 1287;;
+let _SYSZ_INS_LOCFHRZ = 1288;;
+let _SYSZ_INS_LOCFHZ = 1289;;
+let _SYSZ_INS_LOCGHI = 1290;;
+let _SYSZ_INS_LOCGHIE = 1291;;
+let _SYSZ_INS_LOCGHIH = 1292;;
+let _SYSZ_INS_LOCGHIHE = 1293;;
+let _SYSZ_INS_LOCGHIL = 1294;;
+let _SYSZ_INS_LOCGHILE = 1295;;
+let _SYSZ_INS_LOCGHILH = 1296;;
+let _SYSZ_INS_LOCGHIM = 1297;;
+let _SYSZ_INS_LOCGHINE = 1298;;
+let _SYSZ_INS_LOCGHINH = 1299;;
+let _SYSZ_INS_LOCGHINHE = 1300;;
+let _SYSZ_INS_LOCGHINL = 1301;;
+let _SYSZ_INS_LOCGHINLE = 1302;;
+let _SYSZ_INS_LOCGHINLH = 1303;;
+let _SYSZ_INS_LOCGHINM = 1304;;
+let _SYSZ_INS_LOCGHINO = 1305;;
+let _SYSZ_INS_LOCGHINP = 1306;;
+let _SYSZ_INS_LOCGHINZ = 1307;;
+let _SYSZ_INS_LOCGHIO = 1308;;
+let _SYSZ_INS_LOCGHIP = 1309;;
+let _SYSZ_INS_LOCGHIZ = 1310;;
+let _SYSZ_INS_LOCGM = 1311;;
+let _SYSZ_INS_LOCGNM = 1312;;
+let _SYSZ_INS_LOCGNP = 1313;;
+let _SYSZ_INS_LOCGNZ = 1314;;
+let _SYSZ_INS_LOCGP = 1315;;
+let _SYSZ_INS_LOCGRM = 1316;;
+let _SYSZ_INS_LOCGRNM = 1317;;
+let _SYSZ_INS_LOCGRNP = 1318;;
+let _SYSZ_INS_LOCGRNZ = 1319;;
+let _SYSZ_INS_LOCGRP = 1320;;
+let _SYSZ_INS_LOCGRZ = 1321;;
+let _SYSZ_INS_LOCGZ = 1322;;
+let _SYSZ_INS_LOCHHI = 1323;;
+let _SYSZ_INS_LOCHHIE = 1324;;
+let _SYSZ_INS_LOCHHIH = 1325;;
+let _SYSZ_INS_LOCHHIHE = 1326;;
+let _SYSZ_INS_LOCHHIL = 1327;;
+let _SYSZ_INS_LOCHHILE = 1328;;
+let _SYSZ_INS_LOCHHILH = 1329;;
+let _SYSZ_INS_LOCHHIM = 1330;;
+let _SYSZ_INS_LOCHHINE = 1331;;
+let _SYSZ_INS_LOCHHINH = 1332;;
+let _SYSZ_INS_LOCHHINHE = 1333;;
+let _SYSZ_INS_LOCHHINL = 1334;;
+let _SYSZ_INS_LOCHHINLE = 1335;;
+let _SYSZ_INS_LOCHHINLH = 1336;;
+let _SYSZ_INS_LOCHHINM = 1337;;
+let _SYSZ_INS_LOCHHINO = 1338;;
+let _SYSZ_INS_LOCHHINP = 1339;;
+let _SYSZ_INS_LOCHHINZ = 1340;;
+let _SYSZ_INS_LOCHHIO = 1341;;
+let _SYSZ_INS_LOCHHIP = 1342;;
+let _SYSZ_INS_LOCHHIZ = 1343;;
+let _SYSZ_INS_LOCHI = 1344;;
+let _SYSZ_INS_LOCHIE = 1345;;
+let _SYSZ_INS_LOCHIH = 1346;;
+let _SYSZ_INS_LOCHIHE = 1347;;
+let _SYSZ_INS_LOCHIL = 1348;;
+let _SYSZ_INS_LOCHILE = 1349;;
+let _SYSZ_INS_LOCHILH = 1350;;
+let _SYSZ_INS_LOCHIM = 1351;;
+let _SYSZ_INS_LOCHINE = 1352;;
+let _SYSZ_INS_LOCHINH = 1353;;
+let _SYSZ_INS_LOCHINHE = 1354;;
+let _SYSZ_INS_LOCHINL = 1355;;
+let _SYSZ_INS_LOCHINLE = 1356;;
+let _SYSZ_INS_LOCHINLH = 1357;;
+let _SYSZ_INS_LOCHINM = 1358;;
+let _SYSZ_INS_LOCHINO = 1359;;
+let _SYSZ_INS_LOCHINP = 1360;;
+let _SYSZ_INS_LOCHINZ = 1361;;
+let _SYSZ_INS_LOCHIO = 1362;;
+let _SYSZ_INS_LOCHIP = 1363;;
+let _SYSZ_INS_LOCHIZ = 1364;;
+let _SYSZ_INS_LOCM = 1365;;
+let _SYSZ_INS_LOCNM = 1366;;
+let _SYSZ_INS_LOCNP = 1367;;
+let _SYSZ_INS_LOCNZ = 1368;;
+let _SYSZ_INS_LOCP = 1369;;
+let _SYSZ_INS_LOCRM = 1370;;
+let _SYSZ_INS_LOCRNM = 1371;;
+let _SYSZ_INS_LOCRNP = 1372;;
+let _SYSZ_INS_LOCRNZ = 1373;;
+let _SYSZ_INS_LOCRP = 1374;;
+let _SYSZ_INS_LOCRZ = 1375;;
+let _SYSZ_INS_LOCZ = 1376;;
+let _SYSZ_INS_LPCTL = 1377;;
+let _SYSZ_INS_LPD = 1378;;
+let _SYSZ_INS_LPDFR = 1379;;
+let _SYSZ_INS_LPDG = 1380;;
+let _SYSZ_INS_LPDR = 1381;;
+let _SYSZ_INS_LPER = 1382;;
+let _SYSZ_INS_LPP = 1383;;
+let _SYSZ_INS_LPQ = 1384;;
+let _SYSZ_INS_LPSW = 1385;;
+let _SYSZ_INS_LPSWE = 1386;;
+let _SYSZ_INS_LPTEA = 1387;;
+let _SYSZ_INS_LPXR = 1388;;
+let _SYSZ_INS_LRA = 1389;;
+let _SYSZ_INS_LRAG = 1390;;
+let _SYSZ_INS_LRAY = 1391;;
+let _SYSZ_INS_LRDR = 1392;;
+let _SYSZ_INS_LRER = 1393;;
+let _SYSZ_INS_LRVH = 1394;;
+let _SYSZ_INS_LSCTL = 1395;;
+let _SYSZ_INS_LTDR = 1396;;
+let _SYSZ_INS_LTDTR = 1397;;
+let _SYSZ_INS_LTER = 1398;;
+let _SYSZ_INS_LTXR = 1399;;
+let _SYSZ_INS_LTXTR = 1400;;
+let _SYSZ_INS_LURA = 1401;;
+let _SYSZ_INS_LURAG = 1402;;
+let _SYSZ_INS_LXD = 1403;;
+let _SYSZ_INS_LXDR = 1404;;
+let _SYSZ_INS_LXDTR = 1405;;
+let _SYSZ_INS_LXE = 1406;;
+let _SYSZ_INS_LXER = 1407;;
+let _SYSZ_INS_LZRF = 1408;;
+let _SYSZ_INS_LZRG = 1409;;
+let _SYSZ_INS_M = 1410;;
+let _SYSZ_INS_MAD = 1411;;
+let _SYSZ_INS_MADR = 1412;;
+let _SYSZ_INS_MAE = 1413;;
+let _SYSZ_INS_MAER = 1414;;
+let _SYSZ_INS_MAY = 1415;;
+let _SYSZ_INS_MAYH = 1416;;
+let _SYSZ_INS_MAYHR = 1417;;
+let _SYSZ_INS_MAYL = 1418;;
+let _SYSZ_INS_MAYLR = 1419;;
+let _SYSZ_INS_MAYR = 1420;;
+let _SYSZ_INS_MC = 1421;;
+let _SYSZ_INS_MD = 1422;;
+let _SYSZ_INS_MDE = 1423;;
+let _SYSZ_INS_MDER = 1424;;
+let _SYSZ_INS_MDR = 1425;;
+let _SYSZ_INS_MDTR = 1426;;
+let _SYSZ_INS_MDTRA = 1427;;
+let _SYSZ_INS_ME = 1428;;
+let _SYSZ_INS_MEE = 1429;;
+let _SYSZ_INS_MEER = 1430;;
+let _SYSZ_INS_MER = 1431;;
+let _SYSZ_INS_MFY = 1432;;
+let _SYSZ_INS_MG = 1433;;
+let _SYSZ_INS_MGH = 1434;;
+let _SYSZ_INS_MGRK = 1435;;
+let _SYSZ_INS_ML = 1436;;
+let _SYSZ_INS_MLR = 1437;;
+let _SYSZ_INS_MP = 1438;;
+let _SYSZ_INS_MR = 1439;;
+let _SYSZ_INS_MSC = 1440;;
+let _SYSZ_INS_MSCH = 1441;;
+let _SYSZ_INS_MSD = 1442;;
+let _SYSZ_INS_MSDR = 1443;;
+let _SYSZ_INS_MSE = 1444;;
+let _SYSZ_INS_MSER = 1445;;
+let _SYSZ_INS_MSGC = 1446;;
+let _SYSZ_INS_MSGRKC = 1447;;
+let _SYSZ_INS_MSRKC = 1448;;
+let _SYSZ_INS_MSTA = 1449;;
+let _SYSZ_INS_MVCDK = 1450;;
+let _SYSZ_INS_MVCIN = 1451;;
+let _SYSZ_INS_MVCK = 1452;;
+let _SYSZ_INS_MVCL = 1453;;
+let _SYSZ_INS_MVCLE = 1454;;
+let _SYSZ_INS_MVCLU = 1455;;
+let _SYSZ_INS_MVCOS = 1456;;
+let _SYSZ_INS_MVCP = 1457;;
+let _SYSZ_INS_MVCS = 1458;;
+let _SYSZ_INS_MVCSK = 1459;;
+let _SYSZ_INS_MVN = 1460;;
+let _SYSZ_INS_MVO = 1461;;
+let _SYSZ_INS_MVPG = 1462;;
+let _SYSZ_INS_MVZ = 1463;;
+let _SYSZ_INS_MXD = 1464;;
+let _SYSZ_INS_MXDR = 1465;;
+let _SYSZ_INS_MXR = 1466;;
+let _SYSZ_INS_MXTR = 1467;;
+let _SYSZ_INS_MXTRA = 1468;;
+let _SYSZ_INS_MY = 1469;;
+let _SYSZ_INS_MYH = 1470;;
+let _SYSZ_INS_MYHR = 1471;;
+let _SYSZ_INS_MYL = 1472;;
+let _SYSZ_INS_MYLR = 1473;;
+let _SYSZ_INS_MYR = 1474;;
+let _SYSZ_INS_NIAI = 1475;;
+let _SYSZ_INS_NTSTG = 1476;;
+let _SYSZ_INS_PACK = 1477;;
+let _SYSZ_INS_PALB = 1478;;
+let _SYSZ_INS_PC = 1479;;
+let _SYSZ_INS_PCC = 1480;;
+let _SYSZ_INS_PCKMO = 1481;;
+let _SYSZ_INS_PFMF = 1482;;
+let _SYSZ_INS_PFPO = 1483;;
+let _SYSZ_INS_PGIN = 1484;;
+let _SYSZ_INS_PGOUT = 1485;;
+let _SYSZ_INS_PKA = 1486;;
+let _SYSZ_INS_PKU = 1487;;
+let _SYSZ_INS_PLO = 1488;;
+let _SYSZ_INS_POPCNT = 1489;;
+let _SYSZ_INS_PPA = 1490;;
+let _SYSZ_INS_PPNO = 1491;;
+let _SYSZ_INS_PR = 1492;;
+let _SYSZ_INS_PRNO = 1493;;
+let _SYSZ_INS_PT = 1494;;
+let _SYSZ_INS_PTF = 1495;;
+let _SYSZ_INS_PTFF = 1496;;
+let _SYSZ_INS_PTI = 1497;;
+let _SYSZ_INS_PTLB = 1498;;
+let _SYSZ_INS_QADTR = 1499;;
+let _SYSZ_INS_QAXTR = 1500;;
+let _SYSZ_INS_QCTRI = 1501;;
+let _SYSZ_INS_QSI = 1502;;
+let _SYSZ_INS_RCHP = 1503;;
+let _SYSZ_INS_RISBGN = 1504;;
+let _SYSZ_INS_RP = 1505;;
+let _SYSZ_INS_RRBE = 1506;;
+let _SYSZ_INS_RRBM = 1507;;
+let _SYSZ_INS_RRDTR = 1508;;
+let _SYSZ_INS_RRXTR = 1509;;
+let _SYSZ_INS_RSCH = 1510;;
+let _SYSZ_INS_SAC = 1511;;
+let _SYSZ_INS_SACF = 1512;;
+let _SYSZ_INS_SAL = 1513;;
+let _SYSZ_INS_SAM24 = 1514;;
+let _SYSZ_INS_SAM31 = 1515;;
+let _SYSZ_INS_SAM64 = 1516;;
+let _SYSZ_INS_SAR = 1517;;
+let _SYSZ_INS_SCCTR = 1518;;
+let _SYSZ_INS_SCHM = 1519;;
+let _SYSZ_INS_SCK = 1520;;
+let _SYSZ_INS_SCKC = 1521;;
+let _SYSZ_INS_SCKPF = 1522;;
+let _SYSZ_INS_SD = 1523;;
+let _SYSZ_INS_SDR = 1524;;
+let _SYSZ_INS_SDTR = 1525;;
+let _SYSZ_INS_SDTRA = 1526;;
+let _SYSZ_INS_SE = 1527;;
+let _SYSZ_INS_SER = 1528;;
+let _SYSZ_INS_SFASR = 1529;;
+let _SYSZ_INS_SFPC = 1530;;
+let _SYSZ_INS_SGH = 1531;;
+let _SYSZ_INS_SHHHR = 1532;;
+let _SYSZ_INS_SHHLR = 1533;;
+let _SYSZ_INS_SIE = 1534;;
+let _SYSZ_INS_SIGA = 1535;;
+let _SYSZ_INS_SIGP = 1536;;
+let _SYSZ_INS_SLA = 1537;;
+let _SYSZ_INS_SLAG = 1538;;
+let _SYSZ_INS_SLAK = 1539;;
+let _SYSZ_INS_SLDA = 1540;;
+let _SYSZ_INS_SLDL = 1541;;
+let _SYSZ_INS_SLDT = 1542;;
+let _SYSZ_INS_SLHHHR = 1543;;
+let _SYSZ_INS_SLHHLR = 1544;;
+let _SYSZ_INS_SLXT = 1545;;
+let _SYSZ_INS_SP = 1546;;
+let _SYSZ_INS_SPCTR = 1547;;
+let _SYSZ_INS_SPKA = 1548;;
+let _SYSZ_INS_SPM = 1549;;
+let _SYSZ_INS_SPT = 1550;;
+let _SYSZ_INS_SPX = 1551;;
+let _SYSZ_INS_SQD = 1552;;
+let _SYSZ_INS_SQDR = 1553;;
+let _SYSZ_INS_SQE = 1554;;
+let _SYSZ_INS_SQER = 1555;;
+let _SYSZ_INS_SQXR = 1556;;
+let _SYSZ_INS_SRDA = 1557;;
+let _SYSZ_INS_SRDL = 1558;;
+let _SYSZ_INS_SRDT = 1559;;
+let _SYSZ_INS_SRNM = 1560;;
+let _SYSZ_INS_SRNMB = 1561;;
+let _SYSZ_INS_SRNMT = 1562;;
+let _SYSZ_INS_SRP = 1563;;
+let _SYSZ_INS_SRSTU = 1564;;
+let _SYSZ_INS_SRXT = 1565;;
+let _SYSZ_INS_SSAIR = 1566;;
+let _SYSZ_INS_SSAR = 1567;;
+let _SYSZ_INS_SSCH = 1568;;
+let _SYSZ_INS_SSKE = 1569;;
+let _SYSZ_INS_SSM = 1570;;
+let _SYSZ_INS_STAM = 1571;;
+let _SYSZ_INS_STAMY = 1572;;
+let _SYSZ_INS_STAP = 1573;;
+let _SYSZ_INS_STCK = 1574;;
+let _SYSZ_INS_STCKC = 1575;;
+let _SYSZ_INS_STCKE = 1576;;
+let _SYSZ_INS_STCKF = 1577;;
+let _SYSZ_INS_STCM = 1578;;
+let _SYSZ_INS_STCMH = 1579;;
+let _SYSZ_INS_STCMY = 1580;;
+let _SYSZ_INS_STCPS = 1581;;
+let _SYSZ_INS_STCRW = 1582;;
+let _SYSZ_INS_STCTG = 1583;;
+let _SYSZ_INS_STCTL = 1584;;
+let _SYSZ_INS_STFL = 1585;;
+let _SYSZ_INS_STFLE = 1586;;
+let _SYSZ_INS_STFPC = 1587;;
+let _SYSZ_INS_STGSC = 1588;;
+let _SYSZ_INS_STIDP = 1589;;
+let _SYSZ_INS_STM = 1590;;
+let _SYSZ_INS_STMH = 1591;;
+let _SYSZ_INS_STMY = 1592;;
+let _SYSZ_INS_STNSM = 1593;;
+let _SYSZ_INS_STOCFH = 1594;;
+let _SYSZ_INS_STOCFHE = 1595;;
+let _SYSZ_INS_STOCFHH = 1596;;
+let _SYSZ_INS_STOCFHHE = 1597;;
+let _SYSZ_INS_STOCFHL = 1598;;
+let _SYSZ_INS_STOCFHLE = 1599;;
+let _SYSZ_INS_STOCFHLH = 1600;;
+let _SYSZ_INS_STOCFHM = 1601;;
+let _SYSZ_INS_STOCFHNE = 1602;;
+let _SYSZ_INS_STOCFHNH = 1603;;
+let _SYSZ_INS_STOCFHNHE = 1604;;
+let _SYSZ_INS_STOCFHNL = 1605;;
+let _SYSZ_INS_STOCFHNLE = 1606;;
+let _SYSZ_INS_STOCFHNLH = 1607;;
+let _SYSZ_INS_STOCFHNM = 1608;;
+let _SYSZ_INS_STOCFHNO = 1609;;
+let _SYSZ_INS_STOCFHNP = 1610;;
+let _SYSZ_INS_STOCFHNZ = 1611;;
+let _SYSZ_INS_STOCFHO = 1612;;
+let _SYSZ_INS_STOCFHP = 1613;;
+let _SYSZ_INS_STOCFHZ = 1614;;
+let _SYSZ_INS_STOCGM = 1615;;
+let _SYSZ_INS_STOCGNM = 1616;;
+let _SYSZ_INS_STOCGNP = 1617;;
+let _SYSZ_INS_STOCGNZ = 1618;;
+let _SYSZ_INS_STOCGP = 1619;;
+let _SYSZ_INS_STOCGZ = 1620;;
+let _SYSZ_INS_STOCM = 1621;;
+let _SYSZ_INS_STOCNM = 1622;;
+let _SYSZ_INS_STOCNP = 1623;;
+let _SYSZ_INS_STOCNZ = 1624;;
+let _SYSZ_INS_STOCP = 1625;;
+let _SYSZ_INS_STOCZ = 1626;;
+let _SYSZ_INS_STOSM = 1627;;
+let _SYSZ_INS_STPQ = 1628;;
+let _SYSZ_INS_STPT = 1629;;
+let _SYSZ_INS_STPX = 1630;;
+let _SYSZ_INS_STRAG = 1631;;
+let _SYSZ_INS_STRVH = 1632;;
+let _SYSZ_INS_STSCH = 1633;;
+let _SYSZ_INS_STSI = 1634;;
+let _SYSZ_INS_STURA = 1635;;
+let _SYSZ_INS_STURG = 1636;;
+let _SYSZ_INS_SU = 1637;;
+let _SYSZ_INS_SUR = 1638;;
+let _SYSZ_INS_SVC = 1639;;
+let _SYSZ_INS_SW = 1640;;
+let _SYSZ_INS_SWR = 1641;;
+let _SYSZ_INS_SXR = 1642;;
+let _SYSZ_INS_SXTR = 1643;;
+let _SYSZ_INS_SXTRA = 1644;;
+let _SYSZ_INS_TABORT = 1645;;
+let _SYSZ_INS_TAM = 1646;;
+let _SYSZ_INS_TAR = 1647;;
+let _SYSZ_INS_TB = 1648;;
+let _SYSZ_INS_TBDR = 1649;;
+let _SYSZ_INS_TBEDR = 1650;;
+let _SYSZ_INS_TBEGIN = 1651;;
+let _SYSZ_INS_TBEGINC = 1652;;
+let _SYSZ_INS_TCDB = 1653;;
+let _SYSZ_INS_TCEB = 1654;;
+let _SYSZ_INS_TCXB = 1655;;
+let _SYSZ_INS_TDCDT = 1656;;
+let _SYSZ_INS_TDCET = 1657;;
+let _SYSZ_INS_TDCXT = 1658;;
+let _SYSZ_INS_TDGDT = 1659;;
+let _SYSZ_INS_TDGET = 1660;;
+let _SYSZ_INS_TDGXT = 1661;;
+let _SYSZ_INS_TEND = 1662;;
+let _SYSZ_INS_THDER = 1663;;
+let _SYSZ_INS_THDR = 1664;;
+let _SYSZ_INS_TP = 1665;;
+let _SYSZ_INS_TPI = 1666;;
+let _SYSZ_INS_TPROT = 1667;;
+let _SYSZ_INS_TR = 1668;;
+let _SYSZ_INS_TRACE = 1669;;
+let _SYSZ_INS_TRACG = 1670;;
+let _SYSZ_INS_TRAP2 = 1671;;
+let _SYSZ_INS_TRAP4 = 1672;;
+let _SYSZ_INS_TRE = 1673;;
+let _SYSZ_INS_TROO = 1674;;
+let _SYSZ_INS_TROT = 1675;;
+let _SYSZ_INS_TRT = 1676;;
+let _SYSZ_INS_TRTE = 1677;;
+let _SYSZ_INS_TRTO = 1678;;
+let _SYSZ_INS_TRTR = 1679;;
+let _SYSZ_INS_TRTRE = 1680;;
+let _SYSZ_INS_TRTT = 1681;;
+let _SYSZ_INS_TS = 1682;;
+let _SYSZ_INS_TSCH = 1683;;
+let _SYSZ_INS_UNPK = 1684;;
+let _SYSZ_INS_UNPKA = 1685;;
+let _SYSZ_INS_UNPKU = 1686;;
+let _SYSZ_INS_UPT = 1687;;
+let _SYSZ_INS_VA = 1688;;
+let _SYSZ_INS_VAB = 1689;;
+let _SYSZ_INS_VAC = 1690;;
+let _SYSZ_INS_VACC = 1691;;
+let _SYSZ_INS_VACCB = 1692;;
+let _SYSZ_INS_VACCC = 1693;;
+let _SYSZ_INS_VACCCQ = 1694;;
+let _SYSZ_INS_VACCF = 1695;;
+let _SYSZ_INS_VACCG = 1696;;
+let _SYSZ_INS_VACCH = 1697;;
+let _SYSZ_INS_VACCQ = 1698;;
+let _SYSZ_INS_VACQ = 1699;;
+let _SYSZ_INS_VAF = 1700;;
+let _SYSZ_INS_VAG = 1701;;
+let _SYSZ_INS_VAH = 1702;;
+let _SYSZ_INS_VAP = 1703;;
+let _SYSZ_INS_VAQ = 1704;;
+let _SYSZ_INS_VAVG = 1705;;
+let _SYSZ_INS_VAVGB = 1706;;
+let _SYSZ_INS_VAVGF = 1707;;
+let _SYSZ_INS_VAVGG = 1708;;
+let _SYSZ_INS_VAVGH = 1709;;
+let _SYSZ_INS_VAVGL = 1710;;
+let _SYSZ_INS_VAVGLB = 1711;;
+let _SYSZ_INS_VAVGLF = 1712;;
+let _SYSZ_INS_VAVGLG = 1713;;
+let _SYSZ_INS_VAVGLH = 1714;;
+let _SYSZ_INS_VBPERM = 1715;;
+let _SYSZ_INS_VCDG = 1716;;
+let _SYSZ_INS_VCDGB = 1717;;
+let _SYSZ_INS_VCDLG = 1718;;
+let _SYSZ_INS_VCDLGB = 1719;;
+let _SYSZ_INS_VCEQ = 1720;;
+let _SYSZ_INS_VCEQB = 1721;;
+let _SYSZ_INS_VCEQBS = 1722;;
+let _SYSZ_INS_VCEQF = 1723;;
+let _SYSZ_INS_VCEQFS = 1724;;
+let _SYSZ_INS_VCEQG = 1725;;
+let _SYSZ_INS_VCEQGS = 1726;;
+let _SYSZ_INS_VCEQH = 1727;;
+let _SYSZ_INS_VCEQHS = 1728;;
+let _SYSZ_INS_VCGD = 1729;;
+let _SYSZ_INS_VCGDB = 1730;;
+let _SYSZ_INS_VCH = 1731;;
+let _SYSZ_INS_VCHB = 1732;;
+let _SYSZ_INS_VCHBS = 1733;;
+let _SYSZ_INS_VCHF = 1734;;
+let _SYSZ_INS_VCHFS = 1735;;
+let _SYSZ_INS_VCHG = 1736;;
+let _SYSZ_INS_VCHGS = 1737;;
+let _SYSZ_INS_VCHH = 1738;;
+let _SYSZ_INS_VCHHS = 1739;;
+let _SYSZ_INS_VCHL = 1740;;
+let _SYSZ_INS_VCHLB = 1741;;
+let _SYSZ_INS_VCHLBS = 1742;;
+let _SYSZ_INS_VCHLF = 1743;;
+let _SYSZ_INS_VCHLFS = 1744;;
+let _SYSZ_INS_VCHLG = 1745;;
+let _SYSZ_INS_VCHLGS = 1746;;
+let _SYSZ_INS_VCHLH = 1747;;
+let _SYSZ_INS_VCHLHS = 1748;;
+let _SYSZ_INS_VCKSM = 1749;;
+let _SYSZ_INS_VCLGD = 1750;;
+let _SYSZ_INS_VCLGDB = 1751;;
+let _SYSZ_INS_VCLZ = 1752;;
+let _SYSZ_INS_VCLZB = 1753;;
+let _SYSZ_INS_VCLZF = 1754;;
+let _SYSZ_INS_VCLZG = 1755;;
+let _SYSZ_INS_VCLZH = 1756;;
+let _SYSZ_INS_VCP = 1757;;
+let _SYSZ_INS_VCTZ = 1758;;
+let _SYSZ_INS_VCTZB = 1759;;
+let _SYSZ_INS_VCTZF = 1760;;
+let _SYSZ_INS_VCTZG = 1761;;
+let _SYSZ_INS_VCTZH = 1762;;
+let _SYSZ_INS_VCVB = 1763;;
+let _SYSZ_INS_VCVBG = 1764;;
+let _SYSZ_INS_VCVD = 1765;;
+let _SYSZ_INS_VCVDG = 1766;;
+let _SYSZ_INS_VDP = 1767;;
+let _SYSZ_INS_VEC = 1768;;
+let _SYSZ_INS_VECB = 1769;;
+let _SYSZ_INS_VECF = 1770;;
+let _SYSZ_INS_VECG = 1771;;
+let _SYSZ_INS_VECH = 1772;;
+let _SYSZ_INS_VECL = 1773;;
+let _SYSZ_INS_VECLB = 1774;;
+let _SYSZ_INS_VECLF = 1775;;
+let _SYSZ_INS_VECLG = 1776;;
+let _SYSZ_INS_VECLH = 1777;;
+let _SYSZ_INS_VERIM = 1778;;
+let _SYSZ_INS_VERIMB = 1779;;
+let _SYSZ_INS_VERIMF = 1780;;
+let _SYSZ_INS_VERIMG = 1781;;
+let _SYSZ_INS_VERIMH = 1782;;
+let _SYSZ_INS_VERLL = 1783;;
+let _SYSZ_INS_VERLLB = 1784;;
+let _SYSZ_INS_VERLLF = 1785;;
+let _SYSZ_INS_VERLLG = 1786;;
+let _SYSZ_INS_VERLLH = 1787;;
+let _SYSZ_INS_VERLLV = 1788;;
+let _SYSZ_INS_VERLLVB = 1789;;
+let _SYSZ_INS_VERLLVF = 1790;;
+let _SYSZ_INS_VERLLVG = 1791;;
+let _SYSZ_INS_VERLLVH = 1792;;
+let _SYSZ_INS_VESL = 1793;;
+let _SYSZ_INS_VESLB = 1794;;
+let _SYSZ_INS_VESLF = 1795;;
+let _SYSZ_INS_VESLG = 1796;;
+let _SYSZ_INS_VESLH = 1797;;
+let _SYSZ_INS_VESLV = 1798;;
+let _SYSZ_INS_VESLVB = 1799;;
+let _SYSZ_INS_VESLVF = 1800;;
+let _SYSZ_INS_VESLVG = 1801;;
+let _SYSZ_INS_VESLVH = 1802;;
+let _SYSZ_INS_VESRA = 1803;;
+let _SYSZ_INS_VESRAB = 1804;;
+let _SYSZ_INS_VESRAF = 1805;;
+let _SYSZ_INS_VESRAG = 1806;;
+let _SYSZ_INS_VESRAH = 1807;;
+let _SYSZ_INS_VESRAV = 1808;;
+let _SYSZ_INS_VESRAVB = 1809;;
+let _SYSZ_INS_VESRAVF = 1810;;
+let _SYSZ_INS_VESRAVG = 1811;;
+let _SYSZ_INS_VESRAVH = 1812;;
+let _SYSZ_INS_VESRL = 1813;;
+let _SYSZ_INS_VESRLB = 1814;;
+let _SYSZ_INS_VESRLF = 1815;;
+let _SYSZ_INS_VESRLG = 1816;;
+let _SYSZ_INS_VESRLH = 1817;;
+let _SYSZ_INS_VESRLV = 1818;;
+let _SYSZ_INS_VESRLVB = 1819;;
+let _SYSZ_INS_VESRLVF = 1820;;
+let _SYSZ_INS_VESRLVG = 1821;;
+let _SYSZ_INS_VESRLVH = 1822;;
+let _SYSZ_INS_VFA = 1823;;
+let _SYSZ_INS_VFADB = 1824;;
+let _SYSZ_INS_VFAE = 1825;;
+let _SYSZ_INS_VFAEB = 1826;;
+let _SYSZ_INS_VFAEBS = 1827;;
+let _SYSZ_INS_VFAEF = 1828;;
+let _SYSZ_INS_VFAEFS = 1829;;
+let _SYSZ_INS_VFAEH = 1830;;
+let _SYSZ_INS_VFAEHS = 1831;;
+let _SYSZ_INS_VFAEZB = 1832;;
+let _SYSZ_INS_VFAEZBS = 1833;;
+let _SYSZ_INS_VFAEZF = 1834;;
+let _SYSZ_INS_VFAEZFS = 1835;;
+let _SYSZ_INS_VFAEZH = 1836;;
+let _SYSZ_INS_VFAEZHS = 1837;;
+let _SYSZ_INS_VFASB = 1838;;
+let _SYSZ_INS_VFCE = 1839;;
+let _SYSZ_INS_VFCEDB = 1840;;
+let _SYSZ_INS_VFCEDBS = 1841;;
+let _SYSZ_INS_VFCESB = 1842;;
+let _SYSZ_INS_VFCESBS = 1843;;
+let _SYSZ_INS_VFCH = 1844;;
+let _SYSZ_INS_VFCHDB = 1845;;
+let _SYSZ_INS_VFCHDBS = 1846;;
+let _SYSZ_INS_VFCHE = 1847;;
+let _SYSZ_INS_VFCHEDB = 1848;;
+let _SYSZ_INS_VFCHEDBS = 1849;;
+let _SYSZ_INS_VFCHESB = 1850;;
+let _SYSZ_INS_VFCHESBS = 1851;;
+let _SYSZ_INS_VFCHSB = 1852;;
+let _SYSZ_INS_VFCHSBS = 1853;;
+let _SYSZ_INS_VFD = 1854;;
+let _SYSZ_INS_VFDDB = 1855;;
+let _SYSZ_INS_VFDSB = 1856;;
+let _SYSZ_INS_VFEE = 1857;;
+let _SYSZ_INS_VFEEB = 1858;;
+let _SYSZ_INS_VFEEBS = 1859;;
+let _SYSZ_INS_VFEEF = 1860;;
+let _SYSZ_INS_VFEEFS = 1861;;
+let _SYSZ_INS_VFEEH = 1862;;
+let _SYSZ_INS_VFEEHS = 1863;;
+let _SYSZ_INS_VFEEZB = 1864;;
+let _SYSZ_INS_VFEEZBS = 1865;;
+let _SYSZ_INS_VFEEZF = 1866;;
+let _SYSZ_INS_VFEEZFS = 1867;;
+let _SYSZ_INS_VFEEZH = 1868;;
+let _SYSZ_INS_VFEEZHS = 1869;;
+let _SYSZ_INS_VFENE = 1870;;
+let _SYSZ_INS_VFENEB = 1871;;
+let _SYSZ_INS_VFENEBS = 1872;;
+let _SYSZ_INS_VFENEF = 1873;;
+let _SYSZ_INS_VFENEFS = 1874;;
+let _SYSZ_INS_VFENEH = 1875;;
+let _SYSZ_INS_VFENEHS = 1876;;
+let _SYSZ_INS_VFENEZB = 1877;;
+let _SYSZ_INS_VFENEZBS = 1878;;
+let _SYSZ_INS_VFENEZF = 1879;;
+let _SYSZ_INS_VFENEZFS = 1880;;
+let _SYSZ_INS_VFENEZH = 1881;;
+let _SYSZ_INS_VFENEZHS = 1882;;
+let _SYSZ_INS_VFI = 1883;;
+let _SYSZ_INS_VFIDB = 1884;;
+let _SYSZ_INS_VFISB = 1885;;
+let _SYSZ_INS_VFKEDB = 1886;;
+let _SYSZ_INS_VFKEDBS = 1887;;
+let _SYSZ_INS_VFKESB = 1888;;
+let _SYSZ_INS_VFKESBS = 1889;;
+let _SYSZ_INS_VFKHDB = 1890;;
+let _SYSZ_INS_VFKHDBS = 1891;;
+let _SYSZ_INS_VFKHEDB = 1892;;
+let _SYSZ_INS_VFKHEDBS = 1893;;
+let _SYSZ_INS_VFKHESB = 1894;;
+let _SYSZ_INS_VFKHESBS = 1895;;
+let _SYSZ_INS_VFKHSB = 1896;;
+let _SYSZ_INS_VFKHSBS = 1897;;
+let _SYSZ_INS_VFLCDB = 1898;;
+let _SYSZ_INS_VFLCSB = 1899;;
+let _SYSZ_INS_VFLL = 1900;;
+let _SYSZ_INS_VFLLS = 1901;;
+let _SYSZ_INS_VFLNDB = 1902;;
+let _SYSZ_INS_VFLNSB = 1903;;
+let _SYSZ_INS_VFLPDB = 1904;;
+let _SYSZ_INS_VFLPSB = 1905;;
+let _SYSZ_INS_VFLR = 1906;;
+let _SYSZ_INS_VFLRD = 1907;;
+let _SYSZ_INS_VFM = 1908;;
+let _SYSZ_INS_VFMA = 1909;;
+let _SYSZ_INS_VFMADB = 1910;;
+let _SYSZ_INS_VFMASB = 1911;;
+let _SYSZ_INS_VFMAX = 1912;;
+let _SYSZ_INS_VFMAXDB = 1913;;
+let _SYSZ_INS_VFMAXSB = 1914;;
+let _SYSZ_INS_VFMDB = 1915;;
+let _SYSZ_INS_VFMIN = 1916;;
+let _SYSZ_INS_VFMINDB = 1917;;
+let _SYSZ_INS_VFMINSB = 1918;;
+let _SYSZ_INS_VFMS = 1919;;
+let _SYSZ_INS_VFMSB = 1920;;
+let _SYSZ_INS_VFMSDB = 1921;;
+let _SYSZ_INS_VFMSSB = 1922;;
+let _SYSZ_INS_VFNMA = 1923;;
+let _SYSZ_INS_VFNMADB = 1924;;
+let _SYSZ_INS_VFNMASB = 1925;;
+let _SYSZ_INS_VFNMS = 1926;;
+let _SYSZ_INS_VFNMSDB = 1927;;
+let _SYSZ_INS_VFNMSSB = 1928;;
+let _SYSZ_INS_VFPSO = 1929;;
+let _SYSZ_INS_VFPSODB = 1930;;
+let _SYSZ_INS_VFPSOSB = 1931;;
+let _SYSZ_INS_VFS = 1932;;
+let _SYSZ_INS_VFSDB = 1933;;
+let _SYSZ_INS_VFSQ = 1934;;
+let _SYSZ_INS_VFSQDB = 1935;;
+let _SYSZ_INS_VFSQSB = 1936;;
+let _SYSZ_INS_VFSSB = 1937;;
+let _SYSZ_INS_VFTCI = 1938;;
+let _SYSZ_INS_VFTCIDB = 1939;;
+let _SYSZ_INS_VFTCISB = 1940;;
+let _SYSZ_INS_VGBM = 1941;;
+let _SYSZ_INS_VGEF = 1942;;
+let _SYSZ_INS_VGEG = 1943;;
+let _SYSZ_INS_VGFM = 1944;;
+let _SYSZ_INS_VGFMA = 1945;;
+let _SYSZ_INS_VGFMAB = 1946;;
+let _SYSZ_INS_VGFMAF = 1947;;
+let _SYSZ_INS_VGFMAG = 1948;;
+let _SYSZ_INS_VGFMAH = 1949;;
+let _SYSZ_INS_VGFMB = 1950;;
+let _SYSZ_INS_VGFMF = 1951;;
+let _SYSZ_INS_VGFMG = 1952;;
+let _SYSZ_INS_VGFMH = 1953;;
+let _SYSZ_INS_VGM = 1954;;
+let _SYSZ_INS_VGMB = 1955;;
+let _SYSZ_INS_VGMF = 1956;;
+let _SYSZ_INS_VGMG = 1957;;
+let _SYSZ_INS_VGMH = 1958;;
+let _SYSZ_INS_VISTR = 1959;;
+let _SYSZ_INS_VISTRB = 1960;;
+let _SYSZ_INS_VISTRBS = 1961;;
+let _SYSZ_INS_VISTRF = 1962;;
+let _SYSZ_INS_VISTRFS = 1963;;
+let _SYSZ_INS_VISTRH = 1964;;
+let _SYSZ_INS_VISTRHS = 1965;;
+let _SYSZ_INS_VL = 1966;;
+let _SYSZ_INS_VLBB = 1967;;
+let _SYSZ_INS_VLC = 1968;;
+let _SYSZ_INS_VLCB = 1969;;
+let _SYSZ_INS_VLCF = 1970;;
+let _SYSZ_INS_VLCG = 1971;;
+let _SYSZ_INS_VLCH = 1972;;
+let _SYSZ_INS_VLDE = 1973;;
+let _SYSZ_INS_VLDEB = 1974;;
+let _SYSZ_INS_VLEB = 1975;;
+let _SYSZ_INS_VLED = 1976;;
+let _SYSZ_INS_VLEDB = 1977;;
+let _SYSZ_INS_VLEF = 1978;;
+let _SYSZ_INS_VLEG = 1979;;
+let _SYSZ_INS_VLEH = 1980;;
+let _SYSZ_INS_VLEIB = 1981;;
+let _SYSZ_INS_VLEIF = 1982;;
+let _SYSZ_INS_VLEIG = 1983;;
+let _SYSZ_INS_VLEIH = 1984;;
+let _SYSZ_INS_VLGV = 1985;;
+let _SYSZ_INS_VLGVB = 1986;;
+let _SYSZ_INS_VLGVF = 1987;;
+let _SYSZ_INS_VLGVG = 1988;;
+let _SYSZ_INS_VLGVH = 1989;;
+let _SYSZ_INS_VLIP = 1990;;
+let _SYSZ_INS_VLL = 1991;;
+let _SYSZ_INS_VLLEZ = 1992;;
+let _SYSZ_INS_VLLEZB = 1993;;
+let _SYSZ_INS_VLLEZF = 1994;;
+let _SYSZ_INS_VLLEZG = 1995;;
+let _SYSZ_INS_VLLEZH = 1996;;
+let _SYSZ_INS_VLLEZLF = 1997;;
+let _SYSZ_INS_VLM = 1998;;
+let _SYSZ_INS_VLP = 1999;;
+let _SYSZ_INS_VLPB = 2000;;
+let _SYSZ_INS_VLPF = 2001;;
+let _SYSZ_INS_VLPG = 2002;;
+let _SYSZ_INS_VLPH = 2003;;
+let _SYSZ_INS_VLR = 2004;;
+let _SYSZ_INS_VLREP = 2005;;
+let _SYSZ_INS_VLREPB = 2006;;
+let _SYSZ_INS_VLREPF = 2007;;
+let _SYSZ_INS_VLREPG = 2008;;
+let _SYSZ_INS_VLREPH = 2009;;
+let _SYSZ_INS_VLRL = 2010;;
+let _SYSZ_INS_VLRLR = 2011;;
+let _SYSZ_INS_VLVG = 2012;;
+let _SYSZ_INS_VLVGB = 2013;;
+let _SYSZ_INS_VLVGF = 2014;;
+let _SYSZ_INS_VLVGG = 2015;;
+let _SYSZ_INS_VLVGH = 2016;;
+let _SYSZ_INS_VLVGP = 2017;;
+let _SYSZ_INS_VMAE = 2018;;
+let _SYSZ_INS_VMAEB = 2019;;
+let _SYSZ_INS_VMAEF = 2020;;
+let _SYSZ_INS_VMAEH = 2021;;
+let _SYSZ_INS_VMAH = 2022;;
+let _SYSZ_INS_VMAHB = 2023;;
+let _SYSZ_INS_VMAHF = 2024;;
+let _SYSZ_INS_VMAHH = 2025;;
+let _SYSZ_INS_VMAL = 2026;;
+let _SYSZ_INS_VMALB = 2027;;
+let _SYSZ_INS_VMALE = 2028;;
+let _SYSZ_INS_VMALEB = 2029;;
+let _SYSZ_INS_VMALEF = 2030;;
+let _SYSZ_INS_VMALEH = 2031;;
+let _SYSZ_INS_VMALF = 2032;;
+let _SYSZ_INS_VMALH = 2033;;
+let _SYSZ_INS_VMALHB = 2034;;
+let _SYSZ_INS_VMALHF = 2035;;
+let _SYSZ_INS_VMALHH = 2036;;
+let _SYSZ_INS_VMALHW = 2037;;
+let _SYSZ_INS_VMALO = 2038;;
+let _SYSZ_INS_VMALOB = 2039;;
+let _SYSZ_INS_VMALOF = 2040;;
+let _SYSZ_INS_VMALOH = 2041;;
+let _SYSZ_INS_VMAO = 2042;;
+let _SYSZ_INS_VMAOB = 2043;;
+let _SYSZ_INS_VMAOF = 2044;;
+let _SYSZ_INS_VMAOH = 2045;;
+let _SYSZ_INS_VME = 2046;;
+let _SYSZ_INS_VMEB = 2047;;
+let _SYSZ_INS_VMEF = 2048;;
+let _SYSZ_INS_VMEH = 2049;;
+let _SYSZ_INS_VMH = 2050;;
+let _SYSZ_INS_VMHB = 2051;;
+let _SYSZ_INS_VMHF = 2052;;
+let _SYSZ_INS_VMHH = 2053;;
+let _SYSZ_INS_VML = 2054;;
+let _SYSZ_INS_VMLB = 2055;;
+let _SYSZ_INS_VMLE = 2056;;
+let _SYSZ_INS_VMLEB = 2057;;
+let _SYSZ_INS_VMLEF = 2058;;
+let _SYSZ_INS_VMLEH = 2059;;
+let _SYSZ_INS_VMLF = 2060;;
+let _SYSZ_INS_VMLH = 2061;;
+let _SYSZ_INS_VMLHB = 2062;;
+let _SYSZ_INS_VMLHF = 2063;;
+let _SYSZ_INS_VMLHH = 2064;;
+let _SYSZ_INS_VMLHW = 2065;;
+let _SYSZ_INS_VMLO = 2066;;
+let _SYSZ_INS_VMLOB = 2067;;
+let _SYSZ_INS_VMLOF = 2068;;
+let _SYSZ_INS_VMLOH = 2069;;
+let _SYSZ_INS_VMN = 2070;;
+let _SYSZ_INS_VMNB = 2071;;
+let _SYSZ_INS_VMNF = 2072;;
+let _SYSZ_INS_VMNG = 2073;;
+let _SYSZ_INS_VMNH = 2074;;
+let _SYSZ_INS_VMNL = 2075;;
+let _SYSZ_INS_VMNLB = 2076;;
+let _SYSZ_INS_VMNLF = 2077;;
+let _SYSZ_INS_VMNLG = 2078;;
+let _SYSZ_INS_VMNLH = 2079;;
+let _SYSZ_INS_VMO = 2080;;
+let _SYSZ_INS_VMOB = 2081;;
+let _SYSZ_INS_VMOF = 2082;;
+let _SYSZ_INS_VMOH = 2083;;
+let _SYSZ_INS_VMP = 2084;;
+let _SYSZ_INS_VMRH = 2085;;
+let _SYSZ_INS_VMRHB = 2086;;
+let _SYSZ_INS_VMRHF = 2087;;
+let _SYSZ_INS_VMRHG = 2088;;
+let _SYSZ_INS_VMRHH = 2089;;
+let _SYSZ_INS_VMRL = 2090;;
+let _SYSZ_INS_VMRLB = 2091;;
+let _SYSZ_INS_VMRLF = 2092;;
+let _SYSZ_INS_VMRLG = 2093;;
+let _SYSZ_INS_VMRLH = 2094;;
+let _SYSZ_INS_VMSL = 2095;;
+let _SYSZ_INS_VMSLG = 2096;;
+let _SYSZ_INS_VMSP = 2097;;
+let _SYSZ_INS_VMX = 2098;;
+let _SYSZ_INS_VMXB = 2099;;
+let _SYSZ_INS_VMXF = 2100;;
+let _SYSZ_INS_VMXG = 2101;;
+let _SYSZ_INS_VMXH = 2102;;
+let _SYSZ_INS_VMXL = 2103;;
+let _SYSZ_INS_VMXLB = 2104;;
+let _SYSZ_INS_VMXLF = 2105;;
+let _SYSZ_INS_VMXLG = 2106;;
+let _SYSZ_INS_VMXLH = 2107;;
+let _SYSZ_INS_VN = 2108;;
+let _SYSZ_INS_VNC = 2109;;
+let _SYSZ_INS_VNN = 2110;;
+let _SYSZ_INS_VNO = 2111;;
+let _SYSZ_INS_VNX = 2112;;
+let _SYSZ_INS_VO = 2113;;
+let _SYSZ_INS_VOC = 2114;;
+let _SYSZ_INS_VONE = 2115;;
+let _SYSZ_INS_VPDI = 2116;;
+let _SYSZ_INS_VPERM = 2117;;
+let _SYSZ_INS_VPK = 2118;;
+let _SYSZ_INS_VPKF = 2119;;
+let _SYSZ_INS_VPKG = 2120;;
+let _SYSZ_INS_VPKH = 2121;;
+let _SYSZ_INS_VPKLS = 2122;;
+let _SYSZ_INS_VPKLSF = 2123;;
+let _SYSZ_INS_VPKLSFS = 2124;;
+let _SYSZ_INS_VPKLSG = 2125;;
+let _SYSZ_INS_VPKLSGS = 2126;;
+let _SYSZ_INS_VPKLSH = 2127;;
+let _SYSZ_INS_VPKLSHS = 2128;;
+let _SYSZ_INS_VPKS = 2129;;
+let _SYSZ_INS_VPKSF = 2130;;
+let _SYSZ_INS_VPKSFS = 2131;;
+let _SYSZ_INS_VPKSG = 2132;;
+let _SYSZ_INS_VPKSGS = 2133;;
+let _SYSZ_INS_VPKSH = 2134;;
+let _SYSZ_INS_VPKSHS = 2135;;
+let _SYSZ_INS_VPKZ = 2136;;
+let _SYSZ_INS_VPOPCT = 2137;;
+let _SYSZ_INS_VPOPCTB = 2138;;
+let _SYSZ_INS_VPOPCTF = 2139;;
+let _SYSZ_INS_VPOPCTG = 2140;;
+let _SYSZ_INS_VPOPCTH = 2141;;
+let _SYSZ_INS_VPSOP = 2142;;
+let _SYSZ_INS_VREP = 2143;;
+let _SYSZ_INS_VREPB = 2144;;
+let _SYSZ_INS_VREPF = 2145;;
+let _SYSZ_INS_VREPG = 2146;;
+let _SYSZ_INS_VREPH = 2147;;
+let _SYSZ_INS_VREPI = 2148;;
+let _SYSZ_INS_VREPIB = 2149;;
+let _SYSZ_INS_VREPIF = 2150;;
+let _SYSZ_INS_VREPIG = 2151;;
+let _SYSZ_INS_VREPIH = 2152;;
+let _SYSZ_INS_VRP = 2153;;
+let _SYSZ_INS_VS = 2154;;
+let _SYSZ_INS_VSB = 2155;;
+let _SYSZ_INS_VSBCBI = 2156;;
+let _SYSZ_INS_VSBCBIQ = 2157;;
+let _SYSZ_INS_VSBI = 2158;;
+let _SYSZ_INS_VSBIQ = 2159;;
+let _SYSZ_INS_VSCBI = 2160;;
+let _SYSZ_INS_VSCBIB = 2161;;
+let _SYSZ_INS_VSCBIF = 2162;;
+let _SYSZ_INS_VSCBIG = 2163;;
+let _SYSZ_INS_VSCBIH = 2164;;
+let _SYSZ_INS_VSCBIQ = 2165;;
+let _SYSZ_INS_VSCEF = 2166;;
+let _SYSZ_INS_VSCEG = 2167;;
+let _SYSZ_INS_VSDP = 2168;;
+let _SYSZ_INS_VSEG = 2169;;
+let _SYSZ_INS_VSEGB = 2170;;
+let _SYSZ_INS_VSEGF = 2171;;
+let _SYSZ_INS_VSEGH = 2172;;
+let _SYSZ_INS_VSEL = 2173;;
+let _SYSZ_INS_VSF = 2174;;
+let _SYSZ_INS_VSG = 2175;;
+let _SYSZ_INS_VSH = 2176;;
+let _SYSZ_INS_VSL = 2177;;
+let _SYSZ_INS_VSLB = 2178;;
+let _SYSZ_INS_VSLDB = 2179;;
+let _SYSZ_INS_VSP = 2180;;
+let _SYSZ_INS_VSQ = 2181;;
+let _SYSZ_INS_VSRA = 2182;;
+let _SYSZ_INS_VSRAB = 2183;;
+let _SYSZ_INS_VSRL = 2184;;
+let _SYSZ_INS_VSRLB = 2185;;
+let _SYSZ_INS_VSRP = 2186;;
+let _SYSZ_INS_VST = 2187;;
+let _SYSZ_INS_VSTEB = 2188;;
+let _SYSZ_INS_VSTEF = 2189;;
+let _SYSZ_INS_VSTEG = 2190;;
+let _SYSZ_INS_VSTEH = 2191;;
+let _SYSZ_INS_VSTL = 2192;;
+let _SYSZ_INS_VSTM = 2193;;
+let _SYSZ_INS_VSTRC = 2194;;
+let _SYSZ_INS_VSTRCB = 2195;;
+let _SYSZ_INS_VSTRCBS = 2196;;
+let _SYSZ_INS_VSTRCF = 2197;;
+let _SYSZ_INS_VSTRCFS = 2198;;
+let _SYSZ_INS_VSTRCH = 2199;;
+let _SYSZ_INS_VSTRCHS = 2200;;
+let _SYSZ_INS_VSTRCZB = 2201;;
+let _SYSZ_INS_VSTRCZBS = 2202;;
+let _SYSZ_INS_VSTRCZF = 2203;;
+let _SYSZ_INS_VSTRCZFS = 2204;;
+let _SYSZ_INS_VSTRCZH = 2205;;
+let _SYSZ_INS_VSTRCZHS = 2206;;
+let _SYSZ_INS_VSTRL = 2207;;
+let _SYSZ_INS_VSTRLR = 2208;;
+let _SYSZ_INS_VSUM = 2209;;
+let _SYSZ_INS_VSUMB = 2210;;
+let _SYSZ_INS_VSUMG = 2211;;
+let _SYSZ_INS_VSUMGF = 2212;;
+let _SYSZ_INS_VSUMGH = 2213;;
+let _SYSZ_INS_VSUMH = 2214;;
+let _SYSZ_INS_VSUMQ = 2215;;
+let _SYSZ_INS_VSUMQF = 2216;;
+let _SYSZ_INS_VSUMQG = 2217;;
+let _SYSZ_INS_VTM = 2218;;
+let _SYSZ_INS_VTP = 2219;;
+let _SYSZ_INS_VUPH = 2220;;
+let _SYSZ_INS_VUPHB = 2221;;
+let _SYSZ_INS_VUPHF = 2222;;
+let _SYSZ_INS_VUPHH = 2223;;
+let _SYSZ_INS_VUPKZ = 2224;;
+let _SYSZ_INS_VUPL = 2225;;
+let _SYSZ_INS_VUPLB = 2226;;
+let _SYSZ_INS_VUPLF = 2227;;
+let _SYSZ_INS_VUPLH = 2228;;
+let _SYSZ_INS_VUPLHB = 2229;;
+let _SYSZ_INS_VUPLHF = 2230;;
+let _SYSZ_INS_VUPLHH = 2231;;
+let _SYSZ_INS_VUPLHW = 2232;;
+let _SYSZ_INS_VUPLL = 2233;;
+let _SYSZ_INS_VUPLLB = 2234;;
+let _SYSZ_INS_VUPLLF = 2235;;
+let _SYSZ_INS_VUPLLH = 2236;;
+let _SYSZ_INS_VX = 2237;;
+let _SYSZ_INS_VZERO = 2238;;
+let _SYSZ_INS_WCDGB = 2239;;
+let _SYSZ_INS_WCDLGB = 2240;;
+let _SYSZ_INS_WCGDB = 2241;;
+let _SYSZ_INS_WCLGDB = 2242;;
+let _SYSZ_INS_WFADB = 2243;;
+let _SYSZ_INS_WFASB = 2244;;
+let _SYSZ_INS_WFAXB = 2245;;
+let _SYSZ_INS_WFC = 2246;;
+let _SYSZ_INS_WFCDB = 2247;;
+let _SYSZ_INS_WFCEDB = 2248;;
+let _SYSZ_INS_WFCEDBS = 2249;;
+let _SYSZ_INS_WFCESB = 2250;;
+let _SYSZ_INS_WFCESBS = 2251;;
+let _SYSZ_INS_WFCEXB = 2252;;
+let _SYSZ_INS_WFCEXBS = 2253;;
+let _SYSZ_INS_WFCHDB = 2254;;
+let _SYSZ_INS_WFCHDBS = 2255;;
+let _SYSZ_INS_WFCHEDB = 2256;;
+let _SYSZ_INS_WFCHEDBS = 2257;;
+let _SYSZ_INS_WFCHESB = 2258;;
+let _SYSZ_INS_WFCHESBS = 2259;;
+let _SYSZ_INS_WFCHEXB = 2260;;
+let _SYSZ_INS_WFCHEXBS = 2261;;
+let _SYSZ_INS_WFCHSB = 2262;;
+let _SYSZ_INS_WFCHSBS = 2263;;
+let _SYSZ_INS_WFCHXB = 2264;;
+let _SYSZ_INS_WFCHXBS = 2265;;
+let _SYSZ_INS_WFCSB = 2266;;
+let _SYSZ_INS_WFCXB = 2267;;
+let _SYSZ_INS_WFDDB = 2268;;
+let _SYSZ_INS_WFDSB = 2269;;
+let _SYSZ_INS_WFDXB = 2270;;
+let _SYSZ_INS_WFIDB = 2271;;
+let _SYSZ_INS_WFISB = 2272;;
+let _SYSZ_INS_WFIXB = 2273;;
+let _SYSZ_INS_WFK = 2274;;
+let _SYSZ_INS_WFKDB = 2275;;
+let _SYSZ_INS_WFKEDB = 2276;;
+let _SYSZ_INS_WFKEDBS = 2277;;
+let _SYSZ_INS_WFKESB = 2278;;
+let _SYSZ_INS_WFKESBS = 2279;;
+let _SYSZ_INS_WFKEXB = 2280;;
+let _SYSZ_INS_WFKEXBS = 2281;;
+let _SYSZ_INS_WFKHDB = 2282;;
+let _SYSZ_INS_WFKHDBS = 2283;;
+let _SYSZ_INS_WFKHEDB = 2284;;
+let _SYSZ_INS_WFKHEDBS = 2285;;
+let _SYSZ_INS_WFKHESB = 2286;;
+let _SYSZ_INS_WFKHESBS = 2287;;
+let _SYSZ_INS_WFKHEXB = 2288;;
+let _SYSZ_INS_WFKHEXBS = 2289;;
+let _SYSZ_INS_WFKHSB = 2290;;
+let _SYSZ_INS_WFKHSBS = 2291;;
+let _SYSZ_INS_WFKHXB = 2292;;
+let _SYSZ_INS_WFKHXBS = 2293;;
+let _SYSZ_INS_WFKSB = 2294;;
+let _SYSZ_INS_WFKXB = 2295;;
+let _SYSZ_INS_WFLCDB = 2296;;
+let _SYSZ_INS_WFLCSB = 2297;;
+let _SYSZ_INS_WFLCXB = 2298;;
+let _SYSZ_INS_WFLLD = 2299;;
+let _SYSZ_INS_WFLLS = 2300;;
+let _SYSZ_INS_WFLNDB = 2301;;
+let _SYSZ_INS_WFLNSB = 2302;;
+let _SYSZ_INS_WFLNXB = 2303;;
+let _SYSZ_INS_WFLPDB = 2304;;
+let _SYSZ_INS_WFLPSB = 2305;;
+let _SYSZ_INS_WFLPXB = 2306;;
+let _SYSZ_INS_WFLRD = 2307;;
+let _SYSZ_INS_WFLRX = 2308;;
+let _SYSZ_INS_WFMADB = 2309;;
+let _SYSZ_INS_WFMASB = 2310;;
+let _SYSZ_INS_WFMAXB = 2311;;
+let _SYSZ_INS_WFMAXDB = 2312;;
+let _SYSZ_INS_WFMAXSB = 2313;;
+let _SYSZ_INS_WFMAXXB = 2314;;
+let _SYSZ_INS_WFMDB = 2315;;
+let _SYSZ_INS_WFMINDB = 2316;;
+let _SYSZ_INS_WFMINSB = 2317;;
+let _SYSZ_INS_WFMINXB = 2318;;
+let _SYSZ_INS_WFMSB = 2319;;
+let _SYSZ_INS_WFMSDB = 2320;;
+let _SYSZ_INS_WFMSSB = 2321;;
+let _SYSZ_INS_WFMSXB = 2322;;
+let _SYSZ_INS_WFMXB = 2323;;
+let _SYSZ_INS_WFNMADB = 2324;;
+let _SYSZ_INS_WFNMASB = 2325;;
+let _SYSZ_INS_WFNMAXB = 2326;;
+let _SYSZ_INS_WFNMSDB = 2327;;
+let _SYSZ_INS_WFNMSSB = 2328;;
+let _SYSZ_INS_WFNMSXB = 2329;;
+let _SYSZ_INS_WFPSODB = 2330;;
+let _SYSZ_INS_WFPSOSB = 2331;;
+let _SYSZ_INS_WFPSOXB = 2332;;
+let _SYSZ_INS_WFSDB = 2333;;
+let _SYSZ_INS_WFSQDB = 2334;;
+let _SYSZ_INS_WFSQSB = 2335;;
+let _SYSZ_INS_WFSQXB = 2336;;
+let _SYSZ_INS_WFSSB = 2337;;
+let _SYSZ_INS_WFSXB = 2338;;
+let _SYSZ_INS_WFTCIDB = 2339;;
+let _SYSZ_INS_WFTCISB = 2340;;
+let _SYSZ_INS_WFTCIXB = 2341;;
+let _SYSZ_INS_WLDEB = 2342;;
+let _SYSZ_INS_WLEDB = 2343;;
+let _SYSZ_INS_XSCH = 2344;;
+let _SYSZ_INS_ZAP = 2345;;
+let _SYSZ_INS_ENDING = 2346;;
+
+let _SYSZ_GRP_INVALID = 0;;
+let _SYSZ_GRP_JUMP = 1;;
+let _SYSZ_GRP_DISTINCTOPS = 128;;
+let _SYSZ_GRP_FPEXTENSION = 129;;
+let _SYSZ_GRP_HIGHWORD = 130;;
+let _SYSZ_GRP_INTERLOCKEDACCESS1 = 131;;
+let _SYSZ_GRP_LOADSTOREONCOND = 132;;
+let _SYSZ_GRP_DFPPACKEDCONVERSION = 133;;
+let _SYSZ_GRP_DFPZONEDCONVERSION = 134;;
+let _SYSZ_GRP_ENHANCEDDAT2 = 135;;
+let _SYSZ_GRP_EXECUTIONHINT = 136;;
+let _SYSZ_GRP_GUARDEDSTORAGE = 137;;
+let _SYSZ_GRP_INSERTREFERENCEBITSMULTIPLE = 138;;
+let _SYSZ_GRP_LOADANDTRAP = 139;;
+let _SYSZ_GRP_LOADANDZERORIGHTMOSTBYTE = 140;;
+let _SYSZ_GRP_LOADSTOREONCOND2 = 141;;
+let _SYSZ_GRP_MESSAGESECURITYASSIST3 = 142;;
+let _SYSZ_GRP_MESSAGESECURITYASSIST4 = 143;;
+let _SYSZ_GRP_MESSAGESECURITYASSIST5 = 144;;
+let _SYSZ_GRP_MESSAGESECURITYASSIST7 = 145;;
+let _SYSZ_GRP_MESSAGESECURITYASSIST8 = 146;;
+let _SYSZ_GRP_MISCELLANEOUSEXTENSIONS = 147;;
+let _SYSZ_GRP_MISCELLANEOUSEXTENSIONS2 = 148;;
+let _SYSZ_GRP_NOVECTOR = 149;;
+let _SYSZ_GRP_POPULATIONCOUNT = 150;;
+let _SYSZ_GRP_PROCESSORASSIST = 151;;
+let _SYSZ_GRP_RESETREFERENCEBITSMULTIPLE = 152;;
+let _SYSZ_GRP_TRANSACTIONALEXECUTION = 153;;
+let _SYSZ_GRP_VECTOR = 154;;
+let _SYSZ_GRP_VECTORENHANCEMENTS1 = 155;;
+let _SYSZ_GRP_VECTORPACKEDDECIMAL = 156;;
+let _SYSZ_GRP_ENDING = 157;;
diff --git a/capstone/bindings/ocaml/test_arm.ml b/capstone/bindings/ocaml/test_arm.ml
new file mode 100644
index 000000000..27d95ec14
--- /dev/null
+++ b/capstone/bindings/ocaml/test_arm.ml
@@ -0,0 +1,105 @@
+(* Capstone Disassembly Engine
+* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open Capstone
+open Arm
+open Arm_const
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _ARM_CODE = "\xED\xFF\xFF\xEB\x04\xe0\x2d\xe5\x00\x00\x00\x00\xe0\x83\x22\xe5\xf1\x02\x03\x0e\x00\x00\xa0\xe3\x02\x30\xc1\xe7\x00\x00\x53\xe3";;
+let _ARM_CODE2 = "\xd1\xe8\x00\xf0\xf0\x24\x04\x07\x1f\x3c\xf2\xc0\x00\x00\x4f\xf0\x00\x01\x46\x6c";;
+let _THUMB_CODE2 = "\x4f\xf0\x00\x01\xbd\xe8\x00\x88\xd1\xe8\x00\xf0";;
+let _THUMB_CODE = "\x70\x47\xeb\x46\x83\xb0\xc9\x68\x1f\xb1";;
+
+
+let all_tests = [
+ (CS_ARCH_ARM, [CS_MODE_ARM], _ARM_CODE, "ARM");
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE, "Thumb");
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _ARM_CODE2, "Thumb-mixed");
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE2, "Thumb-2");
+];;
+
+
+let print_op handle i op =
+ ( match op.value with
+ | ARM_OP_INVALID _ -> (); (* this would never happens *)
+ | ARM_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | ARM_OP_CIMM imm -> printf "\t\top[%d]: C-IMM = %u\n" i imm;
+ | ARM_OP_PIMM imm -> printf "\t\top[%d]: P-IMM = %u\n" i imm;
+ | ARM_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | ARM_OP_FP fp -> printf "\t\top[%d]: FP = %f\n" i fp;
+ | ARM_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: REG = %s\n" i (cs_reg_name handle mem.index);
+ if mem.scale != 1 then
+ printf "\t\t\toperands[%u].mem.scale: %d\n" i mem.scale;
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ if mem.lshift != 0 then
+ printf "\t\t\toperands[%u].mem.lshift: 0x%x\n" i mem.lshift;
+ );
+ | ARM_OP_SETEND sd -> printf "\t\top[%d]: SETEND = %u\n" i sd;
+ );
+
+ if op.shift.shift_type != _ARM_SFT_INVALID && op.shift.shift_value > 0 then
+ printf "\t\t\tShift: type = %u, value = %u\n"
+ op.shift.shift_type op.shift.shift_value;
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_ARM arm -> (
+ if arm.cc != _ARM_CC_AL && arm.cc != _ARM_CC_INVALID then
+ printf "\tCode condition: %u\n" arm.cc;
+
+ if arm.update_flags then
+ printf "\tUpdate-flags: True\n";
+
+ if arm.writeback then
+ printf "\tWriteback: True\n";
+
+ (* print all operands info (type & value) *)
+ if (Array.length arm.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length arm.operands);
+ Array.iteri (print_op handle) arm.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_arm64.ml b/capstone/bindings/ocaml/test_arm64.ml
new file mode 100644
index 000000000..8ec39c637
--- /dev/null
+++ b/capstone/bindings/ocaml/test_arm64.ml
@@ -0,0 +1,101 @@
+(* Capstone Disassembly Engine
+* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open Capstone
+open Arm64
+open Arm64_const
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _ARM64_CODE = "\x21\x7c\x02\x9b\x21\x7c\x00\x53\x00\x40\x21\x4b\xe1\x0b\x40\xb9\x20\x04\x81\xda\x20\x08\x02\x8b";;
+
+let all_tests = [
+ (CS_ARCH_ARM64, [CS_MODE_ARM], _ARM64_CODE, "ARM-64");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | ARM64_OP_INVALID _ -> (); (* this would never happens *)
+ | ARM64_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | ARM64_OP_CIMM imm -> printf "\t\top[%d]: C-IMM = %u\n" i imm;
+ | ARM64_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | ARM64_OP_FP fp -> printf "\t\top[%d]: FP = %f\n" i fp;
+ | ARM64_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: REG = %s\n" i (cs_reg_name handle mem.index);
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ );
+ | ARM64_OP_REG_MRS reg -> printf "\t\top[%d]: REG_MRS = %u\n" i reg;
+ | ARM64_OP_REG_MSR reg -> printf "\t\top[%d]: REG_MSR = %u\n" i reg;
+ | ARM64_OP_PSTATE v -> printf "\t\top[%d]: PSTATE = %u\n" i v;
+ | ARM64_OP_SYS v -> printf "\t\top[%d]: SYS = %u\n" i v;
+ | ARM64_OP_PREFETCH v -> printf "\t\top[%d]: PREFETCH = %u\n" i v;
+ | ARM64_OP_BARRIER v -> printf "\t\top[%d]: BARRIER = %u\n" i v;
+ );
+
+ if op.shift.shift_type != _ARM64_SFT_INVALID && op.shift.shift_value > 0 then
+ printf "\t\t\tShift: type = %u, value = %u\n"
+ op.shift.shift_type op.shift.shift_value;
+ if op.ext != _ARM64_EXT_INVALID then
+ printf "\t\t\tExt: %u\n" op.ext;
+
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_ARM64 arm64 -> (
+ if arm64.cc != _ARM64_CC_AL && arm64.cc != _ARM64_CC_INVALID then
+ printf "\tCode condition: %u\n" arm64.cc;
+
+ if arm64.update_flags then
+ printf "\tUpdate-flags: True\n";
+
+ if arm64.writeback then
+ printf "\tWriteback: True\n";
+
+ (* print all operands info (type & value) *)
+ if (Array.length arm64.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length arm64.operands);
+ Array.iteri (print_op handle) arm64.operands;
+ );
+ printf "\n";
+ )
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_basic.ml b/capstone/bindings/ocaml/test_basic.ml
new file mode 100644
index 000000000..80ad1e4c0
--- /dev/null
+++ b/capstone/bindings/ocaml/test_basic.ml
@@ -0,0 +1,67 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open List
+open Capstone
+
+let _X86_CODE16 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE32 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE64 = "\x55\x48\x8b\x05\xb8\x13\x00\x00";;
+let _ARM_CODE = "\xED\xFF\xFF\xEB\x04\xe0\x2d\xe5\x00\x00\x00\x00\xe0\x83\x22\xe5\xf1\x02\x03\x0e\x00\x00\xa0\xe3\x02\x30\xc1\xe7\x00\x00\x53\xe3";;
+let _ARM_CODE2 = "\x10\xf1\x10\xe7\x11\xf2\x31\xe7\xdc\xa1\x2e\xf3\xe8\x4e\x62\xf3";;
+let _THUMB_CODE = "\x70\x47\xeb\x46\x83\xb0\xc9\x68";;
+let _THUMB_CODE2 = "\x4f\xf0\x00\x01\xbd\xe8\x00\x88";;
+let _MIPS_CODE = "\x0C\x10\x00\x97\x00\x00\x00\x00\x24\x02\x00\x0c\x8f\xa2\x00\x00\x34\x21\x34\x56";;
+let _MIPS_CODE2 = "\x56\x34\x21\x34\xc2\x17\x01\x00";;
+let _ARM64_CODE = "\x21\x7c\x02\x9b\x21\x7c\x00\x53\x00\x40\x21\x4b\xe1\x0b\x40\xb9";;
+let _PPC_CODE = "\x80\x20\x00\x00\x80\x3f\x00\x00\x10\x43\x23\x0e\xd0\x44\x00\x80\x4c\x43\x22\x02\x2d\x03\x00\x80\x7c\x43\x20\x14\x7c\x43\x20\x93\x4f\x20\x00\x21\x4c\xc8\x00\x21";;
+let _SPARC_CODE = "\x80\xa0\x40\x02\x85\xc2\x60\x08\x85\xe8\x20\x01\x81\xe8\x00\x00\x90\x10\x20\x01\xd5\xf6\x10\x16\x21\x00\x00\x0a\x86\x00\x40\x02\x01\x00\x00\x00\x12\xbf\xff\xff\x10\xbf\xff\xff\xa0\x02\x00\x09\x0d\xbf\xff\xff\xd4\x20\x60\x00\xd4\x4e\x00\x16\x2a\xc2\x80\x03";;
+let _SPARCV9_CODE = "\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0";;
+let _SYSZ_CODE = "\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78";;
+let _XCORE_CODE = "\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10";;
+
+let all_tests = [
+ (CS_ARCH_X86, [CS_MODE_16], _X86_CODE16, "X86 16bit (Intel syntax)", 0L);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32bit (ATT syntax)", _CS_OPT_SYNTAX_ATT);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32 (Intel syntax)", 0L);
+ (CS_ARCH_X86, [CS_MODE_64], _X86_CODE64, "X86 64 (Intel syntax)", 0L);
+ (CS_ARCH_ARM, [CS_MODE_ARM], _ARM_CODE, "ARM", 0L);
+ (CS_ARCH_ARM, [CS_MODE_ARM], _ARM_CODE2, "ARM: Cortex-A15 + NEON", 0L);
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE, "THUMB", 0L);
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE2, "THUMB-2", 0L);
+ (CS_ARCH_ARM64, [CS_MODE_ARM], _ARM64_CODE, "ARM-64", 0L);
+ (CS_ARCH_MIPS, [CS_MODE_MIPS32; CS_MODE_BIG_ENDIAN], _MIPS_CODE, "MIPS-32 (Big-endian)", 0L);
+ (CS_ARCH_MIPS, [CS_MODE_MIPS64; CS_MODE_LITTLE_ENDIAN], _MIPS_CODE2, "MIPS-64-EL (Little-endian)", 0L);
+ (CS_ARCH_PPC, [CS_MODE_BIG_ENDIAN], _PPC_CODE, "PPC-64", 0L);
+ (CS_ARCH_PPC, [CS_MODE_BIG_ENDIAN], _PPC_CODE, "PPC-64, print register with number only", 0L);
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN], _SPARC_CODE, "Sparc", 0L);
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN; CS_MODE_V9], _SPARCV9_CODE, "SparcV9", 0L);
+ (CS_ARCH_SYSZ, [CS_MODE_LITTLE_ENDIAN], _SYSZ_CODE, "SystemZ", 0L);
+ (CS_ARCH_XCORE, [CS_MODE_LITTLE_ENDIAN], _XCORE_CODE, "XCore", 0L);
+];;
+
+
+let print_insn insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;;
+
+let print_arch x =
+ let (arch, mode, code, comment, syntax) = x in
+ let handle = cs_open arch mode in (
+ if syntax != 0L then (
+ let err = cs_option handle CS_OPT_SYNTAX syntax in
+ match err with
+ | _ -> ();
+ );
+ let insns = cs_disasm handle code 0x1000L 0L in (
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter print_insn insns;
+ );
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ );;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_detail.ml b/capstone/bindings/ocaml/test_detail.ml
new file mode 100644
index 000000000..3f0fea0dd
--- /dev/null
+++ b/capstone/bindings/ocaml/test_detail.ml
@@ -0,0 +1,87 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open List
+open Capstone
+
+let _X86_CODE16 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE32 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE64 = "\x55\x48\x8b\x05\xb8\x13\x00\x00";;
+let _ARM_CODE = "\xED\xFF\xFF\xEB\x04\xe0\x2d\xe5\x00\x00\x00\x00\xe0\x83\x22\xe5\xf1\x02\x03\x0e\x00\x00\xa0\xe3\x02\x30\xc1\xe7\x00\x00\x53\xe3";;
+let _ARM_CODE2 = "\x10\xf1\x10\xe7\x11\xf2\x31\xe7\xdc\xa1\x2e\xf3\xe8\x4e\x62\xf3";;
+let _THUMB_CODE = "\x70\x47\xeb\x46\x83\xb0\xc9\x68";;
+let _THUMB_CODE2 = "\x4f\xf0\x00\x01\xbd\xe8\x00\x88";;
+let _MIPS_CODE = "\x0C\x10\x00\x97\x00\x00\x00\x00\x24\x02\x00\x0c\x8f\xa2\x00\x00\x34\x21\x34\x56";;
+let _MIPS_CODE2 = "\x56\x34\x21\x34\xc2\x17\x01\x00";;
+let _ARM64_CODE = "\x21\x7c\x02\x9b\x21\x7c\x00\x53\x00\x40\x21\x4b\xe1\x0b\x40\xb9";;
+let _PPC_CODE = "\x80\x20\x00\x00\x80\x3f\x00\x00\x10\x43\x23\x0e\xd0\x44\x00\x80\x4c\x43\x22\x02\x2d\x03\x00\x80\x7c\x43\x20\x14\x7c\x43\x20\x93\x4f\x20\x00\x21\x4c\xc8\x00\x21";;
+let _SPARC_CODE = "\x80\xa0\x40\x02\x85\xc2\x60\x08\x85\xe8\x20\x01\x81\xe8\x00\x00\x90\x10\x20\x01\xd5\xf6\x10\x16\x21\x00\x00\x0a\x86\x00\x40\x02\x01\x00\x00\x00\x12\xbf\xff\xff\x10\xbf\xff\xff\xa0\x02\x00\x09\x0d\xbf\xff\xff\xd4\x20\x60\x00\xd4\x4e\x00\x16\x2a\xc2\x80\x03";;
+let _SPARCV9_CODE = "\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0";;
+let _SYSZ_CODE = "\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78";;
+let _XCORE_CODE = "\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10";;
+
+let all_tests = [
+ (CS_ARCH_X86, [CS_MODE_16], _X86_CODE16, "X86 16bit (Intel syntax)", 0);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32bit (ATT syntax)", 0);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32 (Intel syntax)", 0);
+ (CS_ARCH_X86, [CS_MODE_64], _X86_CODE64, "X86 64 (Intel syntax)", 0);
+ (CS_ARCH_ARM, [CS_MODE_ARM], _ARM_CODE, "ARM", 0);
+ (CS_ARCH_ARM, [CS_MODE_ARM], _ARM_CODE2, "ARM: Cortex-A15 + NEON", 0);
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE, "THUMB", 0);
+ (CS_ARCH_ARM, [CS_MODE_THUMB], _THUMB_CODE2, "THUMB-2", 0);
+ (CS_ARCH_ARM64, [CS_MODE_ARM], _ARM64_CODE, "ARM-64", 0);
+ (CS_ARCH_MIPS, [CS_MODE_MIPS32; CS_MODE_BIG_ENDIAN], _MIPS_CODE, "MIPS-32 (Big-endian)", 0);
+ (CS_ARCH_MIPS, [CS_MODE_MIPS64; CS_MODE_LITTLE_ENDIAN], _MIPS_CODE2, "MIPS-64-EL (Little-endian)", 0);
+ (CS_ARCH_PPC, [CS_MODE_64; CS_MODE_BIG_ENDIAN], _PPC_CODE, "PPC-64", 0);
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN], _SPARC_CODE, "Sparc", 0);
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN; CS_MODE_V9], _SPARCV9_CODE, "SparcV9", 0);
+ (CS_ARCH_SYSZ, [CS_MODE_LITTLE_ENDIAN], _SYSZ_CODE, "SystemZ", 0);
+ (CS_ARCH_XCORE, [CS_MODE_LITTLE_ENDIAN], _XCORE_CODE, "XCore", 0);
+];;
+
+
+let print_detail handle insn =
+ (* print immediate operands *)
+ if (Array.length insn.regs_read) > 0 then begin
+ printf "\tImplicit registers read: ";
+ Array.iter (fun x -> printf "%s "(cs_reg_name handle x)) insn.regs_read;
+ printf "\n";
+ end;
+
+ if (Array.length insn.regs_write) > 0 then begin
+ printf "\tImplicit registers written: ";
+ Array.iter (fun x -> printf "%s "(cs_reg_name handle x)) insn.regs_write;
+ printf "\n";
+ end;
+
+ if (Array.length insn.groups) > 0 then begin
+ printf "\tThis instruction belongs to groups: ";
+ Array.iter (printf "%u ") insn.groups;
+ printf "\n";
+ end;
+ printf "\n";;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment, syntax) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_m680x.ml b/capstone/bindings/ocaml/test_m680x.ml
new file mode 100644
index 000000000..e728fa3ff
--- /dev/null
+++ b/capstone/bindings/ocaml/test_m680x.ml
@@ -0,0 +1,167 @@
+(* Capstone Disassembly Engine
+* M680X Backend by Wolfgang Schwotzer <wolfgang.schwotzer@gmx.net> 2017 *)
+
+open Printf
+open Capstone
+open M680x
+open M680x_const
+
+
+let print_char_hex ch =
+ printf " 0x%02x" (Char.code ch)
+
+let print_int_hex_short value =
+ printf "%02x" value
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ String.iter print_char_hex str;
+ printf "\n"
+
+let print_array_hex_short arr =
+ Array.iter print_int_hex_short arr
+
+let s_access = [
+ "UNCHANGED"; "READ"; "WRITE"; "READ | WRITE" ];;
+
+let _M6800_CODE = "\x01\x09\x36\x64\x7f\x74\x10\x00\x90\x10\xA4\x10\xb6\x10\x00\x39";;
+let _M6801_CODE = "\x04\x05\x3c\x3d\x38\x93\x10\xec\x10\xed\x10\x39";;
+let _M6805_CODE = "\x04\x7f\x00\x17\x22\x28\x00\x2e\x00\x40\x42\x5a\x70\x8e\x97\x9c\xa0\x15\xad\x00\xc3\x10\x00\xda\x12\x34\xe5\x7f\xfe";;
+let _M6808_CODE = "\x31\x22\x00\x35\x22\x45\x10\x00\x4b\x00\x51\x10\x52\x5e\x22\x62\x65\x12\x34\x72\x84\x85\x86\x87\x8a\x8b\x8c\x94\x95\xa7\x10\xaf\x10\x9e\x60\x7f\x9e\x6b\x7f\x00\x9e\xd6\x10\x00\x9e\xe6\x7f";;
+let _HD6301_CODE = "\x6b\x10\x00\x71\x10\x00\x72\x10\x10\x39";;
+let _M6809_CODE = "\x06\x10\x19\x1a\x55\x1e\x01\x23\xe9\x31\x06\x34\x55\xa6\x81\xa7\x89\x7f\xff\xa6\x9d\x10\x00\xa7\x91\xa6\x9f\x10\x00\x11\xac\x99\x10\x00\x39\xA6\x07\xA6\x27\xA6\x47\xA6\x67\xA6\x0F\xA6\x10\xA6\x80\xA6\x81\xA6\x82\xA6\x83\xA6\x84\xA6\x85\xA6\x86\xA6\x88\x7F\xA6\x88\x80\xA6\x89\x7F\xFF\xA6\x89\x80\x00\xA6\x8B\xA6\x8C\x10\xA6\x8D\x10\x00\xA6\x91\xA6\x93\xA6\x94\xA6\x95\xA6\x96\xA6\x98\x7F\xA6\x98\x80\xA6\x99\x7F\xFF\xA6\x99\x80\x00\xA6\x9B\xA6\x9C\x10\xA6\x9D\x10\x00\xA6\x9F\x10\x00";;
+let _HD6309_CODE = "\x01\x10\x10\x62\x10\x10\x7b\x10\x10\x00\xcd\x49\x96\x02\xd2\x10\x30\x23\x10\x38\x10\x3b\x10\x53\x10\x5d\x11\x30\x43\x10\x11\x37\x25\x10\x11\x38\x12\x11\x39\x23\x11\x3b\x34\x11\x8e\x10\x00\x11\xaf\x10\x11\xab\x10\x11\xf6\x80\x00";;
+let _M6811_CODE = "\x02\x03\x12\x7f\x10\x00\x13\x99\x08\x00\x14\x7f\x02\x15\x7f\x01\x1e\x7f\x20\x00\x8f\xcf\x18\x08\x18\x30\x18\x3c\x18\x67\x18\x8c\x10\x00\x18\x8f\x18\xce\x10\x00\x18\xff\x10\x00\x1a\xa3\x7f\x1a\xac\x1a\xee\x7f\x1a\xef\x7f\xcd\xac\x7f";;
+let _CPU12_CODE = "\x00\x04\x01\x00\x0c\x00\x80\x0e\x00\x80\x00\x11\x1e\x10\x00\x80\x00\x3b\x4a\x10\x00\x04\x4b\x01\x04\x4f\x7f\x80\x00\x8f\x10\x00\xb7\x52\xb7\xb1\xa6\x67\xa6\xfe\xa6\xf7\x18\x02\xe2\x30\x39\xe2\x10\x00\x18\x0c\x30\x39\x10\x00\x18\x11\x18\x12\x10\x00\x18\x19\x00\x18\x1e\x00\x18\x3e\x18\x3f\x00";;
+let _HCS08_CODE = "\x32\x10\x00\x9e\xae\x9e\xce\x7f\x9e\xbe\x10\x00\x9e\xfe\x7f\x3e\x10\x00\x9e\xf3\x7f\x96\x10\x00\x9e\xff\x7f\x82";;
+
+let bit_set value mask =
+ value land mask != 0
+
+let all_tests = [
+ (CS_ARCH_M680X, [CS_MODE_M680X_6301], _HD6301_CODE, "M680X_HD6301");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6309], _HD6309_CODE, "M680X_HD6309");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6800], _M6800_CODE, "M680X_M6800");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6801], _M6801_CODE, "M680X_M6801");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6805], _M6805_CODE, "M680X_M68HC05");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6808], _M6808_CODE, "M680X_M68HC08");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6809], _M6809_CODE, "M680X_M6809");
+ (CS_ARCH_M680X, [CS_MODE_M680X_6811], _M6811_CODE, "M680X_M68HC11");
+ (CS_ARCH_M680X, [CS_MODE_M680X_CPU12], _CPU12_CODE, "M680X_CPU12");
+ (CS_ARCH_M680X, [CS_MODE_M680X_HCS08], _HCS08_CODE, "M680X_HCS08");
+];;
+
+let print_inc_dec inc_dec is_post = (
+ printf "\t\t\t";
+ if is_post then printf "post" else printf "pre";
+ if inc_dec > 0 then
+ printf " increment: %d\n" inc_dec
+ else
+ printf " decrement: %d\n" (abs inc_dec);
+ );
+ ();;
+
+let print_op handle flags i op =
+ ( match op.value with
+ | M680X_OP_INVALID _ -> (); (* this would never happens *)
+ | M680X_OP_REGISTER reg -> (
+ printf "\t\toperands[%d].type: REGISTER = %s" i (cs_reg_name handle reg);
+ if (((i == 0) && (bit_set flags _M680X_FIRST_OP_IN_MNEM)) ||
+ ((i == 1) && (bit_set flags _M680X_SECOND_OP_IN_MNEM))) then
+ printf " (in mnemonic)";
+ printf "\n";
+ );
+ | M680X_OP_IMMEDIATE imm ->
+ printf "\t\toperands[%d].type: IMMEDIATE = #%d\n" i imm;
+ | M680X_OP_DIRECT direct_addr ->
+ printf "\t\toperands[%d].type: DIRECT = 0x%02x\n" i direct_addr;
+ | M680X_OP_EXTENDED ext -> (
+ printf "\t\toperands[%d].type: EXTENDED " i;
+ if ext.indirect then
+ printf "INDIRECT";
+ printf " = 0x%04x\n" ext.addr_ext;
+ );
+ | M680X_OP_RELATIVE rel ->
+ printf "\t\toperands[%d].type: RELATIVE = 0x%04x\n" i rel.addr_rel;
+ | M680X_OP_INDEXED idx -> (
+ printf "\t\toperands[%d].type: INDEXED" i;
+ if (bit_set idx.flags _M680X_IDX_INDIRECT) then
+ printf " INDIRECT";
+ printf "\n";
+ if idx.base_reg != _M680X_REG_INVALID then
+ printf "\t\t\tbase register: %s\n" (cs_reg_name handle idx.base_reg);
+ if idx.offset_reg != _M680X_REG_INVALID then
+ printf "\t\t\toffset register: %s\n" (cs_reg_name handle idx.offset_reg);
+ if idx.offset_bits != 0 && idx.offset_reg == 0 && idx.inc_dec == 0 then begin
+ printf "\t\t\toffset: %d\n" idx.offset;
+ if idx.base_reg == _M680X_REG_PC then
+ printf "\t\t\toffset address: 0x%x\n" idx.offset_addr;
+ printf "\t\t\toffset bits: %u\n" idx.offset_bits;
+ end;
+ if idx.inc_dec != 0 then
+ print_inc_dec idx.inc_dec (bit_set idx.flags _M680X_IDX_POST_INC_DEC);
+ );
+ | M680X_OP_CONSTANT const_val ->
+ printf "\t\toperands[%d].type: CONSTANT = %d\n" i const_val;
+ );
+
+ if op.size != 0 then
+ printf "\t\t\tsize: %d\n" op.size;
+ if op.access != _CS_AC_INVALID then
+ printf "\t\t\taccess: %s\n" (List.nth s_access op.access);
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_M680X m680x -> (
+ (* print all operands info (type & value) *)
+ if (Array.length m680x.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length m680x.operands);
+ Array.iteri (print_op handle m680x.flags) m680x.operands;
+ );
+ );
+ | _ -> ();
+ ;;
+
+let print_reg handle reg =
+ printf " %s" (cs_reg_name handle reg)
+
+let print_insn handle insn =
+ printf "0x%04x:\t" insn.address;
+ print_array_hex_short insn.bytes;
+ printf "\t%s\t%s\n" insn.mnemonic insn.op_str;
+ print_detail handle insn;
+ if (Array.length insn.regs_read) > 0 then begin
+ printf "\tRegisters read:";
+ Array.iter (print_reg handle) insn.regs_read;
+ printf "\n";
+ end;
+ if (Array.length insn.regs_write) > 0 then begin
+ printf "\tRegisters modified:";
+ Array.iter (print_reg handle) insn.regs_write;
+ printf "\n";
+ end;
+ if (Array.length insn.groups) > 0 then
+ printf "\tgroups_count: %d\n" (Array.length insn.groups);
+ printf "\n"
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "********************\n";
+ printf "Platform: %s\n" comment;
+ print_string_hex "Code: " code;
+ printf "Disasm:\n";
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+List.iter print_arch all_tests;;
+
diff --git a/capstone/bindings/ocaml/test_mips.ml b/capstone/bindings/ocaml/test_mips.ml
new file mode 100644
index 000000000..aef940be9
--- /dev/null
+++ b/capstone/bindings/ocaml/test_mips.ml
@@ -0,0 +1,75 @@
+(* Capstone Disassembly Engine
+* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open Capstone
+open Mips
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _MIPS_CODE = "\x0C\x10\x00\x97\x00\x00\x00\x00\x24\x02\x00\x0c\x8f\xa2\x00\x00\x34\x21\x34\x56";;
+let _MIPS_CODE2 = "\x56\x34\x21\x34\xc2\x17\x01\x00";;
+
+let all_tests = [
+ (CS_ARCH_MIPS, [CS_MODE_MIPS32; CS_MODE_BIG_ENDIAN], _MIPS_CODE, "MIPS-32 (Big-endian)");
+ (CS_ARCH_MIPS, [CS_MODE_MIPS64; CS_MODE_LITTLE_ENDIAN], _MIPS_CODE2, "MIPS-64-EL (Little-endian)");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | MIPS_OP_INVALID _ -> (); (* this would never happens *)
+ | MIPS_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | MIPS_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | MIPS_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ );
+ );
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_MIPS mips -> (
+ (* print all operands info (type & value) *)
+ if (Array.length mips.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length mips.operands);
+ Array.iteri (print_op handle) mips.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_ppc.ml b/capstone/bindings/ocaml/test_ppc.ml
new file mode 100644
index 000000000..e5e3acbff
--- /dev/null
+++ b/capstone/bindings/ocaml/test_ppc.ml
@@ -0,0 +1,81 @@
+(* Capstone Disassembly Engine
+* By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Printf
+open Capstone
+open Ppc
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _PPC_CODE = "\x80\x20\x00\x00\x80\x3f\x00\x00\x10\x43\x23\x0e\xd0\x44\x00\x80\x4c\x43\x22\x02\x2d\x03\x00\x80\x7c\x43\x20\x14\x7c\x43\x20\x93\x4f\x20\x00\x21\x4c\xc8\x00\x21";;
+
+let all_tests = [
+ (CS_ARCH_PPC, [CS_MODE_64; CS_MODE_BIG_ENDIAN], _PPC_CODE, "PPC-64");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | PPC_OP_INVALID _ -> (); (* this would never happens *)
+ | PPC_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | PPC_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | PPC_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ );
+ | PPC_OP_CRX crx -> ( printf "\t\top[%d]: CRX\n" i;
+ if crx.scale != 0 then
+ printf "\t\t\toperands[%u].crx.scale = %u\n" i crx.scale;
+ if crx.reg != 0 then
+ printf "\t\t\toperands[%u].crx.reg = %s\n" i (cs_reg_name handle crx.reg);
+ if crx.cond != 0 then
+ printf "\t\t\toperands[%u].crx.cond = 0x%x\n" i crx.cond;
+ );
+ );
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_PPC ppc -> (
+ (* print all operands info (type & value) *)
+ if (Array.length ppc.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length ppc.operands);
+ Array.iteri (print_op handle) ppc.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_sparc.ml b/capstone/bindings/ocaml/test_sparc.ml
new file mode 100644
index 000000000..671f12110
--- /dev/null
+++ b/capstone/bindings/ocaml/test_sparc.ml
@@ -0,0 +1,79 @@
+(* Capstone Disassembly Engine
+* By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Printf
+open Capstone
+open Sparc
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _SPARC_CODE = "\x80\xa0\x40\x02\x85\xc2\x60\x08\x85\xe8\x20\x01\x81\xe8\x00\x00\x90\x10\x20\x01\xd5\xf6\x10\x16\x21\x00\x00\x0a\x86\x00\x40\x02\x01\x00\x00\x00\x12\xbf\xff\xff\x10\xbf\xff\xff\xa0\x02\x00\x09\x0d\xbf\xff\xff\xd4\x20\x60\x00\xd4\x4e\x00\x16\x2a\xc2\x80\x03";;
+let _SPARCV9_CODE = "\x81\xa8\x0a\x24\x89\xa0\x10\x20\x89\xa0\x1a\x60\x89\xa0\x00\xe0";;
+
+
+let all_tests = [
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN], _SPARC_CODE, "Sparc");
+ (CS_ARCH_SPARC, [CS_MODE_BIG_ENDIAN; CS_MODE_V9], _SPARCV9_CODE, "SparcV9");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | SPARC_OP_INVALID _ -> (); (* this would never happens *)
+ | SPARC_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | SPARC_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | SPARC_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: 0x%x\n" i mem.index;
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ );
+ );
+
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_SPARC sparc -> (
+ (* print all operands info (type & value) *)
+ if (Array.length sparc.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length sparc.operands);
+ Array.iteri (print_op handle) sparc.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_systemz.ml b/capstone/bindings/ocaml/test_systemz.ml
new file mode 100644
index 000000000..8f5dbe5c2
--- /dev/null
+++ b/capstone/bindings/ocaml/test_systemz.ml
@@ -0,0 +1,80 @@
+(* Capstone Disassembly Engine
+* By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Printf
+open Capstone
+open Systemz
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _SYSZ_CODE = "\xed\x00\x00\x00\x00\x1a\x5a\x0f\x1f\xff\xc2\x09\x80\x00\x00\x00\x07\xf7\xeb\x2a\xff\xff\x7f\x57\xe3\x01\xff\xff\x7f\x57\xeb\x00\xf0\x00\x00\x24\xb2\x4f\x00\x78";;
+
+
+
+let all_tests = [
+ (CS_ARCH_SYSZ, [CS_MODE_LITTLE_ENDIAN], _SYSZ_CODE, "SystemZ");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | SYSZ_OP_INVALID _ -> (); (* this would never happens *)
+ | SYSZ_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | SYSZ_OP_ACREG reg -> printf "\t\top[%d]: ACREG = %u\n" i reg;
+ | SYSZ_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | SYSZ_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: 0x%x\n" i mem.index;
+ if mem.length != 0L then
+ printf "\t\t\toperands[%u].mem.length: 0x%Lx\n" i mem.length;
+ if mem.disp != 0L then
+ printf "\t\t\toperands[%u].mem.disp: 0x%Lx\n" i mem.disp;
+ );
+ );
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_SYSZ sysz -> (
+ (* print all operands info (type & value) *)
+ if (Array.length sysz.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length sysz.operands);
+ Array.iteri (print_op handle) sysz.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_x86.ml b/capstone/bindings/ocaml/test_x86.ml
new file mode 100644
index 000000000..d35bf0f01
--- /dev/null
+++ b/capstone/bindings/ocaml/test_x86.ml
@@ -0,0 +1,117 @@
+(* Capstone Disassembly Engine
+* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open Printf
+open Capstone
+open X86
+open X86_const
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _X86_CODE16 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE32 = "\x8d\x4c\x32\x08\x01\xd8\x81\xc6\x34\x12\x00\x00";;
+let _X86_CODE64 = "\x55\x48\x8b\x05\xb8\x13\x00\x00";;
+
+
+let all_tests = [
+ (CS_ARCH_X86, [CS_MODE_16], _X86_CODE16, "X86 16bit (Intel syntax)", 0L);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32bit (ATT syntax)", _CS_OPT_SYNTAX_ATT);
+ (CS_ARCH_X86, [CS_MODE_32], _X86_CODE32, "X86 32 (Intel syntax)", 0L);
+ (CS_ARCH_X86, [CS_MODE_64], _X86_CODE64, "X86 64 (Intel syntax)", 0L);
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | X86_OP_INVALID _ -> (); (* this would never happens *)
+ | X86_OP_REG reg -> printf "\t\top[%d]: REG = %s [sz=%d]\n" i (cs_reg_name handle reg) op.size;
+ | X86_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x [sz=%d]\n" i imm op.size;
+ | X86_OP_MEM mem -> ( printf "\t\top[%d]: MEM [sz=%d]\n" i op.size;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: REG = %s\n" i (cs_reg_name handle mem.index);
+ if mem.scale != 1 then
+ printf "\t\t\toperands[%u].mem.scale: %d\n" i mem.scale;
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ );
+ );
+ ();;
+
+
+let print_detail handle mode insn =
+ match insn.arch with
+ | CS_INFO_X86 x86 -> (
+ print_string_hex "\tPrefix: " x86.prefix;
+
+ (* print instruction's opcode *)
+ print_string_hex "\tOpcode: " x86.opcode;
+
+ (* print operand's size, address size, displacement size & immediate size *)
+ printf "\taddr_size: %u\n" x86.addr_size;
+
+ (* print modRM byte *)
+ printf "\tmodrm: 0x%x\n" x86.modrm;
+
+ (* print displacement value *)
+ if x86.disp != 0 then
+ printf "\tdisp: 0x%x\n" x86.disp;
+
+ (* SIB is invalid in 16-bit mode *)
+ if not (List.mem CS_MODE_16 mode) then (
+ (* print SIB byte *)
+ printf "\tsib: 0x%x\n" x86.sib;
+
+ (* print sib index/scale/base (if applicable) *)
+ if x86.sib_index != _X86_REG_INVALID then
+ printf "\tsib_index: %s, sib_scale: %u, sib_base: %s\n"
+ (cs_reg_name handle x86.sib_index)
+ x86.sib_scale
+ (cs_reg_name handle x86.sib_base);
+ );
+
+ (* print all operands info (type & value) *)
+ if (Array.length x86.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length x86.operands);
+ Array.iteri (print_op handle) x86.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle mode insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle mode insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment, syntax) = x in
+ let handle = cs_open arch mode in (
+ if syntax != 0L then (
+ let err = cs_option handle CS_OPT_SYNTAX syntax in
+ match err with
+ | _ -> ();
+ );
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in (
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle mode) insns;
+ );
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ );;
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/test_xcore.ml b/capstone/bindings/ocaml/test_xcore.ml
new file mode 100644
index 000000000..984ebb67c
--- /dev/null
+++ b/capstone/bindings/ocaml/test_xcore.ml
@@ -0,0 +1,78 @@
+(* Capstone Disassembly Engine
+* By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Printf
+open Capstone
+open Xcore
+
+
+let print_string_hex comment str =
+ printf "%s" comment;
+ for i = 0 to (Array.length str - 1) do
+ printf "0x%02x " str.(i)
+ done;
+ printf "\n"
+
+
+let _XCORE_CODE = "\xfe\x0f\xfe\x17\x13\x17\xc6\xfe\xec\x17\x97\xf8\xec\x4f\x1f\xfd\xec\x37\x07\xf2\x45\x5b\xf9\xfa\x02\x06\x1b\x10";;
+
+let all_tests = [
+ (CS_ARCH_XCORE, [CS_MODE_LITTLE_ENDIAN], _XCORE_CODE, "XCore");
+];;
+
+let print_op handle i op =
+ ( match op.value with
+ | XCORE_OP_INVALID _ -> (); (* this would never happens *)
+ | XCORE_OP_REG reg -> printf "\t\top[%d]: REG = %s\n" i (cs_reg_name handle reg);
+ | XCORE_OP_IMM imm -> printf "\t\top[%d]: IMM = 0x%x\n" i imm;
+ | XCORE_OP_MEM mem -> ( printf "\t\top[%d]: MEM\n" i;
+ if mem.base != 0 then
+ printf "\t\t\toperands[%u].mem.base: REG = %s\n" i (cs_reg_name handle mem.base);
+ if mem.index != 0 then
+ printf "\t\t\toperands[%u].mem.index: 0x%x\n" i mem.index;
+ if mem.disp != 0 then
+ printf "\t\t\toperands[%u].mem.disp: 0x%x\n" i mem.disp;
+ if mem.direct != 0 then
+ printf "\t\t\toperands[%u].mem.direct: 0x%x\n" i mem.direct;
+ );
+ );
+
+ ();;
+
+
+let print_detail handle insn =
+ match insn.arch with
+ | CS_INFO_XCORE xcore -> (
+ (* print all operands info (type & value) *)
+ if (Array.length xcore.operands) > 0 then (
+ printf "\top_count: %d\n" (Array.length xcore.operands);
+ Array.iteri (print_op handle) xcore.operands;
+ );
+ printf "\n";
+ );
+ | _ -> ();
+ ;;
+
+
+let print_insn handle insn =
+ printf "0x%x\t%s\t%s\n" insn.address insn.mnemonic insn.op_str;
+ print_detail handle insn
+
+
+let print_arch x =
+ let (arch, mode, code, comment) = x in
+ let handle = cs_open arch mode in
+ let err = cs_option handle CS_OPT_DETAIL _CS_OPT_ON in
+ match err with
+ | _ -> ();
+ let insns = cs_disasm handle code 0x1000L 0L in
+ printf "*************\n";
+ printf "Platform: %s\n" comment;
+ List.iter (print_insn handle) insns;
+ match cs_close handle with
+ | 0 -> ();
+ | _ -> printf "Failed to close handle";
+ ;;
+
+
+List.iter print_arch all_tests;;
diff --git a/capstone/bindings/ocaml/tms320c64x_const.ml b/capstone/bindings/ocaml/tms320c64x_const.ml
new file mode 100644
index 000000000..53a4440e8
--- /dev/null
+++ b/capstone/bindings/ocaml/tms320c64x_const.ml
@@ -0,0 +1,277 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [tms320c64x_const.ml] *)
+
+let _TMS320C64X_OP_INVALID = 0;;
+let _TMS320C64X_OP_REG = 1;;
+let _TMS320C64X_OP_IMM = 2;;
+let _TMS320C64X_OP_MEM = 3;;
+let _TMS320C64X_OP_REGPAIR = 64;;
+
+let _TMS320C64X_MEM_DISP_INVALID = 0;;
+let _TMS320C64X_MEM_DISP_CONSTANT = 1;;
+let _TMS320C64X_MEM_DISP_REGISTER = 2;;
+
+let _TMS320C64X_MEM_DIR_INVALID = 0;;
+let _TMS320C64X_MEM_DIR_FW = 1;;
+let _TMS320C64X_MEM_DIR_BW = 2;;
+
+let _TMS320C64X_MEM_MOD_INVALID = 0;;
+let _TMS320C64X_MEM_MOD_NO = 1;;
+let _TMS320C64X_MEM_MOD_PRE = 2;;
+let _TMS320C64X_MEM_MOD_POST = 3;;
+
+let _TMS320C64X_REG_INVALID = 0;;
+let _TMS320C64X_REG_AMR = 1;;
+let _TMS320C64X_REG_CSR = 2;;
+let _TMS320C64X_REG_DIER = 3;;
+let _TMS320C64X_REG_DNUM = 4;;
+let _TMS320C64X_REG_ECR = 5;;
+let _TMS320C64X_REG_GFPGFR = 6;;
+let _TMS320C64X_REG_GPLYA = 7;;
+let _TMS320C64X_REG_GPLYB = 8;;
+let _TMS320C64X_REG_ICR = 9;;
+let _TMS320C64X_REG_IER = 10;;
+let _TMS320C64X_REG_IERR = 11;;
+let _TMS320C64X_REG_ILC = 12;;
+let _TMS320C64X_REG_IRP = 13;;
+let _TMS320C64X_REG_ISR = 14;;
+let _TMS320C64X_REG_ISTP = 15;;
+let _TMS320C64X_REG_ITSR = 16;;
+let _TMS320C64X_REG_NRP = 17;;
+let _TMS320C64X_REG_NTSR = 18;;
+let _TMS320C64X_REG_REP = 19;;
+let _TMS320C64X_REG_RILC = 20;;
+let _TMS320C64X_REG_SSR = 21;;
+let _TMS320C64X_REG_TSCH = 22;;
+let _TMS320C64X_REG_TSCL = 23;;
+let _TMS320C64X_REG_TSR = 24;;
+let _TMS320C64X_REG_A0 = 25;;
+let _TMS320C64X_REG_A1 = 26;;
+let _TMS320C64X_REG_A2 = 27;;
+let _TMS320C64X_REG_A3 = 28;;
+let _TMS320C64X_REG_A4 = 29;;
+let _TMS320C64X_REG_A5 = 30;;
+let _TMS320C64X_REG_A6 = 31;;
+let _TMS320C64X_REG_A7 = 32;;
+let _TMS320C64X_REG_A8 = 33;;
+let _TMS320C64X_REG_A9 = 34;;
+let _TMS320C64X_REG_A10 = 35;;
+let _TMS320C64X_REG_A11 = 36;;
+let _TMS320C64X_REG_A12 = 37;;
+let _TMS320C64X_REG_A13 = 38;;
+let _TMS320C64X_REG_A14 = 39;;
+let _TMS320C64X_REG_A15 = 40;;
+let _TMS320C64X_REG_A16 = 41;;
+let _TMS320C64X_REG_A17 = 42;;
+let _TMS320C64X_REG_A18 = 43;;
+let _TMS320C64X_REG_A19 = 44;;
+let _TMS320C64X_REG_A20 = 45;;
+let _TMS320C64X_REG_A21 = 46;;
+let _TMS320C64X_REG_A22 = 47;;
+let _TMS320C64X_REG_A23 = 48;;
+let _TMS320C64X_REG_A24 = 49;;
+let _TMS320C64X_REG_A25 = 50;;
+let _TMS320C64X_REG_A26 = 51;;
+let _TMS320C64X_REG_A27 = 52;;
+let _TMS320C64X_REG_A28 = 53;;
+let _TMS320C64X_REG_A29 = 54;;
+let _TMS320C64X_REG_A30 = 55;;
+let _TMS320C64X_REG_A31 = 56;;
+let _TMS320C64X_REG_B0 = 57;;
+let _TMS320C64X_REG_B1 = 58;;
+let _TMS320C64X_REG_B2 = 59;;
+let _TMS320C64X_REG_B3 = 60;;
+let _TMS320C64X_REG_B4 = 61;;
+let _TMS320C64X_REG_B5 = 62;;
+let _TMS320C64X_REG_B6 = 63;;
+let _TMS320C64X_REG_B7 = 64;;
+let _TMS320C64X_REG_B8 = 65;;
+let _TMS320C64X_REG_B9 = 66;;
+let _TMS320C64X_REG_B10 = 67;;
+let _TMS320C64X_REG_B11 = 68;;
+let _TMS320C64X_REG_B12 = 69;;
+let _TMS320C64X_REG_B13 = 70;;
+let _TMS320C64X_REG_B14 = 71;;
+let _TMS320C64X_REG_B15 = 72;;
+let _TMS320C64X_REG_B16 = 73;;
+let _TMS320C64X_REG_B17 = 74;;
+let _TMS320C64X_REG_B18 = 75;;
+let _TMS320C64X_REG_B19 = 76;;
+let _TMS320C64X_REG_B20 = 77;;
+let _TMS320C64X_REG_B21 = 78;;
+let _TMS320C64X_REG_B22 = 79;;
+let _TMS320C64X_REG_B23 = 80;;
+let _TMS320C64X_REG_B24 = 81;;
+let _TMS320C64X_REG_B25 = 82;;
+let _TMS320C64X_REG_B26 = 83;;
+let _TMS320C64X_REG_B27 = 84;;
+let _TMS320C64X_REG_B28 = 85;;
+let _TMS320C64X_REG_B29 = 86;;
+let _TMS320C64X_REG_B30 = 87;;
+let _TMS320C64X_REG_B31 = 88;;
+let _TMS320C64X_REG_PCE1 = 89;;
+let _TMS320C64X_REG_ENDING = 90;;
+let _TMS320C64X_REG_EFR = _TMS320C64X_REG_ECR;;
+let _TMS320C64X_REG_IFR = _TMS320C64X_REG_ISR;;
+
+let _TMS320C64X_INS_INVALID = 0;;
+let _TMS320C64X_INS_ABS = 1;;
+let _TMS320C64X_INS_ABS2 = 2;;
+let _TMS320C64X_INS_ADD = 3;;
+let _TMS320C64X_INS_ADD2 = 4;;
+let _TMS320C64X_INS_ADD4 = 5;;
+let _TMS320C64X_INS_ADDAB = 6;;
+let _TMS320C64X_INS_ADDAD = 7;;
+let _TMS320C64X_INS_ADDAH = 8;;
+let _TMS320C64X_INS_ADDAW = 9;;
+let _TMS320C64X_INS_ADDK = 10;;
+let _TMS320C64X_INS_ADDKPC = 11;;
+let _TMS320C64X_INS_ADDU = 12;;
+let _TMS320C64X_INS_AND = 13;;
+let _TMS320C64X_INS_ANDN = 14;;
+let _TMS320C64X_INS_AVG2 = 15;;
+let _TMS320C64X_INS_AVGU4 = 16;;
+let _TMS320C64X_INS_B = 17;;
+let _TMS320C64X_INS_BDEC = 18;;
+let _TMS320C64X_INS_BITC4 = 19;;
+let _TMS320C64X_INS_BNOP = 20;;
+let _TMS320C64X_INS_BPOS = 21;;
+let _TMS320C64X_INS_CLR = 22;;
+let _TMS320C64X_INS_CMPEQ = 23;;
+let _TMS320C64X_INS_CMPEQ2 = 24;;
+let _TMS320C64X_INS_CMPEQ4 = 25;;
+let _TMS320C64X_INS_CMPGT = 26;;
+let _TMS320C64X_INS_CMPGT2 = 27;;
+let _TMS320C64X_INS_CMPGTU4 = 28;;
+let _TMS320C64X_INS_CMPLT = 29;;
+let _TMS320C64X_INS_CMPLTU = 30;;
+let _TMS320C64X_INS_DEAL = 31;;
+let _TMS320C64X_INS_DOTP2 = 32;;
+let _TMS320C64X_INS_DOTPN2 = 33;;
+let _TMS320C64X_INS_DOTPNRSU2 = 34;;
+let _TMS320C64X_INS_DOTPRSU2 = 35;;
+let _TMS320C64X_INS_DOTPSU4 = 36;;
+let _TMS320C64X_INS_DOTPU4 = 37;;
+let _TMS320C64X_INS_EXT = 38;;
+let _TMS320C64X_INS_EXTU = 39;;
+let _TMS320C64X_INS_GMPGTU = 40;;
+let _TMS320C64X_INS_GMPY4 = 41;;
+let _TMS320C64X_INS_LDB = 42;;
+let _TMS320C64X_INS_LDBU = 43;;
+let _TMS320C64X_INS_LDDW = 44;;
+let _TMS320C64X_INS_LDH = 45;;
+let _TMS320C64X_INS_LDHU = 46;;
+let _TMS320C64X_INS_LDNDW = 47;;
+let _TMS320C64X_INS_LDNW = 48;;
+let _TMS320C64X_INS_LDW = 49;;
+let _TMS320C64X_INS_LMBD = 50;;
+let _TMS320C64X_INS_MAX2 = 51;;
+let _TMS320C64X_INS_MAXU4 = 52;;
+let _TMS320C64X_INS_MIN2 = 53;;
+let _TMS320C64X_INS_MINU4 = 54;;
+let _TMS320C64X_INS_MPY = 55;;
+let _TMS320C64X_INS_MPY2 = 56;;
+let _TMS320C64X_INS_MPYH = 57;;
+let _TMS320C64X_INS_MPYHI = 58;;
+let _TMS320C64X_INS_MPYHIR = 59;;
+let _TMS320C64X_INS_MPYHL = 60;;
+let _TMS320C64X_INS_MPYHLU = 61;;
+let _TMS320C64X_INS_MPYHSLU = 62;;
+let _TMS320C64X_INS_MPYHSU = 63;;
+let _TMS320C64X_INS_MPYHU = 64;;
+let _TMS320C64X_INS_MPYHULS = 65;;
+let _TMS320C64X_INS_MPYHUS = 66;;
+let _TMS320C64X_INS_MPYLH = 67;;
+let _TMS320C64X_INS_MPYLHU = 68;;
+let _TMS320C64X_INS_MPYLI = 69;;
+let _TMS320C64X_INS_MPYLIR = 70;;
+let _TMS320C64X_INS_MPYLSHU = 71;;
+let _TMS320C64X_INS_MPYLUHS = 72;;
+let _TMS320C64X_INS_MPYSU = 73;;
+let _TMS320C64X_INS_MPYSU4 = 74;;
+let _TMS320C64X_INS_MPYU = 75;;
+let _TMS320C64X_INS_MPYU4 = 76;;
+let _TMS320C64X_INS_MPYUS = 77;;
+let _TMS320C64X_INS_MVC = 78;;
+let _TMS320C64X_INS_MVD = 79;;
+let _TMS320C64X_INS_MVK = 80;;
+let _TMS320C64X_INS_MVKL = 81;;
+let _TMS320C64X_INS_MVKLH = 82;;
+let _TMS320C64X_INS_NOP = 83;;
+let _TMS320C64X_INS_NORM = 84;;
+let _TMS320C64X_INS_OR = 85;;
+let _TMS320C64X_INS_PACK2 = 86;;
+let _TMS320C64X_INS_PACKH2 = 87;;
+let _TMS320C64X_INS_PACKH4 = 88;;
+let _TMS320C64X_INS_PACKHL2 = 89;;
+let _TMS320C64X_INS_PACKL4 = 90;;
+let _TMS320C64X_INS_PACKLH2 = 91;;
+let _TMS320C64X_INS_ROTL = 92;;
+let _TMS320C64X_INS_SADD = 93;;
+let _TMS320C64X_INS_SADD2 = 94;;
+let _TMS320C64X_INS_SADDU4 = 95;;
+let _TMS320C64X_INS_SADDUS2 = 96;;
+let _TMS320C64X_INS_SAT = 97;;
+let _TMS320C64X_INS_SET = 98;;
+let _TMS320C64X_INS_SHFL = 99;;
+let _TMS320C64X_INS_SHL = 100;;
+let _TMS320C64X_INS_SHLMB = 101;;
+let _TMS320C64X_INS_SHR = 102;;
+let _TMS320C64X_INS_SHR2 = 103;;
+let _TMS320C64X_INS_SHRMB = 104;;
+let _TMS320C64X_INS_SHRU = 105;;
+let _TMS320C64X_INS_SHRU2 = 106;;
+let _TMS320C64X_INS_SMPY = 107;;
+let _TMS320C64X_INS_SMPY2 = 108;;
+let _TMS320C64X_INS_SMPYH = 109;;
+let _TMS320C64X_INS_SMPYHL = 110;;
+let _TMS320C64X_INS_SMPYLH = 111;;
+let _TMS320C64X_INS_SPACK2 = 112;;
+let _TMS320C64X_INS_SPACKU4 = 113;;
+let _TMS320C64X_INS_SSHL = 114;;
+let _TMS320C64X_INS_SSHVL = 115;;
+let _TMS320C64X_INS_SSHVR = 116;;
+let _TMS320C64X_INS_SSUB = 117;;
+let _TMS320C64X_INS_STB = 118;;
+let _TMS320C64X_INS_STDW = 119;;
+let _TMS320C64X_INS_STH = 120;;
+let _TMS320C64X_INS_STNDW = 121;;
+let _TMS320C64X_INS_STNW = 122;;
+let _TMS320C64X_INS_STW = 123;;
+let _TMS320C64X_INS_SUB = 124;;
+let _TMS320C64X_INS_SUB2 = 125;;
+let _TMS320C64X_INS_SUB4 = 126;;
+let _TMS320C64X_INS_SUBAB = 127;;
+let _TMS320C64X_INS_SUBABS4 = 128;;
+let _TMS320C64X_INS_SUBAH = 129;;
+let _TMS320C64X_INS_SUBAW = 130;;
+let _TMS320C64X_INS_SUBC = 131;;
+let _TMS320C64X_INS_SUBU = 132;;
+let _TMS320C64X_INS_SWAP4 = 133;;
+let _TMS320C64X_INS_UNPKHU4 = 134;;
+let _TMS320C64X_INS_UNPKLU4 = 135;;
+let _TMS320C64X_INS_XOR = 136;;
+let _TMS320C64X_INS_XPND2 = 137;;
+let _TMS320C64X_INS_XPND4 = 138;;
+let _TMS320C64X_INS_IDLE = 139;;
+let _TMS320C64X_INS_MV = 140;;
+let _TMS320C64X_INS_NEG = 141;;
+let _TMS320C64X_INS_NOT = 142;;
+let _TMS320C64X_INS_SWAP2 = 143;;
+let _TMS320C64X_INS_ZERO = 144;;
+let _TMS320C64X_INS_ENDING = 145;;
+
+let _TMS320C64X_GRP_INVALID = 0;;
+let _TMS320C64X_GRP_JUMP = 1;;
+let _TMS320C64X_GRP_FUNIT_D = 128;;
+let _TMS320C64X_GRP_FUNIT_L = 129;;
+let _TMS320C64X_GRP_FUNIT_M = 130;;
+let _TMS320C64X_GRP_FUNIT_S = 131;;
+let _TMS320C64X_GRP_FUNIT_NO = 132;;
+let _TMS320C64X_GRP_ENDING = 133;;
+
+let _TMS320C64X_FUNIT_INVALID = 0;;
+let _TMS320C64X_FUNIT_D = 1;;
+let _TMS320C64X_FUNIT_L = 2;;
+let _TMS320C64X_FUNIT_M = 3;;
+let _TMS320C64X_FUNIT_S = 4;;
+let _TMS320C64X_FUNIT_NO = 5;;
diff --git a/capstone/bindings/ocaml/wasm_const.ml b/capstone/bindings/ocaml/wasm_const.ml
new file mode 100644
index 000000000..760917dc1
--- /dev/null
+++ b/capstone/bindings/ocaml/wasm_const.ml
@@ -0,0 +1,191 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [wasm_const.ml] *)
+
+let _WASM_OP_INVALID = 0;;
+let _WASM_OP_NONE = 1;;
+let _WASM_OP_INT7 = 2;;
+let _WASM_OP_VARUINT32 = 3;;
+let _WASM_OP_VARUINT64 = 4;;
+let _WASM_OP_UINT32 = 5;;
+let _WASM_OP_UINT64 = 6;;
+let _WASM_OP_IMM = 7;;
+let _WASM_OP_BRTABLE = 8;;
+let _WASM_INS_UNREACHABLE = 0x0;;
+let _WASM_INS_NOP = 0x1;;
+let _WASM_INS_BLOCK = 0x2;;
+let _WASM_INS_LOOP = 0x3;;
+let _WASM_INS_IF = 0x4;;
+let _WASM_INS_ELSE = 0x5;;
+let _WASM_INS_END = 0xb;;
+let _WASM_INS_BR = 0xc;;
+let _WASM_INS_BR_IF = 0xd;;
+let _WASM_INS_BR_TABLE = 0xe;;
+let _WASM_INS_RETURN = 0xf;;
+let _WASM_INS_CALL = 0x10;;
+let _WASM_INS_CALL_INDIRECT = 0x11;;
+let _WASM_INS_DROP = 0x1a;;
+let _WASM_INS_SELECT = 0x1b;;
+let _WASM_INS_GET_LOCAL = 0x20;;
+let _WASM_INS_SET_LOCAL = 0x21;;
+let _WASM_INS_TEE_LOCAL = 0x22;;
+let _WASM_INS_GET_GLOBAL = 0x23;;
+let _WASM_INS_SET_GLOBAL = 0x24;;
+let _WASM_INS_I32_LOAD = 0x28;;
+let _WASM_INS_I64_LOAD = 0x29;;
+let _WASM_INS_F32_LOAD = 0x2a;;
+let _WASM_INS_F64_LOAD = 0x2b;;
+let _WASM_INS_I32_LOAD8_S = 0x2c;;
+let _WASM_INS_I32_LOAD8_U = 0x2d;;
+let _WASM_INS_I32_LOAD16_S = 0x2e;;
+let _WASM_INS_I32_LOAD16_U = 0x2f;;
+let _WASM_INS_I64_LOAD8_S = 0x30;;
+let _WASM_INS_I64_LOAD8_U = 0x31;;
+let _WASM_INS_I64_LOAD16_S = 0x32;;
+let _WASM_INS_I64_LOAD16_U = 0x33;;
+let _WASM_INS_I64_LOAD32_S = 0x34;;
+let _WASM_INS_I64_LOAD32_U = 0x35;;
+let _WASM_INS_I32_STORE = 0x36;;
+let _WASM_INS_I64_STORE = 0x37;;
+let _WASM_INS_F32_STORE = 0x38;;
+let _WASM_INS_F64_STORE = 0x39;;
+let _WASM_INS_I32_STORE8 = 0x3a;;
+let _WASM_INS_I32_STORE16 = 0x3b;;
+let _WASM_INS_I64_STORE8 = 0x3c;;
+let _WASM_INS_I64_STORE16 = 0x3d;;
+let _WASM_INS_I64_STORE32 = 0x3e;;
+let _WASM_INS_CURRENT_MEMORY = 0x3f;;
+let _WASM_INS_GROW_MEMORY = 0x40;;
+let _WASM_INS_I32_CONST = 0x41;;
+let _WASM_INS_I64_CONST = 0x42;;
+let _WASM_INS_F32_CONST = 0x43;;
+let _WASM_INS_F64_CONST = 0x44;;
+let _WASM_INS_I32_EQZ = 0x45;;
+let _WASM_INS_I32_EQ = 0x46;;
+let _WASM_INS_I32_NE = 0x47;;
+let _WASM_INS_I32_LT_S = 0x48;;
+let _WASM_INS_I32_LT_U = 0x49;;
+let _WASM_INS_I32_GT_S = 0x4a;;
+let _WASM_INS_I32_GT_U = 0x4b;;
+let _WASM_INS_I32_LE_S = 0x4c;;
+let _WASM_INS_I32_LE_U = 0x4d;;
+let _WASM_INS_I32_GE_S = 0x4e;;
+let _WASM_INS_I32_GE_U = 0x4f;;
+let _WASM_INS_I64_EQZ = 0x50;;
+let _WASM_INS_I64_EQ = 0x51;;
+let _WASM_INS_I64_NE = 0x52;;
+let _WASM_INS_I64_LT_S = 0x53;;
+let _WASM_INS_I64_LT_U = 0x54;;
+let _WASM_INS_I64_GT_U = 0x56;;
+let _WASM_INS_I64_LE_S = 0x57;;
+let _WASM_INS_I64_LE_U = 0x58;;
+let _WASM_INS_I64_GE_S = 0x59;;
+let _WASM_INS_I64_GE_U = 0x5a;;
+let _WASM_INS_F32_EQ = 0x5b;;
+let _WASM_INS_F32_NE = 0x5c;;
+let _WASM_INS_F32_LT = 0x5d;;
+let _WASM_INS_F32_GT = 0x5e;;
+let _WASM_INS_F32_LE = 0x5f;;
+let _WASM_INS_F32_GE = 0x60;;
+let _WASM_INS_F64_EQ = 0x61;;
+let _WASM_INS_F64_NE = 0x62;;
+let _WASM_INS_F64_LT = 0x63;;
+let _WASM_INS_F64_GT = 0x64;;
+let _WASM_INS_F64_LE = 0x65;;
+let _WASM_INS_F64_GE = 0x66;;
+let _WASM_INS_I32_CLZ = 0x67;;
+let _WASM_INS_I32_CTZ = 0x68;;
+let _WASM_INS_I32_POPCNT = 0x69;;
+let _WASM_INS_I32_ADD = 0x6a;;
+let _WASM_INS_I32_SUB = 0x6b;;
+let _WASM_INS_I32_MUL = 0x6c;;
+let _WASM_INS_I32_DIV_S = 0x6d;;
+let _WASM_INS_I32_DIV_U = 0x6e;;
+let _WASM_INS_I32_REM_S = 0x6f;;
+let _WASM_INS_I32_REM_U = 0x70;;
+let _WASM_INS_I32_AND = 0x71;;
+let _WASM_INS_I32_OR = 0x72;;
+let _WASM_INS_I32_XOR = 0x73;;
+let _WASM_INS_I32_SHL = 0x74;;
+let _WASM_INS_I32_SHR_S = 0x75;;
+let _WASM_INS_I32_SHR_U = 0x76;;
+let _WASM_INS_I32_ROTL = 0x77;;
+let _WASM_INS_I32_ROTR = 0x78;;
+let _WASM_INS_I64_CLZ = 0x79;;
+let _WASM_INS_I64_CTZ = 0x7a;;
+let _WASM_INS_I64_POPCNT = 0x7b;;
+let _WASM_INS_I64_ADD = 0x7c;;
+let _WASM_INS_I64_SUB = 0x7d;;
+let _WASM_INS_I64_MUL = 0x7e;;
+let _WASM_INS_I64_DIV_S = 0x7f;;
+let _WASM_INS_I64_DIV_U = 0x80;;
+let _WASM_INS_I64_REM_S = 0x81;;
+let _WASM_INS_I64_REM_U = 0x82;;
+let _WASM_INS_I64_AND = 0x83;;
+let _WASM_INS_I64_OR = 0x84;;
+let _WASM_INS_I64_XOR = 0x85;;
+let _WASM_INS_I64_SHL = 0x86;;
+let _WASM_INS_I64_SHR_S = 0x87;;
+let _WASM_INS_I64_SHR_U = 0x88;;
+let _WASM_INS_I64_ROTL = 0x89;;
+let _WASM_INS_I64_ROTR = 0x8a;;
+let _WASM_INS_F32_ABS = 0x8b;;
+let _WASM_INS_F32_NEG = 0x8c;;
+let _WASM_INS_F32_CEIL = 0x8d;;
+let _WASM_INS_F32_FLOOR = 0x8e;;
+let _WASM_INS_F32_TRUNC = 0x8f;;
+let _WASM_INS_F32_NEAREST = 0x90;;
+let _WASM_INS_F32_SQRT = 0x91;;
+let _WASM_INS_F32_ADD = 0x92;;
+let _WASM_INS_F32_SUB = 0x93;;
+let _WASM_INS_F32_MUL = 0x94;;
+let _WASM_INS_F32_DIV = 0x95;;
+let _WASM_INS_F32_MIN = 0x96;;
+let _WASM_INS_F32_MAX = 0x97;;
+let _WASM_INS_F32_COPYSIGN = 0x98;;
+let _WASM_INS_F64_ABS = 0x99;;
+let _WASM_INS_F64_NEG = 0x9a;;
+let _WASM_INS_F64_CEIL = 0x9b;;
+let _WASM_INS_F64_FLOOR = 0x9c;;
+let _WASM_INS_F64_TRUNC = 0x9d;;
+let _WASM_INS_F64_NEAREST = 0x9e;;
+let _WASM_INS_F64_SQRT = 0x9f;;
+let _WASM_INS_F64_ADD = 0xa0;;
+let _WASM_INS_F64_SUB = 0xa1;;
+let _WASM_INS_F64_MUL = 0xa2;;
+let _WASM_INS_F64_DIV = 0xa3;;
+let _WASM_INS_F64_MIN = 0xa4;;
+let _WASM_INS_F64_MAX = 0xa5;;
+let _WASM_INS_F64_COPYSIGN = 0xa6;;
+let _WASM_INS_I32_WARP_I64 = 0xa7;;
+let _WASM_INS_I32_TRUNC_U_F32 = 0xa9;;
+let _WASM_INS_I32_TRUNC_S_F64 = 0xaa;;
+let _WASM_INS_I32_TRUNC_U_F64 = 0xab;;
+let _WASM_INS_I64_EXTEND_S_I32 = 0xac;;
+let _WASM_INS_I64_EXTEND_U_I32 = 0xad;;
+let _WASM_INS_I64_TRUNC_S_F32 = 0xae;;
+let _WASM_INS_I64_TRUNC_U_F32 = 0xaf;;
+let _WASM_INS_I64_TRUNC_S_F64 = 0xb0;;
+let _WASM_INS_I64_TRUNC_U_F64 = 0xb1;;
+let _WASM_INS_F32_CONVERT_S_I32 = 0xb2;;
+let _WASM_INS_F32_CONVERT_U_I32 = 0xb3;;
+let _WASM_INS_F32_CONVERT_S_I64 = 0xb4;;
+let _WASM_INS_F32_CONVERT_U_I64 = 0xb5;;
+let _WASM_INS_F32_DEMOTE_F64 = 0xb6;;
+let _WASM_INS_F64_CONVERT_S_I32 = 0xb7;;
+let _WASM_INS_F64_CONVERT_U_I32 = 0xb8;;
+let _WASM_INS_F64_CONVERT_S_I64 = 0xb9;;
+let _WASM_INS_F64_CONVERT_U_I64 = 0xba;;
+let _WASM_INS_F64_PROMOTE_F32 = 0xbb;;
+let _WASM_INS_I32_REINTERPRET_F32 = 0xbc;;
+let _WASM_INS_I64_REINTERPRET_F64 = 0xbd;;
+let _WASM_INS_F32_REINTERPRET_I32 = 0xbe;;
+let _WASM_INS_F64_REINTERPRET_I64 = 0xbf;;
+let _WASM_INS_INVALID = 512;;
+let _WASM_INS_ENDING = 513;;
+
+let _WASM_GRP_INVALID = 0;;
+let _WASM_GRP_NUMBERIC = 8;;
+let _WASM_GRP_PARAMETRIC = 9;;
+let _WASM_GRP_VARIABLE = 10;;
+let _WASM_GRP_MEMORY = 11;;
+let _WASM_GRP_CONTROL = 12;;
+let _WASM_GRP_ENDING = 13;;
diff --git a/capstone/bindings/ocaml/x86.ml b/capstone/bindings/ocaml/x86.ml
new file mode 100644
index 000000000..9e97794cf
--- /dev/null
+++ b/capstone/bindings/ocaml/x86.ml
@@ -0,0 +1,47 @@
+(* Capstone Disassembly Engine
+ * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 *)
+
+open X86_const
+
+(* architecture specific info of instruction *)
+type x86_op_mem = {
+ segment: int;
+ base: int;
+ index: int;
+ scale: int;
+ disp: int;
+}
+
+type x86_op_value =
+ | X86_OP_INVALID of int
+ | X86_OP_REG of int
+ | X86_OP_IMM of int
+ | X86_OP_MEM of x86_op_mem
+
+type x86_op = {
+ value: x86_op_value;
+ size: int;
+ access: int;
+ avx_bcast: int;
+ avx_zero_opmask: int;
+}
+
+type cs_x86 = {
+ prefix: int array;
+ opcode: int array;
+ rex: int;
+ addr_size: int;
+ modrm: int;
+ sib: int;
+ disp: int;
+ sib_index: int;
+ sib_scale: int;
+ sib_base: int;
+ xop_cc: int;
+ sse_cc: int;
+ avx_cc: int;
+ avx_sae: int;
+ avx_rm: int;
+ eflags: int;
+ operands: x86_op array;
+}
diff --git a/capstone/bindings/ocaml/x86_const.ml b/capstone/bindings/ocaml/x86_const.ml
new file mode 100644
index 000000000..bfd7b99cb
--- /dev/null
+++ b/capstone/bindings/ocaml/x86_const.ml
@@ -0,0 +1,1989 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [x86_const.ml] *)
+
+let _X86_REG_INVALID = 0;;
+let _X86_REG_AH = 1;;
+let _X86_REG_AL = 2;;
+let _X86_REG_AX = 3;;
+let _X86_REG_BH = 4;;
+let _X86_REG_BL = 5;;
+let _X86_REG_BP = 6;;
+let _X86_REG_BPL = 7;;
+let _X86_REG_BX = 8;;
+let _X86_REG_CH = 9;;
+let _X86_REG_CL = 10;;
+let _X86_REG_CS = 11;;
+let _X86_REG_CX = 12;;
+let _X86_REG_DH = 13;;
+let _X86_REG_DI = 14;;
+let _X86_REG_DIL = 15;;
+let _X86_REG_DL = 16;;
+let _X86_REG_DS = 17;;
+let _X86_REG_DX = 18;;
+let _X86_REG_EAX = 19;;
+let _X86_REG_EBP = 20;;
+let _X86_REG_EBX = 21;;
+let _X86_REG_ECX = 22;;
+let _X86_REG_EDI = 23;;
+let _X86_REG_EDX = 24;;
+let _X86_REG_EFLAGS = 25;;
+let _X86_REG_EIP = 26;;
+let _X86_REG_EIZ = 27;;
+let _X86_REG_ES = 28;;
+let _X86_REG_ESI = 29;;
+let _X86_REG_ESP = 30;;
+let _X86_REG_FPSW = 31;;
+let _X86_REG_FS = 32;;
+let _X86_REG_GS = 33;;
+let _X86_REG_IP = 34;;
+let _X86_REG_RAX = 35;;
+let _X86_REG_RBP = 36;;
+let _X86_REG_RBX = 37;;
+let _X86_REG_RCX = 38;;
+let _X86_REG_RDI = 39;;
+let _X86_REG_RDX = 40;;
+let _X86_REG_RIP = 41;;
+let _X86_REG_RIZ = 42;;
+let _X86_REG_RSI = 43;;
+let _X86_REG_RSP = 44;;
+let _X86_REG_SI = 45;;
+let _X86_REG_SIL = 46;;
+let _X86_REG_SP = 47;;
+let _X86_REG_SPL = 48;;
+let _X86_REG_SS = 49;;
+let _X86_REG_CR0 = 50;;
+let _X86_REG_CR1 = 51;;
+let _X86_REG_CR2 = 52;;
+let _X86_REG_CR3 = 53;;
+let _X86_REG_CR4 = 54;;
+let _X86_REG_CR5 = 55;;
+let _X86_REG_CR6 = 56;;
+let _X86_REG_CR7 = 57;;
+let _X86_REG_CR8 = 58;;
+let _X86_REG_CR9 = 59;;
+let _X86_REG_CR10 = 60;;
+let _X86_REG_CR11 = 61;;
+let _X86_REG_CR12 = 62;;
+let _X86_REG_CR13 = 63;;
+let _X86_REG_CR14 = 64;;
+let _X86_REG_CR15 = 65;;
+let _X86_REG_DR0 = 66;;
+let _X86_REG_DR1 = 67;;
+let _X86_REG_DR2 = 68;;
+let _X86_REG_DR3 = 69;;
+let _X86_REG_DR4 = 70;;
+let _X86_REG_DR5 = 71;;
+let _X86_REG_DR6 = 72;;
+let _X86_REG_DR7 = 73;;
+let _X86_REG_DR8 = 74;;
+let _X86_REG_DR9 = 75;;
+let _X86_REG_DR10 = 76;;
+let _X86_REG_DR11 = 77;;
+let _X86_REG_DR12 = 78;;
+let _X86_REG_DR13 = 79;;
+let _X86_REG_DR14 = 80;;
+let _X86_REG_DR15 = 81;;
+let _X86_REG_FP0 = 82;;
+let _X86_REG_FP1 = 83;;
+let _X86_REG_FP2 = 84;;
+let _X86_REG_FP3 = 85;;
+let _X86_REG_FP4 = 86;;
+let _X86_REG_FP5 = 87;;
+let _X86_REG_FP6 = 88;;
+let _X86_REG_FP7 = 89;;
+let _X86_REG_K0 = 90;;
+let _X86_REG_K1 = 91;;
+let _X86_REG_K2 = 92;;
+let _X86_REG_K3 = 93;;
+let _X86_REG_K4 = 94;;
+let _X86_REG_K5 = 95;;
+let _X86_REG_K6 = 96;;
+let _X86_REG_K7 = 97;;
+let _X86_REG_MM0 = 98;;
+let _X86_REG_MM1 = 99;;
+let _X86_REG_MM2 = 100;;
+let _X86_REG_MM3 = 101;;
+let _X86_REG_MM4 = 102;;
+let _X86_REG_MM5 = 103;;
+let _X86_REG_MM6 = 104;;
+let _X86_REG_MM7 = 105;;
+let _X86_REG_R8 = 106;;
+let _X86_REG_R9 = 107;;
+let _X86_REG_R10 = 108;;
+let _X86_REG_R11 = 109;;
+let _X86_REG_R12 = 110;;
+let _X86_REG_R13 = 111;;
+let _X86_REG_R14 = 112;;
+let _X86_REG_R15 = 113;;
+let _X86_REG_ST0 = 114;;
+let _X86_REG_ST1 = 115;;
+let _X86_REG_ST2 = 116;;
+let _X86_REG_ST3 = 117;;
+let _X86_REG_ST4 = 118;;
+let _X86_REG_ST5 = 119;;
+let _X86_REG_ST6 = 120;;
+let _X86_REG_ST7 = 121;;
+let _X86_REG_XMM0 = 122;;
+let _X86_REG_XMM1 = 123;;
+let _X86_REG_XMM2 = 124;;
+let _X86_REG_XMM3 = 125;;
+let _X86_REG_XMM4 = 126;;
+let _X86_REG_XMM5 = 127;;
+let _X86_REG_XMM6 = 128;;
+let _X86_REG_XMM7 = 129;;
+let _X86_REG_XMM8 = 130;;
+let _X86_REG_XMM9 = 131;;
+let _X86_REG_XMM10 = 132;;
+let _X86_REG_XMM11 = 133;;
+let _X86_REG_XMM12 = 134;;
+let _X86_REG_XMM13 = 135;;
+let _X86_REG_XMM14 = 136;;
+let _X86_REG_XMM15 = 137;;
+let _X86_REG_XMM16 = 138;;
+let _X86_REG_XMM17 = 139;;
+let _X86_REG_XMM18 = 140;;
+let _X86_REG_XMM19 = 141;;
+let _X86_REG_XMM20 = 142;;
+let _X86_REG_XMM21 = 143;;
+let _X86_REG_XMM22 = 144;;
+let _X86_REG_XMM23 = 145;;
+let _X86_REG_XMM24 = 146;;
+let _X86_REG_XMM25 = 147;;
+let _X86_REG_XMM26 = 148;;
+let _X86_REG_XMM27 = 149;;
+let _X86_REG_XMM28 = 150;;
+let _X86_REG_XMM29 = 151;;
+let _X86_REG_XMM30 = 152;;
+let _X86_REG_XMM31 = 153;;
+let _X86_REG_YMM0 = 154;;
+let _X86_REG_YMM1 = 155;;
+let _X86_REG_YMM2 = 156;;
+let _X86_REG_YMM3 = 157;;
+let _X86_REG_YMM4 = 158;;
+let _X86_REG_YMM5 = 159;;
+let _X86_REG_YMM6 = 160;;
+let _X86_REG_YMM7 = 161;;
+let _X86_REG_YMM8 = 162;;
+let _X86_REG_YMM9 = 163;;
+let _X86_REG_YMM10 = 164;;
+let _X86_REG_YMM11 = 165;;
+let _X86_REG_YMM12 = 166;;
+let _X86_REG_YMM13 = 167;;
+let _X86_REG_YMM14 = 168;;
+let _X86_REG_YMM15 = 169;;
+let _X86_REG_YMM16 = 170;;
+let _X86_REG_YMM17 = 171;;
+let _X86_REG_YMM18 = 172;;
+let _X86_REG_YMM19 = 173;;
+let _X86_REG_YMM20 = 174;;
+let _X86_REG_YMM21 = 175;;
+let _X86_REG_YMM22 = 176;;
+let _X86_REG_YMM23 = 177;;
+let _X86_REG_YMM24 = 178;;
+let _X86_REG_YMM25 = 179;;
+let _X86_REG_YMM26 = 180;;
+let _X86_REG_YMM27 = 181;;
+let _X86_REG_YMM28 = 182;;
+let _X86_REG_YMM29 = 183;;
+let _X86_REG_YMM30 = 184;;
+let _X86_REG_YMM31 = 185;;
+let _X86_REG_ZMM0 = 186;;
+let _X86_REG_ZMM1 = 187;;
+let _X86_REG_ZMM2 = 188;;
+let _X86_REG_ZMM3 = 189;;
+let _X86_REG_ZMM4 = 190;;
+let _X86_REG_ZMM5 = 191;;
+let _X86_REG_ZMM6 = 192;;
+let _X86_REG_ZMM7 = 193;;
+let _X86_REG_ZMM8 = 194;;
+let _X86_REG_ZMM9 = 195;;
+let _X86_REG_ZMM10 = 196;;
+let _X86_REG_ZMM11 = 197;;
+let _X86_REG_ZMM12 = 198;;
+let _X86_REG_ZMM13 = 199;;
+let _X86_REG_ZMM14 = 200;;
+let _X86_REG_ZMM15 = 201;;
+let _X86_REG_ZMM16 = 202;;
+let _X86_REG_ZMM17 = 203;;
+let _X86_REG_ZMM18 = 204;;
+let _X86_REG_ZMM19 = 205;;
+let _X86_REG_ZMM20 = 206;;
+let _X86_REG_ZMM21 = 207;;
+let _X86_REG_ZMM22 = 208;;
+let _X86_REG_ZMM23 = 209;;
+let _X86_REG_ZMM24 = 210;;
+let _X86_REG_ZMM25 = 211;;
+let _X86_REG_ZMM26 = 212;;
+let _X86_REG_ZMM27 = 213;;
+let _X86_REG_ZMM28 = 214;;
+let _X86_REG_ZMM29 = 215;;
+let _X86_REG_ZMM30 = 216;;
+let _X86_REG_ZMM31 = 217;;
+let _X86_REG_R8B = 218;;
+let _X86_REG_R9B = 219;;
+let _X86_REG_R10B = 220;;
+let _X86_REG_R11B = 221;;
+let _X86_REG_R12B = 222;;
+let _X86_REG_R13B = 223;;
+let _X86_REG_R14B = 224;;
+let _X86_REG_R15B = 225;;
+let _X86_REG_R8D = 226;;
+let _X86_REG_R9D = 227;;
+let _X86_REG_R10D = 228;;
+let _X86_REG_R11D = 229;;
+let _X86_REG_R12D = 230;;
+let _X86_REG_R13D = 231;;
+let _X86_REG_R14D = 232;;
+let _X86_REG_R15D = 233;;
+let _X86_REG_R8W = 234;;
+let _X86_REG_R9W = 235;;
+let _X86_REG_R10W = 236;;
+let _X86_REG_R11W = 237;;
+let _X86_REG_R12W = 238;;
+let _X86_REG_R13W = 239;;
+let _X86_REG_R14W = 240;;
+let _X86_REG_R15W = 241;;
+let _X86_REG_BND0 = 242;;
+let _X86_REG_BND1 = 243;;
+let _X86_REG_BND2 = 244;;
+let _X86_REG_BND3 = 245;;
+let _X86_REG_ENDING = 246;;
+let _X86_EFLAGS_MODIFY_AF = 1 lsl 0;;
+let _X86_EFLAGS_MODIFY_CF = 1 lsl 1;;
+let _X86_EFLAGS_MODIFY_SF = 1 lsl 2;;
+let _X86_EFLAGS_MODIFY_ZF = 1 lsl 3;;
+let _X86_EFLAGS_MODIFY_PF = 1 lsl 4;;
+let _X86_EFLAGS_MODIFY_OF = 1 lsl 5;;
+let _X86_EFLAGS_MODIFY_TF = 1 lsl 6;;
+let _X86_EFLAGS_MODIFY_IF = 1 lsl 7;;
+let _X86_EFLAGS_MODIFY_DF = 1 lsl 8;;
+let _X86_EFLAGS_MODIFY_NT = 1 lsl 9;;
+let _X86_EFLAGS_MODIFY_RF = 1 lsl 10;;
+let _X86_EFLAGS_PRIOR_OF = 1 lsl 11;;
+let _X86_EFLAGS_PRIOR_SF = 1 lsl 12;;
+let _X86_EFLAGS_PRIOR_ZF = 1 lsl 13;;
+let _X86_EFLAGS_PRIOR_AF = 1 lsl 14;;
+let _X86_EFLAGS_PRIOR_PF = 1 lsl 15;;
+let _X86_EFLAGS_PRIOR_CF = 1 lsl 16;;
+let _X86_EFLAGS_PRIOR_TF = 1 lsl 17;;
+let _X86_EFLAGS_PRIOR_IF = 1 lsl 18;;
+let _X86_EFLAGS_PRIOR_DF = 1 lsl 19;;
+let _X86_EFLAGS_PRIOR_NT = 1 lsl 20;;
+let _X86_EFLAGS_RESET_OF = 1 lsl 21;;
+let _X86_EFLAGS_RESET_CF = 1 lsl 22;;
+let _X86_EFLAGS_RESET_DF = 1 lsl 23;;
+let _X86_EFLAGS_RESET_IF = 1 lsl 24;;
+let _X86_EFLAGS_RESET_SF = 1 lsl 25;;
+let _X86_EFLAGS_RESET_AF = 1 lsl 26;;
+let _X86_EFLAGS_RESET_TF = 1 lsl 27;;
+let _X86_EFLAGS_RESET_NT = 1 lsl 28;;
+let _X86_EFLAGS_RESET_PF = 1 lsl 29;;
+let _X86_EFLAGS_SET_CF = 1 lsl 30;;
+let _X86_EFLAGS_SET_DF = 1 lsl 31;;
+let _X86_EFLAGS_SET_IF = 1 lsl 32;;
+let _X86_EFLAGS_TEST_OF = 1 lsl 33;;
+let _X86_EFLAGS_TEST_SF = 1 lsl 34;;
+let _X86_EFLAGS_TEST_ZF = 1 lsl 35;;
+let _X86_EFLAGS_TEST_PF = 1 lsl 36;;
+let _X86_EFLAGS_TEST_CF = 1 lsl 37;;
+let _X86_EFLAGS_TEST_NT = 1 lsl 38;;
+let _X86_EFLAGS_TEST_DF = 1 lsl 39;;
+let _X86_EFLAGS_UNDEFINED_OF = 1 lsl 40;;
+let _X86_EFLAGS_UNDEFINED_SF = 1 lsl 41;;
+let _X86_EFLAGS_UNDEFINED_ZF = 1 lsl 42;;
+let _X86_EFLAGS_UNDEFINED_PF = 1 lsl 43;;
+let _X86_EFLAGS_UNDEFINED_AF = 1 lsl 44;;
+let _X86_EFLAGS_UNDEFINED_CF = 1 lsl 45;;
+let _X86_EFLAGS_RESET_RF = 1 lsl 46;;
+let _X86_EFLAGS_TEST_RF = 1 lsl 47;;
+let _X86_EFLAGS_TEST_IF = 1 lsl 48;;
+let _X86_EFLAGS_TEST_TF = 1 lsl 49;;
+let _X86_EFLAGS_TEST_AF = 1 lsl 50;;
+let _X86_EFLAGS_RESET_ZF = 1 lsl 51;;
+let _X86_EFLAGS_SET_OF = 1 lsl 52;;
+let _X86_EFLAGS_SET_SF = 1 lsl 53;;
+let _X86_EFLAGS_SET_ZF = 1 lsl 54;;
+let _X86_EFLAGS_SET_AF = 1 lsl 55;;
+let _X86_EFLAGS_SET_PF = 1 lsl 56;;
+let _X86_EFLAGS_RESET_0F = 1 lsl 57;;
+let _X86_EFLAGS_RESET_AC = 1 lsl 58;;
+let _X86_FPU_FLAGS_MODIFY_C0 = 1 lsl 0;;
+let _X86_FPU_FLAGS_MODIFY_C1 = 1 lsl 1;;
+let _X86_FPU_FLAGS_MODIFY_C2 = 1 lsl 2;;
+let _X86_FPU_FLAGS_MODIFY_C3 = 1 lsl 3;;
+let _X86_FPU_FLAGS_RESET_C0 = 1 lsl 4;;
+let _X86_FPU_FLAGS_RESET_C1 = 1 lsl 5;;
+let _X86_FPU_FLAGS_RESET_C2 = 1 lsl 6;;
+let _X86_FPU_FLAGS_RESET_C3 = 1 lsl 7;;
+let _X86_FPU_FLAGS_SET_C0 = 1 lsl 8;;
+let _X86_FPU_FLAGS_SET_C1 = 1 lsl 9;;
+let _X86_FPU_FLAGS_SET_C2 = 1 lsl 10;;
+let _X86_FPU_FLAGS_SET_C3 = 1 lsl 11;;
+let _X86_FPU_FLAGS_UNDEFINED_C0 = 1 lsl 12;;
+let _X86_FPU_FLAGS_UNDEFINED_C1 = 1 lsl 13;;
+let _X86_FPU_FLAGS_UNDEFINED_C2 = 1 lsl 14;;
+let _X86_FPU_FLAGS_UNDEFINED_C3 = 1 lsl 15;;
+let _X86_FPU_FLAGS_TEST_C0 = 1 lsl 16;;
+let _X86_FPU_FLAGS_TEST_C1 = 1 lsl 17;;
+let _X86_FPU_FLAGS_TEST_C2 = 1 lsl 18;;
+let _X86_FPU_FLAGS_TEST_C3 = 1 lsl 19;;
+
+let _X86_OP_INVALID = 0;;
+let _X86_OP_REG = 1;;
+let _X86_OP_IMM = 2;;
+let _X86_OP_MEM = 3;;
+
+let _X86_XOP_CC_INVALID = 0;;
+let _X86_XOP_CC_LT = 1;;
+let _X86_XOP_CC_LE = 2;;
+let _X86_XOP_CC_GT = 3;;
+let _X86_XOP_CC_GE = 4;;
+let _X86_XOP_CC_EQ = 5;;
+let _X86_XOP_CC_NEQ = 6;;
+let _X86_XOP_CC_FALSE = 7;;
+let _X86_XOP_CC_TRUE = 8;;
+
+let _X86_AVX_BCAST_INVALID = 0;;
+let _X86_AVX_BCAST_2 = 1;;
+let _X86_AVX_BCAST_4 = 2;;
+let _X86_AVX_BCAST_8 = 3;;
+let _X86_AVX_BCAST_16 = 4;;
+
+let _X86_SSE_CC_INVALID = 0;;
+let _X86_SSE_CC_EQ = 1;;
+let _X86_SSE_CC_LT = 2;;
+let _X86_SSE_CC_LE = 3;;
+let _X86_SSE_CC_UNORD = 4;;
+let _X86_SSE_CC_NEQ = 5;;
+let _X86_SSE_CC_NLT = 6;;
+let _X86_SSE_CC_NLE = 7;;
+let _X86_SSE_CC_ORD = 8;;
+
+let _X86_AVX_CC_INVALID = 0;;
+let _X86_AVX_CC_EQ = 1;;
+let _X86_AVX_CC_LT = 2;;
+let _X86_AVX_CC_LE = 3;;
+let _X86_AVX_CC_UNORD = 4;;
+let _X86_AVX_CC_NEQ = 5;;
+let _X86_AVX_CC_NLT = 6;;
+let _X86_AVX_CC_NLE = 7;;
+let _X86_AVX_CC_ORD = 8;;
+let _X86_AVX_CC_EQ_UQ = 9;;
+let _X86_AVX_CC_NGE = 10;;
+let _X86_AVX_CC_NGT = 11;;
+let _X86_AVX_CC_FALSE = 12;;
+let _X86_AVX_CC_NEQ_OQ = 13;;
+let _X86_AVX_CC_GE = 14;;
+let _X86_AVX_CC_GT = 15;;
+let _X86_AVX_CC_TRUE = 16;;
+let _X86_AVX_CC_EQ_OS = 17;;
+let _X86_AVX_CC_LT_OQ = 18;;
+let _X86_AVX_CC_LE_OQ = 19;;
+let _X86_AVX_CC_UNORD_S = 20;;
+let _X86_AVX_CC_NEQ_US = 21;;
+let _X86_AVX_CC_NLT_UQ = 22;;
+let _X86_AVX_CC_NLE_UQ = 23;;
+let _X86_AVX_CC_ORD_S = 24;;
+let _X86_AVX_CC_EQ_US = 25;;
+let _X86_AVX_CC_NGE_UQ = 26;;
+let _X86_AVX_CC_NGT_UQ = 27;;
+let _X86_AVX_CC_FALSE_OS = 28;;
+let _X86_AVX_CC_NEQ_OS = 29;;
+let _X86_AVX_CC_GE_OQ = 30;;
+let _X86_AVX_CC_GT_OQ = 31;;
+let _X86_AVX_CC_TRUE_US = 32;;
+
+let _X86_AVX_RM_INVALID = 0;;
+let _X86_AVX_RM_RN = 1;;
+let _X86_AVX_RM_RD = 2;;
+let _X86_AVX_RM_RU = 3;;
+let _X86_AVX_RM_RZ = 4;;
+let _X86_PREFIX_LOCK = 0xf0;;
+let _X86_PREFIX_REP = 0xf3;;
+let _X86_PREFIX_REPE = 0xf3;;
+let _X86_PREFIX_REPNE = 0xf2;;
+let _X86_PREFIX_CS = 0x2e;;
+let _X86_PREFIX_SS = 0x36;;
+let _X86_PREFIX_DS = 0x3e;;
+let _X86_PREFIX_ES = 0x26;;
+let _X86_PREFIX_FS = 0x64;;
+let _X86_PREFIX_GS = 0x65;;
+let _X86_PREFIX_OPSIZE = 0x66;;
+let _X86_PREFIX_ADDRSIZE = 0x67;;
+
+let _X86_INS_INVALID = 0;;
+let _X86_INS_AAA = 1;;
+let _X86_INS_AAD = 2;;
+let _X86_INS_AAM = 3;;
+let _X86_INS_AAS = 4;;
+let _X86_INS_FABS = 5;;
+let _X86_INS_ADC = 6;;
+let _X86_INS_ADCX = 7;;
+let _X86_INS_ADD = 8;;
+let _X86_INS_ADDPD = 9;;
+let _X86_INS_ADDPS = 10;;
+let _X86_INS_ADDSD = 11;;
+let _X86_INS_ADDSS = 12;;
+let _X86_INS_ADDSUBPD = 13;;
+let _X86_INS_ADDSUBPS = 14;;
+let _X86_INS_FADD = 15;;
+let _X86_INS_FIADD = 16;;
+let _X86_INS_ADOX = 17;;
+let _X86_INS_AESDECLAST = 18;;
+let _X86_INS_AESDEC = 19;;
+let _X86_INS_AESENCLAST = 20;;
+let _X86_INS_AESENC = 21;;
+let _X86_INS_AESIMC = 22;;
+let _X86_INS_AESKEYGENASSIST = 23;;
+let _X86_INS_AND = 24;;
+let _X86_INS_ANDN = 25;;
+let _X86_INS_ANDNPD = 26;;
+let _X86_INS_ANDNPS = 27;;
+let _X86_INS_ANDPD = 28;;
+let _X86_INS_ANDPS = 29;;
+let _X86_INS_ARPL = 30;;
+let _X86_INS_BEXTR = 31;;
+let _X86_INS_BLCFILL = 32;;
+let _X86_INS_BLCI = 33;;
+let _X86_INS_BLCIC = 34;;
+let _X86_INS_BLCMSK = 35;;
+let _X86_INS_BLCS = 36;;
+let _X86_INS_BLENDPD = 37;;
+let _X86_INS_BLENDPS = 38;;
+let _X86_INS_BLENDVPD = 39;;
+let _X86_INS_BLENDVPS = 40;;
+let _X86_INS_BLSFILL = 41;;
+let _X86_INS_BLSI = 42;;
+let _X86_INS_BLSIC = 43;;
+let _X86_INS_BLSMSK = 44;;
+let _X86_INS_BLSR = 45;;
+let _X86_INS_BNDCL = 46;;
+let _X86_INS_BNDCN = 47;;
+let _X86_INS_BNDCU = 48;;
+let _X86_INS_BNDLDX = 49;;
+let _X86_INS_BNDMK = 50;;
+let _X86_INS_BNDMOV = 51;;
+let _X86_INS_BNDSTX = 52;;
+let _X86_INS_BOUND = 53;;
+let _X86_INS_BSF = 54;;
+let _X86_INS_BSR = 55;;
+let _X86_INS_BSWAP = 56;;
+let _X86_INS_BT = 57;;
+let _X86_INS_BTC = 58;;
+let _X86_INS_BTR = 59;;
+let _X86_INS_BTS = 60;;
+let _X86_INS_BZHI = 61;;
+let _X86_INS_CALL = 62;;
+let _X86_INS_CBW = 63;;
+let _X86_INS_CDQ = 64;;
+let _X86_INS_CDQE = 65;;
+let _X86_INS_FCHS = 66;;
+let _X86_INS_CLAC = 67;;
+let _X86_INS_CLC = 68;;
+let _X86_INS_CLD = 69;;
+let _X86_INS_CLDEMOTE = 70;;
+let _X86_INS_CLFLUSH = 71;;
+let _X86_INS_CLFLUSHOPT = 72;;
+let _X86_INS_CLGI = 73;;
+let _X86_INS_CLI = 74;;
+let _X86_INS_CLRSSBSY = 75;;
+let _X86_INS_CLTS = 76;;
+let _X86_INS_CLWB = 77;;
+let _X86_INS_CLZERO = 78;;
+let _X86_INS_CMC = 79;;
+let _X86_INS_CMOVA = 80;;
+let _X86_INS_CMOVAE = 81;;
+let _X86_INS_CMOVB = 82;;
+let _X86_INS_CMOVBE = 83;;
+let _X86_INS_FCMOVBE = 84;;
+let _X86_INS_FCMOVB = 85;;
+let _X86_INS_CMOVE = 86;;
+let _X86_INS_FCMOVE = 87;;
+let _X86_INS_CMOVG = 88;;
+let _X86_INS_CMOVGE = 89;;
+let _X86_INS_CMOVL = 90;;
+let _X86_INS_CMOVLE = 91;;
+let _X86_INS_FCMOVNBE = 92;;
+let _X86_INS_FCMOVNB = 93;;
+let _X86_INS_CMOVNE = 94;;
+let _X86_INS_FCMOVNE = 95;;
+let _X86_INS_CMOVNO = 96;;
+let _X86_INS_CMOVNP = 97;;
+let _X86_INS_FCMOVNU = 98;;
+let _X86_INS_FCMOVNP = 99;;
+let _X86_INS_CMOVNS = 100;;
+let _X86_INS_CMOVO = 101;;
+let _X86_INS_CMOVP = 102;;
+let _X86_INS_FCMOVU = 103;;
+let _X86_INS_CMOVS = 104;;
+let _X86_INS_CMP = 105;;
+let _X86_INS_CMPPD = 106;;
+let _X86_INS_CMPPS = 107;;
+let _X86_INS_CMPSB = 108;;
+let _X86_INS_CMPSD = 109;;
+let _X86_INS_CMPSQ = 110;;
+let _X86_INS_CMPSS = 111;;
+let _X86_INS_CMPSW = 112;;
+let _X86_INS_CMPXCHG16B = 113;;
+let _X86_INS_CMPXCHG = 114;;
+let _X86_INS_CMPXCHG8B = 115;;
+let _X86_INS_COMISD = 116;;
+let _X86_INS_COMISS = 117;;
+let _X86_INS_FCOMP = 118;;
+let _X86_INS_FCOMPI = 119;;
+let _X86_INS_FCOMI = 120;;
+let _X86_INS_FCOM = 121;;
+let _X86_INS_FCOS = 122;;
+let _X86_INS_CPUID = 123;;
+let _X86_INS_CQO = 124;;
+let _X86_INS_CRC32 = 125;;
+let _X86_INS_CVTDQ2PD = 126;;
+let _X86_INS_CVTDQ2PS = 127;;
+let _X86_INS_CVTPD2DQ = 128;;
+let _X86_INS_CVTPD2PS = 129;;
+let _X86_INS_CVTPS2DQ = 130;;
+let _X86_INS_CVTPS2PD = 131;;
+let _X86_INS_CVTSD2SI = 132;;
+let _X86_INS_CVTSD2SS = 133;;
+let _X86_INS_CVTSI2SD = 134;;
+let _X86_INS_CVTSI2SS = 135;;
+let _X86_INS_CVTSS2SD = 136;;
+let _X86_INS_CVTSS2SI = 137;;
+let _X86_INS_CVTTPD2DQ = 138;;
+let _X86_INS_CVTTPS2DQ = 139;;
+let _X86_INS_CVTTSD2SI = 140;;
+let _X86_INS_CVTTSS2SI = 141;;
+let _X86_INS_CWD = 142;;
+let _X86_INS_CWDE = 143;;
+let _X86_INS_DAA = 144;;
+let _X86_INS_DAS = 145;;
+let _X86_INS_DATA16 = 146;;
+let _X86_INS_DEC = 147;;
+let _X86_INS_DIV = 148;;
+let _X86_INS_DIVPD = 149;;
+let _X86_INS_DIVPS = 150;;
+let _X86_INS_FDIVR = 151;;
+let _X86_INS_FIDIVR = 152;;
+let _X86_INS_FDIVRP = 153;;
+let _X86_INS_DIVSD = 154;;
+let _X86_INS_DIVSS = 155;;
+let _X86_INS_FDIV = 156;;
+let _X86_INS_FIDIV = 157;;
+let _X86_INS_FDIVP = 158;;
+let _X86_INS_DPPD = 159;;
+let _X86_INS_DPPS = 160;;
+let _X86_INS_ENCLS = 161;;
+let _X86_INS_ENCLU = 162;;
+let _X86_INS_ENCLV = 163;;
+let _X86_INS_ENDBR32 = 164;;
+let _X86_INS_ENDBR64 = 165;;
+let _X86_INS_ENTER = 166;;
+let _X86_INS_EXTRACTPS = 167;;
+let _X86_INS_EXTRQ = 168;;
+let _X86_INS_F2XM1 = 169;;
+let _X86_INS_LCALL = 170;;
+let _X86_INS_LJMP = 171;;
+let _X86_INS_JMP = 172;;
+let _X86_INS_FBLD = 173;;
+let _X86_INS_FBSTP = 174;;
+let _X86_INS_FCOMPP = 175;;
+let _X86_INS_FDECSTP = 176;;
+let _X86_INS_FDISI8087_NOP = 177;;
+let _X86_INS_FEMMS = 178;;
+let _X86_INS_FENI8087_NOP = 179;;
+let _X86_INS_FFREE = 180;;
+let _X86_INS_FFREEP = 181;;
+let _X86_INS_FICOM = 182;;
+let _X86_INS_FICOMP = 183;;
+let _X86_INS_FINCSTP = 184;;
+let _X86_INS_FLDCW = 185;;
+let _X86_INS_FLDENV = 186;;
+let _X86_INS_FLDL2E = 187;;
+let _X86_INS_FLDL2T = 188;;
+let _X86_INS_FLDLG2 = 189;;
+let _X86_INS_FLDLN2 = 190;;
+let _X86_INS_FLDPI = 191;;
+let _X86_INS_FNCLEX = 192;;
+let _X86_INS_FNINIT = 193;;
+let _X86_INS_FNOP = 194;;
+let _X86_INS_FNSTCW = 195;;
+let _X86_INS_FNSTSW = 196;;
+let _X86_INS_FPATAN = 197;;
+let _X86_INS_FSTPNCE = 198;;
+let _X86_INS_FPREM = 199;;
+let _X86_INS_FPREM1 = 200;;
+let _X86_INS_FPTAN = 201;;
+let _X86_INS_FRNDINT = 202;;
+let _X86_INS_FRSTOR = 203;;
+let _X86_INS_FNSAVE = 204;;
+let _X86_INS_FSCALE = 205;;
+let _X86_INS_FSETPM = 206;;
+let _X86_INS_FSINCOS = 207;;
+let _X86_INS_FNSTENV = 208;;
+let _X86_INS_FXAM = 209;;
+let _X86_INS_FXRSTOR = 210;;
+let _X86_INS_FXRSTOR64 = 211;;
+let _X86_INS_FXSAVE = 212;;
+let _X86_INS_FXSAVE64 = 213;;
+let _X86_INS_FXTRACT = 214;;
+let _X86_INS_FYL2X = 215;;
+let _X86_INS_FYL2XP1 = 216;;
+let _X86_INS_GETSEC = 217;;
+let _X86_INS_GF2P8AFFINEINVQB = 218;;
+let _X86_INS_GF2P8AFFINEQB = 219;;
+let _X86_INS_GF2P8MULB = 220;;
+let _X86_INS_HADDPD = 221;;
+let _X86_INS_HADDPS = 222;;
+let _X86_INS_HLT = 223;;
+let _X86_INS_HSUBPD = 224;;
+let _X86_INS_HSUBPS = 225;;
+let _X86_INS_IDIV = 226;;
+let _X86_INS_FILD = 227;;
+let _X86_INS_IMUL = 228;;
+let _X86_INS_IN = 229;;
+let _X86_INS_INC = 230;;
+let _X86_INS_INCSSPD = 231;;
+let _X86_INS_INCSSPQ = 232;;
+let _X86_INS_INSB = 233;;
+let _X86_INS_INSERTPS = 234;;
+let _X86_INS_INSERTQ = 235;;
+let _X86_INS_INSD = 236;;
+let _X86_INS_INSW = 237;;
+let _X86_INS_INT = 238;;
+let _X86_INS_INT1 = 239;;
+let _X86_INS_INT3 = 240;;
+let _X86_INS_INTO = 241;;
+let _X86_INS_INVD = 242;;
+let _X86_INS_INVEPT = 243;;
+let _X86_INS_INVLPG = 244;;
+let _X86_INS_INVLPGA = 245;;
+let _X86_INS_INVPCID = 246;;
+let _X86_INS_INVVPID = 247;;
+let _X86_INS_IRET = 248;;
+let _X86_INS_IRETD = 249;;
+let _X86_INS_IRETQ = 250;;
+let _X86_INS_FISTTP = 251;;
+let _X86_INS_FIST = 252;;
+let _X86_INS_FISTP = 253;;
+let _X86_INS_JAE = 254;;
+let _X86_INS_JA = 255;;
+let _X86_INS_JBE = 256;;
+let _X86_INS_JB = 257;;
+let _X86_INS_JCXZ = 258;;
+let _X86_INS_JECXZ = 259;;
+let _X86_INS_JE = 260;;
+let _X86_INS_JGE = 261;;
+let _X86_INS_JG = 262;;
+let _X86_INS_JLE = 263;;
+let _X86_INS_JL = 264;;
+let _X86_INS_JNE = 265;;
+let _X86_INS_JNO = 266;;
+let _X86_INS_JNP = 267;;
+let _X86_INS_JNS = 268;;
+let _X86_INS_JO = 269;;
+let _X86_INS_JP = 270;;
+let _X86_INS_JRCXZ = 271;;
+let _X86_INS_JS = 272;;
+let _X86_INS_KADDB = 273;;
+let _X86_INS_KADDD = 274;;
+let _X86_INS_KADDQ = 275;;
+let _X86_INS_KADDW = 276;;
+let _X86_INS_KANDB = 277;;
+let _X86_INS_KANDD = 278;;
+let _X86_INS_KANDNB = 279;;
+let _X86_INS_KANDND = 280;;
+let _X86_INS_KANDNQ = 281;;
+let _X86_INS_KANDNW = 282;;
+let _X86_INS_KANDQ = 283;;
+let _X86_INS_KANDW = 284;;
+let _X86_INS_KMOVB = 285;;
+let _X86_INS_KMOVD = 286;;
+let _X86_INS_KMOVQ = 287;;
+let _X86_INS_KMOVW = 288;;
+let _X86_INS_KNOTB = 289;;
+let _X86_INS_KNOTD = 290;;
+let _X86_INS_KNOTQ = 291;;
+let _X86_INS_KNOTW = 292;;
+let _X86_INS_KORB = 293;;
+let _X86_INS_KORD = 294;;
+let _X86_INS_KORQ = 295;;
+let _X86_INS_KORTESTB = 296;;
+let _X86_INS_KORTESTD = 297;;
+let _X86_INS_KORTESTQ = 298;;
+let _X86_INS_KORTESTW = 299;;
+let _X86_INS_KORW = 300;;
+let _X86_INS_KSHIFTLB = 301;;
+let _X86_INS_KSHIFTLD = 302;;
+let _X86_INS_KSHIFTLQ = 303;;
+let _X86_INS_KSHIFTLW = 304;;
+let _X86_INS_KSHIFTRB = 305;;
+let _X86_INS_KSHIFTRD = 306;;
+let _X86_INS_KSHIFTRQ = 307;;
+let _X86_INS_KSHIFTRW = 308;;
+let _X86_INS_KTESTB = 309;;
+let _X86_INS_KTESTD = 310;;
+let _X86_INS_KTESTQ = 311;;
+let _X86_INS_KTESTW = 312;;
+let _X86_INS_KUNPCKBW = 313;;
+let _X86_INS_KUNPCKDQ = 314;;
+let _X86_INS_KUNPCKWD = 315;;
+let _X86_INS_KXNORB = 316;;
+let _X86_INS_KXNORD = 317;;
+let _X86_INS_KXNORQ = 318;;
+let _X86_INS_KXNORW = 319;;
+let _X86_INS_KXORB = 320;;
+let _X86_INS_KXORD = 321;;
+let _X86_INS_KXORQ = 322;;
+let _X86_INS_KXORW = 323;;
+let _X86_INS_LAHF = 324;;
+let _X86_INS_LAR = 325;;
+let _X86_INS_LDDQU = 326;;
+let _X86_INS_LDMXCSR = 327;;
+let _X86_INS_LDS = 328;;
+let _X86_INS_FLDZ = 329;;
+let _X86_INS_FLD1 = 330;;
+let _X86_INS_FLD = 331;;
+let _X86_INS_LEA = 332;;
+let _X86_INS_LEAVE = 333;;
+let _X86_INS_LES = 334;;
+let _X86_INS_LFENCE = 335;;
+let _X86_INS_LFS = 336;;
+let _X86_INS_LGDT = 337;;
+let _X86_INS_LGS = 338;;
+let _X86_INS_LIDT = 339;;
+let _X86_INS_LLDT = 340;;
+let _X86_INS_LLWPCB = 341;;
+let _X86_INS_LMSW = 342;;
+let _X86_INS_LOCK = 343;;
+let _X86_INS_LODSB = 344;;
+let _X86_INS_LODSD = 345;;
+let _X86_INS_LODSQ = 346;;
+let _X86_INS_LODSW = 347;;
+let _X86_INS_LOOP = 348;;
+let _X86_INS_LOOPE = 349;;
+let _X86_INS_LOOPNE = 350;;
+let _X86_INS_RETF = 351;;
+let _X86_INS_RETFQ = 352;;
+let _X86_INS_LSL = 353;;
+let _X86_INS_LSS = 354;;
+let _X86_INS_LTR = 355;;
+let _X86_INS_LWPINS = 356;;
+let _X86_INS_LWPVAL = 357;;
+let _X86_INS_LZCNT = 358;;
+let _X86_INS_MASKMOVDQU = 359;;
+let _X86_INS_MAXPD = 360;;
+let _X86_INS_MAXPS = 361;;
+let _X86_INS_MAXSD = 362;;
+let _X86_INS_MAXSS = 363;;
+let _X86_INS_MFENCE = 364;;
+let _X86_INS_MINPD = 365;;
+let _X86_INS_MINPS = 366;;
+let _X86_INS_MINSD = 367;;
+let _X86_INS_MINSS = 368;;
+let _X86_INS_CVTPD2PI = 369;;
+let _X86_INS_CVTPI2PD = 370;;
+let _X86_INS_CVTPI2PS = 371;;
+let _X86_INS_CVTPS2PI = 372;;
+let _X86_INS_CVTTPD2PI = 373;;
+let _X86_INS_CVTTPS2PI = 374;;
+let _X86_INS_EMMS = 375;;
+let _X86_INS_MASKMOVQ = 376;;
+let _X86_INS_MOVD = 377;;
+let _X86_INS_MOVQ = 378;;
+let _X86_INS_MOVDQ2Q = 379;;
+let _X86_INS_MOVNTQ = 380;;
+let _X86_INS_MOVQ2DQ = 381;;
+let _X86_INS_PABSB = 382;;
+let _X86_INS_PABSD = 383;;
+let _X86_INS_PABSW = 384;;
+let _X86_INS_PACKSSDW = 385;;
+let _X86_INS_PACKSSWB = 386;;
+let _X86_INS_PACKUSWB = 387;;
+let _X86_INS_PADDB = 388;;
+let _X86_INS_PADDD = 389;;
+let _X86_INS_PADDQ = 390;;
+let _X86_INS_PADDSB = 391;;
+let _X86_INS_PADDSW = 392;;
+let _X86_INS_PADDUSB = 393;;
+let _X86_INS_PADDUSW = 394;;
+let _X86_INS_PADDW = 395;;
+let _X86_INS_PALIGNR = 396;;
+let _X86_INS_PANDN = 397;;
+let _X86_INS_PAND = 398;;
+let _X86_INS_PAVGB = 399;;
+let _X86_INS_PAVGW = 400;;
+let _X86_INS_PCMPEQB = 401;;
+let _X86_INS_PCMPEQD = 402;;
+let _X86_INS_PCMPEQW = 403;;
+let _X86_INS_PCMPGTB = 404;;
+let _X86_INS_PCMPGTD = 405;;
+let _X86_INS_PCMPGTW = 406;;
+let _X86_INS_PEXTRW = 407;;
+let _X86_INS_PHADDD = 408;;
+let _X86_INS_PHADDSW = 409;;
+let _X86_INS_PHADDW = 410;;
+let _X86_INS_PHSUBD = 411;;
+let _X86_INS_PHSUBSW = 412;;
+let _X86_INS_PHSUBW = 413;;
+let _X86_INS_PINSRW = 414;;
+let _X86_INS_PMADDUBSW = 415;;
+let _X86_INS_PMADDWD = 416;;
+let _X86_INS_PMAXSW = 417;;
+let _X86_INS_PMAXUB = 418;;
+let _X86_INS_PMINSW = 419;;
+let _X86_INS_PMINUB = 420;;
+let _X86_INS_PMOVMSKB = 421;;
+let _X86_INS_PMULHRSW = 422;;
+let _X86_INS_PMULHUW = 423;;
+let _X86_INS_PMULHW = 424;;
+let _X86_INS_PMULLW = 425;;
+let _X86_INS_PMULUDQ = 426;;
+let _X86_INS_POR = 427;;
+let _X86_INS_PSADBW = 428;;
+let _X86_INS_PSHUFB = 429;;
+let _X86_INS_PSHUFW = 430;;
+let _X86_INS_PSIGNB = 431;;
+let _X86_INS_PSIGND = 432;;
+let _X86_INS_PSIGNW = 433;;
+let _X86_INS_PSLLD = 434;;
+let _X86_INS_PSLLQ = 435;;
+let _X86_INS_PSLLW = 436;;
+let _X86_INS_PSRAD = 437;;
+let _X86_INS_PSRAW = 438;;
+let _X86_INS_PSRLD = 439;;
+let _X86_INS_PSRLQ = 440;;
+let _X86_INS_PSRLW = 441;;
+let _X86_INS_PSUBB = 442;;
+let _X86_INS_PSUBD = 443;;
+let _X86_INS_PSUBQ = 444;;
+let _X86_INS_PSUBSB = 445;;
+let _X86_INS_PSUBSW = 446;;
+let _X86_INS_PSUBUSB = 447;;
+let _X86_INS_PSUBUSW = 448;;
+let _X86_INS_PSUBW = 449;;
+let _X86_INS_PUNPCKHBW = 450;;
+let _X86_INS_PUNPCKHDQ = 451;;
+let _X86_INS_PUNPCKHWD = 452;;
+let _X86_INS_PUNPCKLBW = 453;;
+let _X86_INS_PUNPCKLDQ = 454;;
+let _X86_INS_PUNPCKLWD = 455;;
+let _X86_INS_PXOR = 456;;
+let _X86_INS_MONITORX = 457;;
+let _X86_INS_MONITOR = 458;;
+let _X86_INS_MONTMUL = 459;;
+let _X86_INS_MOV = 460;;
+let _X86_INS_MOVABS = 461;;
+let _X86_INS_MOVAPD = 462;;
+let _X86_INS_MOVAPS = 463;;
+let _X86_INS_MOVBE = 464;;
+let _X86_INS_MOVDDUP = 465;;
+let _X86_INS_MOVDIR64B = 466;;
+let _X86_INS_MOVDIRI = 467;;
+let _X86_INS_MOVDQA = 468;;
+let _X86_INS_MOVDQU = 469;;
+let _X86_INS_MOVHLPS = 470;;
+let _X86_INS_MOVHPD = 471;;
+let _X86_INS_MOVHPS = 472;;
+let _X86_INS_MOVLHPS = 473;;
+let _X86_INS_MOVLPD = 474;;
+let _X86_INS_MOVLPS = 475;;
+let _X86_INS_MOVMSKPD = 476;;
+let _X86_INS_MOVMSKPS = 477;;
+let _X86_INS_MOVNTDQA = 478;;
+let _X86_INS_MOVNTDQ = 479;;
+let _X86_INS_MOVNTI = 480;;
+let _X86_INS_MOVNTPD = 481;;
+let _X86_INS_MOVNTPS = 482;;
+let _X86_INS_MOVNTSD = 483;;
+let _X86_INS_MOVNTSS = 484;;
+let _X86_INS_MOVSB = 485;;
+let _X86_INS_MOVSD = 486;;
+let _X86_INS_MOVSHDUP = 487;;
+let _X86_INS_MOVSLDUP = 488;;
+let _X86_INS_MOVSQ = 489;;
+let _X86_INS_MOVSS = 490;;
+let _X86_INS_MOVSW = 491;;
+let _X86_INS_MOVSX = 492;;
+let _X86_INS_MOVSXD = 493;;
+let _X86_INS_MOVUPD = 494;;
+let _X86_INS_MOVUPS = 495;;
+let _X86_INS_MOVZX = 496;;
+let _X86_INS_MPSADBW = 497;;
+let _X86_INS_MUL = 498;;
+let _X86_INS_MULPD = 499;;
+let _X86_INS_MULPS = 500;;
+let _X86_INS_MULSD = 501;;
+let _X86_INS_MULSS = 502;;
+let _X86_INS_MULX = 503;;
+let _X86_INS_FMUL = 504;;
+let _X86_INS_FIMUL = 505;;
+let _X86_INS_FMULP = 506;;
+let _X86_INS_MWAITX = 507;;
+let _X86_INS_MWAIT = 508;;
+let _X86_INS_NEG = 509;;
+let _X86_INS_NOP = 510;;
+let _X86_INS_NOT = 511;;
+let _X86_INS_OR = 512;;
+let _X86_INS_ORPD = 513;;
+let _X86_INS_ORPS = 514;;
+let _X86_INS_OUT = 515;;
+let _X86_INS_OUTSB = 516;;
+let _X86_INS_OUTSD = 517;;
+let _X86_INS_OUTSW = 518;;
+let _X86_INS_PACKUSDW = 519;;
+let _X86_INS_PAUSE = 520;;
+let _X86_INS_PAVGUSB = 521;;
+let _X86_INS_PBLENDVB = 522;;
+let _X86_INS_PBLENDW = 523;;
+let _X86_INS_PCLMULQDQ = 524;;
+let _X86_INS_PCMPEQQ = 525;;
+let _X86_INS_PCMPESTRI = 526;;
+let _X86_INS_PCMPESTRM = 527;;
+let _X86_INS_PCMPGTQ = 528;;
+let _X86_INS_PCMPISTRI = 529;;
+let _X86_INS_PCMPISTRM = 530;;
+let _X86_INS_PCONFIG = 531;;
+let _X86_INS_PDEP = 532;;
+let _X86_INS_PEXT = 533;;
+let _X86_INS_PEXTRB = 534;;
+let _X86_INS_PEXTRD = 535;;
+let _X86_INS_PEXTRQ = 536;;
+let _X86_INS_PF2ID = 537;;
+let _X86_INS_PF2IW = 538;;
+let _X86_INS_PFACC = 539;;
+let _X86_INS_PFADD = 540;;
+let _X86_INS_PFCMPEQ = 541;;
+let _X86_INS_PFCMPGE = 542;;
+let _X86_INS_PFCMPGT = 543;;
+let _X86_INS_PFMAX = 544;;
+let _X86_INS_PFMIN = 545;;
+let _X86_INS_PFMUL = 546;;
+let _X86_INS_PFNACC = 547;;
+let _X86_INS_PFPNACC = 548;;
+let _X86_INS_PFRCPIT1 = 549;;
+let _X86_INS_PFRCPIT2 = 550;;
+let _X86_INS_PFRCP = 551;;
+let _X86_INS_PFRSQIT1 = 552;;
+let _X86_INS_PFRSQRT = 553;;
+let _X86_INS_PFSUBR = 554;;
+let _X86_INS_PFSUB = 555;;
+let _X86_INS_PHMINPOSUW = 556;;
+let _X86_INS_PI2FD = 557;;
+let _X86_INS_PI2FW = 558;;
+let _X86_INS_PINSRB = 559;;
+let _X86_INS_PINSRD = 560;;
+let _X86_INS_PINSRQ = 561;;
+let _X86_INS_PMAXSB = 562;;
+let _X86_INS_PMAXSD = 563;;
+let _X86_INS_PMAXUD = 564;;
+let _X86_INS_PMAXUW = 565;;
+let _X86_INS_PMINSB = 566;;
+let _X86_INS_PMINSD = 567;;
+let _X86_INS_PMINUD = 568;;
+let _X86_INS_PMINUW = 569;;
+let _X86_INS_PMOVSXBD = 570;;
+let _X86_INS_PMOVSXBQ = 571;;
+let _X86_INS_PMOVSXBW = 572;;
+let _X86_INS_PMOVSXDQ = 573;;
+let _X86_INS_PMOVSXWD = 574;;
+let _X86_INS_PMOVSXWQ = 575;;
+let _X86_INS_PMOVZXBD = 576;;
+let _X86_INS_PMOVZXBQ = 577;;
+let _X86_INS_PMOVZXBW = 578;;
+let _X86_INS_PMOVZXDQ = 579;;
+let _X86_INS_PMOVZXWD = 580;;
+let _X86_INS_PMOVZXWQ = 581;;
+let _X86_INS_PMULDQ = 582;;
+let _X86_INS_PMULHRW = 583;;
+let _X86_INS_PMULLD = 584;;
+let _X86_INS_POP = 585;;
+let _X86_INS_POPAW = 586;;
+let _X86_INS_POPAL = 587;;
+let _X86_INS_POPCNT = 588;;
+let _X86_INS_POPF = 589;;
+let _X86_INS_POPFD = 590;;
+let _X86_INS_POPFQ = 591;;
+let _X86_INS_PREFETCH = 592;;
+let _X86_INS_PREFETCHNTA = 593;;
+let _X86_INS_PREFETCHT0 = 594;;
+let _X86_INS_PREFETCHT1 = 595;;
+let _X86_INS_PREFETCHT2 = 596;;
+let _X86_INS_PREFETCHW = 597;;
+let _X86_INS_PREFETCHWT1 = 598;;
+let _X86_INS_PSHUFD = 599;;
+let _X86_INS_PSHUFHW = 600;;
+let _X86_INS_PSHUFLW = 601;;
+let _X86_INS_PSLLDQ = 602;;
+let _X86_INS_PSRLDQ = 603;;
+let _X86_INS_PSWAPD = 604;;
+let _X86_INS_PTEST = 605;;
+let _X86_INS_PTWRITE = 606;;
+let _X86_INS_PUNPCKHQDQ = 607;;
+let _X86_INS_PUNPCKLQDQ = 608;;
+let _X86_INS_PUSH = 609;;
+let _X86_INS_PUSHAW = 610;;
+let _X86_INS_PUSHAL = 611;;
+let _X86_INS_PUSHF = 612;;
+let _X86_INS_PUSHFD = 613;;
+let _X86_INS_PUSHFQ = 614;;
+let _X86_INS_RCL = 615;;
+let _X86_INS_RCPPS = 616;;
+let _X86_INS_RCPSS = 617;;
+let _X86_INS_RCR = 618;;
+let _X86_INS_RDFSBASE = 619;;
+let _X86_INS_RDGSBASE = 620;;
+let _X86_INS_RDMSR = 621;;
+let _X86_INS_RDPID = 622;;
+let _X86_INS_RDPKRU = 623;;
+let _X86_INS_RDPMC = 624;;
+let _X86_INS_RDRAND = 625;;
+let _X86_INS_RDSEED = 626;;
+let _X86_INS_RDSSPD = 627;;
+let _X86_INS_RDSSPQ = 628;;
+let _X86_INS_RDTSC = 629;;
+let _X86_INS_RDTSCP = 630;;
+let _X86_INS_REPNE = 631;;
+let _X86_INS_REP = 632;;
+let _X86_INS_RET = 633;;
+let _X86_INS_REX64 = 634;;
+let _X86_INS_ROL = 635;;
+let _X86_INS_ROR = 636;;
+let _X86_INS_RORX = 637;;
+let _X86_INS_ROUNDPD = 638;;
+let _X86_INS_ROUNDPS = 639;;
+let _X86_INS_ROUNDSD = 640;;
+let _X86_INS_ROUNDSS = 641;;
+let _X86_INS_RSM = 642;;
+let _X86_INS_RSQRTPS = 643;;
+let _X86_INS_RSQRTSS = 644;;
+let _X86_INS_RSTORSSP = 645;;
+let _X86_INS_SAHF = 646;;
+let _X86_INS_SAL = 647;;
+let _X86_INS_SALC = 648;;
+let _X86_INS_SAR = 649;;
+let _X86_INS_SARX = 650;;
+let _X86_INS_SAVEPREVSSP = 651;;
+let _X86_INS_SBB = 652;;
+let _X86_INS_SCASB = 653;;
+let _X86_INS_SCASD = 654;;
+let _X86_INS_SCASQ = 655;;
+let _X86_INS_SCASW = 656;;
+let _X86_INS_SETAE = 657;;
+let _X86_INS_SETA = 658;;
+let _X86_INS_SETBE = 659;;
+let _X86_INS_SETB = 660;;
+let _X86_INS_SETE = 661;;
+let _X86_INS_SETGE = 662;;
+let _X86_INS_SETG = 663;;
+let _X86_INS_SETLE = 664;;
+let _X86_INS_SETL = 665;;
+let _X86_INS_SETNE = 666;;
+let _X86_INS_SETNO = 667;;
+let _X86_INS_SETNP = 668;;
+let _X86_INS_SETNS = 669;;
+let _X86_INS_SETO = 670;;
+let _X86_INS_SETP = 671;;
+let _X86_INS_SETSSBSY = 672;;
+let _X86_INS_SETS = 673;;
+let _X86_INS_SFENCE = 674;;
+let _X86_INS_SGDT = 675;;
+let _X86_INS_SHA1MSG1 = 676;;
+let _X86_INS_SHA1MSG2 = 677;;
+let _X86_INS_SHA1NEXTE = 678;;
+let _X86_INS_SHA1RNDS4 = 679;;
+let _X86_INS_SHA256MSG1 = 680;;
+let _X86_INS_SHA256MSG2 = 681;;
+let _X86_INS_SHA256RNDS2 = 682;;
+let _X86_INS_SHL = 683;;
+let _X86_INS_SHLD = 684;;
+let _X86_INS_SHLX = 685;;
+let _X86_INS_SHR = 686;;
+let _X86_INS_SHRD = 687;;
+let _X86_INS_SHRX = 688;;
+let _X86_INS_SHUFPD = 689;;
+let _X86_INS_SHUFPS = 690;;
+let _X86_INS_SIDT = 691;;
+let _X86_INS_FSIN = 692;;
+let _X86_INS_SKINIT = 693;;
+let _X86_INS_SLDT = 694;;
+let _X86_INS_SLWPCB = 695;;
+let _X86_INS_SMSW = 696;;
+let _X86_INS_SQRTPD = 697;;
+let _X86_INS_SQRTPS = 698;;
+let _X86_INS_SQRTSD = 699;;
+let _X86_INS_SQRTSS = 700;;
+let _X86_INS_FSQRT = 701;;
+let _X86_INS_STAC = 702;;
+let _X86_INS_STC = 703;;
+let _X86_INS_STD = 704;;
+let _X86_INS_STGI = 705;;
+let _X86_INS_STI = 706;;
+let _X86_INS_STMXCSR = 707;;
+let _X86_INS_STOSB = 708;;
+let _X86_INS_STOSD = 709;;
+let _X86_INS_STOSQ = 710;;
+let _X86_INS_STOSW = 711;;
+let _X86_INS_STR = 712;;
+let _X86_INS_FST = 713;;
+let _X86_INS_FSTP = 714;;
+let _X86_INS_SUB = 715;;
+let _X86_INS_SUBPD = 716;;
+let _X86_INS_SUBPS = 717;;
+let _X86_INS_FSUBR = 718;;
+let _X86_INS_FISUBR = 719;;
+let _X86_INS_FSUBRP = 720;;
+let _X86_INS_SUBSD = 721;;
+let _X86_INS_SUBSS = 722;;
+let _X86_INS_FSUB = 723;;
+let _X86_INS_FISUB = 724;;
+let _X86_INS_FSUBP = 725;;
+let _X86_INS_SWAPGS = 726;;
+let _X86_INS_SYSCALL = 727;;
+let _X86_INS_SYSENTER = 728;;
+let _X86_INS_SYSEXIT = 729;;
+let _X86_INS_SYSEXITQ = 730;;
+let _X86_INS_SYSRET = 731;;
+let _X86_INS_SYSRETQ = 732;;
+let _X86_INS_T1MSKC = 733;;
+let _X86_INS_TEST = 734;;
+let _X86_INS_TPAUSE = 735;;
+let _X86_INS_FTST = 736;;
+let _X86_INS_TZCNT = 737;;
+let _X86_INS_TZMSK = 738;;
+let _X86_INS_UCOMISD = 739;;
+let _X86_INS_UCOMISS = 740;;
+let _X86_INS_FUCOMPI = 741;;
+let _X86_INS_FUCOMI = 742;;
+let _X86_INS_FUCOMPP = 743;;
+let _X86_INS_FUCOMP = 744;;
+let _X86_INS_FUCOM = 745;;
+let _X86_INS_UD0 = 746;;
+let _X86_INS_UD1 = 747;;
+let _X86_INS_UD2 = 748;;
+let _X86_INS_UMONITOR = 749;;
+let _X86_INS_UMWAIT = 750;;
+let _X86_INS_UNPCKHPD = 751;;
+let _X86_INS_UNPCKHPS = 752;;
+let _X86_INS_UNPCKLPD = 753;;
+let _X86_INS_UNPCKLPS = 754;;
+let _X86_INS_V4FMADDPS = 755;;
+let _X86_INS_V4FMADDSS = 756;;
+let _X86_INS_V4FNMADDPS = 757;;
+let _X86_INS_V4FNMADDSS = 758;;
+let _X86_INS_VADDPD = 759;;
+let _X86_INS_VADDPS = 760;;
+let _X86_INS_VADDSD = 761;;
+let _X86_INS_VADDSS = 762;;
+let _X86_INS_VADDSUBPD = 763;;
+let _X86_INS_VADDSUBPS = 764;;
+let _X86_INS_VAESDECLAST = 765;;
+let _X86_INS_VAESDEC = 766;;
+let _X86_INS_VAESENCLAST = 767;;
+let _X86_INS_VAESENC = 768;;
+let _X86_INS_VAESIMC = 769;;
+let _X86_INS_VAESKEYGENASSIST = 770;;
+let _X86_INS_VALIGND = 771;;
+let _X86_INS_VALIGNQ = 772;;
+let _X86_INS_VANDNPD = 773;;
+let _X86_INS_VANDNPS = 774;;
+let _X86_INS_VANDPD = 775;;
+let _X86_INS_VANDPS = 776;;
+let _X86_INS_VBLENDMPD = 777;;
+let _X86_INS_VBLENDMPS = 778;;
+let _X86_INS_VBLENDPD = 779;;
+let _X86_INS_VBLENDPS = 780;;
+let _X86_INS_VBLENDVPD = 781;;
+let _X86_INS_VBLENDVPS = 782;;
+let _X86_INS_VBROADCASTF128 = 783;;
+let _X86_INS_VBROADCASTF32X2 = 784;;
+let _X86_INS_VBROADCASTF32X4 = 785;;
+let _X86_INS_VBROADCASTF32X8 = 786;;
+let _X86_INS_VBROADCASTF64X2 = 787;;
+let _X86_INS_VBROADCASTF64X4 = 788;;
+let _X86_INS_VBROADCASTI128 = 789;;
+let _X86_INS_VBROADCASTI32X2 = 790;;
+let _X86_INS_VBROADCASTI32X4 = 791;;
+let _X86_INS_VBROADCASTI32X8 = 792;;
+let _X86_INS_VBROADCASTI64X2 = 793;;
+let _X86_INS_VBROADCASTI64X4 = 794;;
+let _X86_INS_VBROADCASTSD = 795;;
+let _X86_INS_VBROADCASTSS = 796;;
+let _X86_INS_VCMP = 797;;
+let _X86_INS_VCMPPD = 798;;
+let _X86_INS_VCMPPS = 799;;
+let _X86_INS_VCMPSD = 800;;
+let _X86_INS_VCMPSS = 801;;
+let _X86_INS_VCOMISD = 802;;
+let _X86_INS_VCOMISS = 803;;
+let _X86_INS_VCOMPRESSPD = 804;;
+let _X86_INS_VCOMPRESSPS = 805;;
+let _X86_INS_VCVTDQ2PD = 806;;
+let _X86_INS_VCVTDQ2PS = 807;;
+let _X86_INS_VCVTPD2DQ = 808;;
+let _X86_INS_VCVTPD2PS = 809;;
+let _X86_INS_VCVTPD2QQ = 810;;
+let _X86_INS_VCVTPD2UDQ = 811;;
+let _X86_INS_VCVTPD2UQQ = 812;;
+let _X86_INS_VCVTPH2PS = 813;;
+let _X86_INS_VCVTPS2DQ = 814;;
+let _X86_INS_VCVTPS2PD = 815;;
+let _X86_INS_VCVTPS2PH = 816;;
+let _X86_INS_VCVTPS2QQ = 817;;
+let _X86_INS_VCVTPS2UDQ = 818;;
+let _X86_INS_VCVTPS2UQQ = 819;;
+let _X86_INS_VCVTQQ2PD = 820;;
+let _X86_INS_VCVTQQ2PS = 821;;
+let _X86_INS_VCVTSD2SI = 822;;
+let _X86_INS_VCVTSD2SS = 823;;
+let _X86_INS_VCVTSD2USI = 824;;
+let _X86_INS_VCVTSI2SD = 825;;
+let _X86_INS_VCVTSI2SS = 826;;
+let _X86_INS_VCVTSS2SD = 827;;
+let _X86_INS_VCVTSS2SI = 828;;
+let _X86_INS_VCVTSS2USI = 829;;
+let _X86_INS_VCVTTPD2DQ = 830;;
+let _X86_INS_VCVTTPD2QQ = 831;;
+let _X86_INS_VCVTTPD2UDQ = 832;;
+let _X86_INS_VCVTTPD2UQQ = 833;;
+let _X86_INS_VCVTTPS2DQ = 834;;
+let _X86_INS_VCVTTPS2QQ = 835;;
+let _X86_INS_VCVTTPS2UDQ = 836;;
+let _X86_INS_VCVTTPS2UQQ = 837;;
+let _X86_INS_VCVTTSD2SI = 838;;
+let _X86_INS_VCVTTSD2USI = 839;;
+let _X86_INS_VCVTTSS2SI = 840;;
+let _X86_INS_VCVTTSS2USI = 841;;
+let _X86_INS_VCVTUDQ2PD = 842;;
+let _X86_INS_VCVTUDQ2PS = 843;;
+let _X86_INS_VCVTUQQ2PD = 844;;
+let _X86_INS_VCVTUQQ2PS = 845;;
+let _X86_INS_VCVTUSI2SD = 846;;
+let _X86_INS_VCVTUSI2SS = 847;;
+let _X86_INS_VDBPSADBW = 848;;
+let _X86_INS_VDIVPD = 849;;
+let _X86_INS_VDIVPS = 850;;
+let _X86_INS_VDIVSD = 851;;
+let _X86_INS_VDIVSS = 852;;
+let _X86_INS_VDPPD = 853;;
+let _X86_INS_VDPPS = 854;;
+let _X86_INS_VERR = 855;;
+let _X86_INS_VERW = 856;;
+let _X86_INS_VEXP2PD = 857;;
+let _X86_INS_VEXP2PS = 858;;
+let _X86_INS_VEXPANDPD = 859;;
+let _X86_INS_VEXPANDPS = 860;;
+let _X86_INS_VEXTRACTF128 = 861;;
+let _X86_INS_VEXTRACTF32X4 = 862;;
+let _X86_INS_VEXTRACTF32X8 = 863;;
+let _X86_INS_VEXTRACTF64X2 = 864;;
+let _X86_INS_VEXTRACTF64X4 = 865;;
+let _X86_INS_VEXTRACTI128 = 866;;
+let _X86_INS_VEXTRACTI32X4 = 867;;
+let _X86_INS_VEXTRACTI32X8 = 868;;
+let _X86_INS_VEXTRACTI64X2 = 869;;
+let _X86_INS_VEXTRACTI64X4 = 870;;
+let _X86_INS_VEXTRACTPS = 871;;
+let _X86_INS_VFIXUPIMMPD = 872;;
+let _X86_INS_VFIXUPIMMPS = 873;;
+let _X86_INS_VFIXUPIMMSD = 874;;
+let _X86_INS_VFIXUPIMMSS = 875;;
+let _X86_INS_VFMADD132PD = 876;;
+let _X86_INS_VFMADD132PS = 877;;
+let _X86_INS_VFMADD132SD = 878;;
+let _X86_INS_VFMADD132SS = 879;;
+let _X86_INS_VFMADD213PD = 880;;
+let _X86_INS_VFMADD213PS = 881;;
+let _X86_INS_VFMADD213SD = 882;;
+let _X86_INS_VFMADD213SS = 883;;
+let _X86_INS_VFMADD231PD = 884;;
+let _X86_INS_VFMADD231PS = 885;;
+let _X86_INS_VFMADD231SD = 886;;
+let _X86_INS_VFMADD231SS = 887;;
+let _X86_INS_VFMADDPD = 888;;
+let _X86_INS_VFMADDPS = 889;;
+let _X86_INS_VFMADDSD = 890;;
+let _X86_INS_VFMADDSS = 891;;
+let _X86_INS_VFMADDSUB132PD = 892;;
+let _X86_INS_VFMADDSUB132PS = 893;;
+let _X86_INS_VFMADDSUB213PD = 894;;
+let _X86_INS_VFMADDSUB213PS = 895;;
+let _X86_INS_VFMADDSUB231PD = 896;;
+let _X86_INS_VFMADDSUB231PS = 897;;
+let _X86_INS_VFMADDSUBPD = 898;;
+let _X86_INS_VFMADDSUBPS = 899;;
+let _X86_INS_VFMSUB132PD = 900;;
+let _X86_INS_VFMSUB132PS = 901;;
+let _X86_INS_VFMSUB132SD = 902;;
+let _X86_INS_VFMSUB132SS = 903;;
+let _X86_INS_VFMSUB213PD = 904;;
+let _X86_INS_VFMSUB213PS = 905;;
+let _X86_INS_VFMSUB213SD = 906;;
+let _X86_INS_VFMSUB213SS = 907;;
+let _X86_INS_VFMSUB231PD = 908;;
+let _X86_INS_VFMSUB231PS = 909;;
+let _X86_INS_VFMSUB231SD = 910;;
+let _X86_INS_VFMSUB231SS = 911;;
+let _X86_INS_VFMSUBADD132PD = 912;;
+let _X86_INS_VFMSUBADD132PS = 913;;
+let _X86_INS_VFMSUBADD213PD = 914;;
+let _X86_INS_VFMSUBADD213PS = 915;;
+let _X86_INS_VFMSUBADD231PD = 916;;
+let _X86_INS_VFMSUBADD231PS = 917;;
+let _X86_INS_VFMSUBADDPD = 918;;
+let _X86_INS_VFMSUBADDPS = 919;;
+let _X86_INS_VFMSUBPD = 920;;
+let _X86_INS_VFMSUBPS = 921;;
+let _X86_INS_VFMSUBSD = 922;;
+let _X86_INS_VFMSUBSS = 923;;
+let _X86_INS_VFNMADD132PD = 924;;
+let _X86_INS_VFNMADD132PS = 925;;
+let _X86_INS_VFNMADD132SD = 926;;
+let _X86_INS_VFNMADD132SS = 927;;
+let _X86_INS_VFNMADD213PD = 928;;
+let _X86_INS_VFNMADD213PS = 929;;
+let _X86_INS_VFNMADD213SD = 930;;
+let _X86_INS_VFNMADD213SS = 931;;
+let _X86_INS_VFNMADD231PD = 932;;
+let _X86_INS_VFNMADD231PS = 933;;
+let _X86_INS_VFNMADD231SD = 934;;
+let _X86_INS_VFNMADD231SS = 935;;
+let _X86_INS_VFNMADDPD = 936;;
+let _X86_INS_VFNMADDPS = 937;;
+let _X86_INS_VFNMADDSD = 938;;
+let _X86_INS_VFNMADDSS = 939;;
+let _X86_INS_VFNMSUB132PD = 940;;
+let _X86_INS_VFNMSUB132PS = 941;;
+let _X86_INS_VFNMSUB132SD = 942;;
+let _X86_INS_VFNMSUB132SS = 943;;
+let _X86_INS_VFNMSUB213PD = 944;;
+let _X86_INS_VFNMSUB213PS = 945;;
+let _X86_INS_VFNMSUB213SD = 946;;
+let _X86_INS_VFNMSUB213SS = 947;;
+let _X86_INS_VFNMSUB231PD = 948;;
+let _X86_INS_VFNMSUB231PS = 949;;
+let _X86_INS_VFNMSUB231SD = 950;;
+let _X86_INS_VFNMSUB231SS = 951;;
+let _X86_INS_VFNMSUBPD = 952;;
+let _X86_INS_VFNMSUBPS = 953;;
+let _X86_INS_VFNMSUBSD = 954;;
+let _X86_INS_VFNMSUBSS = 955;;
+let _X86_INS_VFPCLASSPD = 956;;
+let _X86_INS_VFPCLASSPS = 957;;
+let _X86_INS_VFPCLASSSD = 958;;
+let _X86_INS_VFPCLASSSS = 959;;
+let _X86_INS_VFRCZPD = 960;;
+let _X86_INS_VFRCZPS = 961;;
+let _X86_INS_VFRCZSD = 962;;
+let _X86_INS_VFRCZSS = 963;;
+let _X86_INS_VGATHERDPD = 964;;
+let _X86_INS_VGATHERDPS = 965;;
+let _X86_INS_VGATHERPF0DPD = 966;;
+let _X86_INS_VGATHERPF0DPS = 967;;
+let _X86_INS_VGATHERPF0QPD = 968;;
+let _X86_INS_VGATHERPF0QPS = 969;;
+let _X86_INS_VGATHERPF1DPD = 970;;
+let _X86_INS_VGATHERPF1DPS = 971;;
+let _X86_INS_VGATHERPF1QPD = 972;;
+let _X86_INS_VGATHERPF1QPS = 973;;
+let _X86_INS_VGATHERQPD = 974;;
+let _X86_INS_VGATHERQPS = 975;;
+let _X86_INS_VGETEXPPD = 976;;
+let _X86_INS_VGETEXPPS = 977;;
+let _X86_INS_VGETEXPSD = 978;;
+let _X86_INS_VGETEXPSS = 979;;
+let _X86_INS_VGETMANTPD = 980;;
+let _X86_INS_VGETMANTPS = 981;;
+let _X86_INS_VGETMANTSD = 982;;
+let _X86_INS_VGETMANTSS = 983;;
+let _X86_INS_VGF2P8AFFINEINVQB = 984;;
+let _X86_INS_VGF2P8AFFINEQB = 985;;
+let _X86_INS_VGF2P8MULB = 986;;
+let _X86_INS_VHADDPD = 987;;
+let _X86_INS_VHADDPS = 988;;
+let _X86_INS_VHSUBPD = 989;;
+let _X86_INS_VHSUBPS = 990;;
+let _X86_INS_VINSERTF128 = 991;;
+let _X86_INS_VINSERTF32X4 = 992;;
+let _X86_INS_VINSERTF32X8 = 993;;
+let _X86_INS_VINSERTF64X2 = 994;;
+let _X86_INS_VINSERTF64X4 = 995;;
+let _X86_INS_VINSERTI128 = 996;;
+let _X86_INS_VINSERTI32X4 = 997;;
+let _X86_INS_VINSERTI32X8 = 998;;
+let _X86_INS_VINSERTI64X2 = 999;;
+let _X86_INS_VINSERTI64X4 = 1000;;
+let _X86_INS_VINSERTPS = 1001;;
+let _X86_INS_VLDDQU = 1002;;
+let _X86_INS_VLDMXCSR = 1003;;
+let _X86_INS_VMASKMOVDQU = 1004;;
+let _X86_INS_VMASKMOVPD = 1005;;
+let _X86_INS_VMASKMOVPS = 1006;;
+let _X86_INS_VMAXPD = 1007;;
+let _X86_INS_VMAXPS = 1008;;
+let _X86_INS_VMAXSD = 1009;;
+let _X86_INS_VMAXSS = 1010;;
+let _X86_INS_VMCALL = 1011;;
+let _X86_INS_VMCLEAR = 1012;;
+let _X86_INS_VMFUNC = 1013;;
+let _X86_INS_VMINPD = 1014;;
+let _X86_INS_VMINPS = 1015;;
+let _X86_INS_VMINSD = 1016;;
+let _X86_INS_VMINSS = 1017;;
+let _X86_INS_VMLAUNCH = 1018;;
+let _X86_INS_VMLOAD = 1019;;
+let _X86_INS_VMMCALL = 1020;;
+let _X86_INS_VMOVQ = 1021;;
+let _X86_INS_VMOVAPD = 1022;;
+let _X86_INS_VMOVAPS = 1023;;
+let _X86_INS_VMOVDDUP = 1024;;
+let _X86_INS_VMOVD = 1025;;
+let _X86_INS_VMOVDQA32 = 1026;;
+let _X86_INS_VMOVDQA64 = 1027;;
+let _X86_INS_VMOVDQA = 1028;;
+let _X86_INS_VMOVDQU16 = 1029;;
+let _X86_INS_VMOVDQU32 = 1030;;
+let _X86_INS_VMOVDQU64 = 1031;;
+let _X86_INS_VMOVDQU8 = 1032;;
+let _X86_INS_VMOVDQU = 1033;;
+let _X86_INS_VMOVHLPS = 1034;;
+let _X86_INS_VMOVHPD = 1035;;
+let _X86_INS_VMOVHPS = 1036;;
+let _X86_INS_VMOVLHPS = 1037;;
+let _X86_INS_VMOVLPD = 1038;;
+let _X86_INS_VMOVLPS = 1039;;
+let _X86_INS_VMOVMSKPD = 1040;;
+let _X86_INS_VMOVMSKPS = 1041;;
+let _X86_INS_VMOVNTDQA = 1042;;
+let _X86_INS_VMOVNTDQ = 1043;;
+let _X86_INS_VMOVNTPD = 1044;;
+let _X86_INS_VMOVNTPS = 1045;;
+let _X86_INS_VMOVSD = 1046;;
+let _X86_INS_VMOVSHDUP = 1047;;
+let _X86_INS_VMOVSLDUP = 1048;;
+let _X86_INS_VMOVSS = 1049;;
+let _X86_INS_VMOVUPD = 1050;;
+let _X86_INS_VMOVUPS = 1051;;
+let _X86_INS_VMPSADBW = 1052;;
+let _X86_INS_VMPTRLD = 1053;;
+let _X86_INS_VMPTRST = 1054;;
+let _X86_INS_VMREAD = 1055;;
+let _X86_INS_VMRESUME = 1056;;
+let _X86_INS_VMRUN = 1057;;
+let _X86_INS_VMSAVE = 1058;;
+let _X86_INS_VMULPD = 1059;;
+let _X86_INS_VMULPS = 1060;;
+let _X86_INS_VMULSD = 1061;;
+let _X86_INS_VMULSS = 1062;;
+let _X86_INS_VMWRITE = 1063;;
+let _X86_INS_VMXOFF = 1064;;
+let _X86_INS_VMXON = 1065;;
+let _X86_INS_VORPD = 1066;;
+let _X86_INS_VORPS = 1067;;
+let _X86_INS_VP4DPWSSDS = 1068;;
+let _X86_INS_VP4DPWSSD = 1069;;
+let _X86_INS_VPABSB = 1070;;
+let _X86_INS_VPABSD = 1071;;
+let _X86_INS_VPABSQ = 1072;;
+let _X86_INS_VPABSW = 1073;;
+let _X86_INS_VPACKSSDW = 1074;;
+let _X86_INS_VPACKSSWB = 1075;;
+let _X86_INS_VPACKUSDW = 1076;;
+let _X86_INS_VPACKUSWB = 1077;;
+let _X86_INS_VPADDB = 1078;;
+let _X86_INS_VPADDD = 1079;;
+let _X86_INS_VPADDQ = 1080;;
+let _X86_INS_VPADDSB = 1081;;
+let _X86_INS_VPADDSW = 1082;;
+let _X86_INS_VPADDUSB = 1083;;
+let _X86_INS_VPADDUSW = 1084;;
+let _X86_INS_VPADDW = 1085;;
+let _X86_INS_VPALIGNR = 1086;;
+let _X86_INS_VPANDD = 1087;;
+let _X86_INS_VPANDND = 1088;;
+let _X86_INS_VPANDNQ = 1089;;
+let _X86_INS_VPANDN = 1090;;
+let _X86_INS_VPANDQ = 1091;;
+let _X86_INS_VPAND = 1092;;
+let _X86_INS_VPAVGB = 1093;;
+let _X86_INS_VPAVGW = 1094;;
+let _X86_INS_VPBLENDD = 1095;;
+let _X86_INS_VPBLENDMB = 1096;;
+let _X86_INS_VPBLENDMD = 1097;;
+let _X86_INS_VPBLENDMQ = 1098;;
+let _X86_INS_VPBLENDMW = 1099;;
+let _X86_INS_VPBLENDVB = 1100;;
+let _X86_INS_VPBLENDW = 1101;;
+let _X86_INS_VPBROADCASTB = 1102;;
+let _X86_INS_VPBROADCASTD = 1103;;
+let _X86_INS_VPBROADCASTMB2Q = 1104;;
+let _X86_INS_VPBROADCASTMW2D = 1105;;
+let _X86_INS_VPBROADCASTQ = 1106;;
+let _X86_INS_VPBROADCASTW = 1107;;
+let _X86_INS_VPCLMULQDQ = 1108;;
+let _X86_INS_VPCMOV = 1109;;
+let _X86_INS_VPCMP = 1110;;
+let _X86_INS_VPCMPB = 1111;;
+let _X86_INS_VPCMPD = 1112;;
+let _X86_INS_VPCMPEQB = 1113;;
+let _X86_INS_VPCMPEQD = 1114;;
+let _X86_INS_VPCMPEQQ = 1115;;
+let _X86_INS_VPCMPEQW = 1116;;
+let _X86_INS_VPCMPESTRI = 1117;;
+let _X86_INS_VPCMPESTRM = 1118;;
+let _X86_INS_VPCMPGTB = 1119;;
+let _X86_INS_VPCMPGTD = 1120;;
+let _X86_INS_VPCMPGTQ = 1121;;
+let _X86_INS_VPCMPGTW = 1122;;
+let _X86_INS_VPCMPISTRI = 1123;;
+let _X86_INS_VPCMPISTRM = 1124;;
+let _X86_INS_VPCMPQ = 1125;;
+let _X86_INS_VPCMPUB = 1126;;
+let _X86_INS_VPCMPUD = 1127;;
+let _X86_INS_VPCMPUQ = 1128;;
+let _X86_INS_VPCMPUW = 1129;;
+let _X86_INS_VPCMPW = 1130;;
+let _X86_INS_VPCOM = 1131;;
+let _X86_INS_VPCOMB = 1132;;
+let _X86_INS_VPCOMD = 1133;;
+let _X86_INS_VPCOMPRESSB = 1134;;
+let _X86_INS_VPCOMPRESSD = 1135;;
+let _X86_INS_VPCOMPRESSQ = 1136;;
+let _X86_INS_VPCOMPRESSW = 1137;;
+let _X86_INS_VPCOMQ = 1138;;
+let _X86_INS_VPCOMUB = 1139;;
+let _X86_INS_VPCOMUD = 1140;;
+let _X86_INS_VPCOMUQ = 1141;;
+let _X86_INS_VPCOMUW = 1142;;
+let _X86_INS_VPCOMW = 1143;;
+let _X86_INS_VPCONFLICTD = 1144;;
+let _X86_INS_VPCONFLICTQ = 1145;;
+let _X86_INS_VPDPBUSDS = 1146;;
+let _X86_INS_VPDPBUSD = 1147;;
+let _X86_INS_VPDPWSSDS = 1148;;
+let _X86_INS_VPDPWSSD = 1149;;
+let _X86_INS_VPERM2F128 = 1150;;
+let _X86_INS_VPERM2I128 = 1151;;
+let _X86_INS_VPERMB = 1152;;
+let _X86_INS_VPERMD = 1153;;
+let _X86_INS_VPERMI2B = 1154;;
+let _X86_INS_VPERMI2D = 1155;;
+let _X86_INS_VPERMI2PD = 1156;;
+let _X86_INS_VPERMI2PS = 1157;;
+let _X86_INS_VPERMI2Q = 1158;;
+let _X86_INS_VPERMI2W = 1159;;
+let _X86_INS_VPERMIL2PD = 1160;;
+let _X86_INS_VPERMILPD = 1161;;
+let _X86_INS_VPERMIL2PS = 1162;;
+let _X86_INS_VPERMILPS = 1163;;
+let _X86_INS_VPERMPD = 1164;;
+let _X86_INS_VPERMPS = 1165;;
+let _X86_INS_VPERMQ = 1166;;
+let _X86_INS_VPERMT2B = 1167;;
+let _X86_INS_VPERMT2D = 1168;;
+let _X86_INS_VPERMT2PD = 1169;;
+let _X86_INS_VPERMT2PS = 1170;;
+let _X86_INS_VPERMT2Q = 1171;;
+let _X86_INS_VPERMT2W = 1172;;
+let _X86_INS_VPERMW = 1173;;
+let _X86_INS_VPEXPANDB = 1174;;
+let _X86_INS_VPEXPANDD = 1175;;
+let _X86_INS_VPEXPANDQ = 1176;;
+let _X86_INS_VPEXPANDW = 1177;;
+let _X86_INS_VPEXTRB = 1178;;
+let _X86_INS_VPEXTRD = 1179;;
+let _X86_INS_VPEXTRQ = 1180;;
+let _X86_INS_VPEXTRW = 1181;;
+let _X86_INS_VPGATHERDD = 1182;;
+let _X86_INS_VPGATHERDQ = 1183;;
+let _X86_INS_VPGATHERQD = 1184;;
+let _X86_INS_VPGATHERQQ = 1185;;
+let _X86_INS_VPHADDBD = 1186;;
+let _X86_INS_VPHADDBQ = 1187;;
+let _X86_INS_VPHADDBW = 1188;;
+let _X86_INS_VPHADDDQ = 1189;;
+let _X86_INS_VPHADDD = 1190;;
+let _X86_INS_VPHADDSW = 1191;;
+let _X86_INS_VPHADDUBD = 1192;;
+let _X86_INS_VPHADDUBQ = 1193;;
+let _X86_INS_VPHADDUBW = 1194;;
+let _X86_INS_VPHADDUDQ = 1195;;
+let _X86_INS_VPHADDUWD = 1196;;
+let _X86_INS_VPHADDUWQ = 1197;;
+let _X86_INS_VPHADDWD = 1198;;
+let _X86_INS_VPHADDWQ = 1199;;
+let _X86_INS_VPHADDW = 1200;;
+let _X86_INS_VPHMINPOSUW = 1201;;
+let _X86_INS_VPHSUBBW = 1202;;
+let _X86_INS_VPHSUBDQ = 1203;;
+let _X86_INS_VPHSUBD = 1204;;
+let _X86_INS_VPHSUBSW = 1205;;
+let _X86_INS_VPHSUBWD = 1206;;
+let _X86_INS_VPHSUBW = 1207;;
+let _X86_INS_VPINSRB = 1208;;
+let _X86_INS_VPINSRD = 1209;;
+let _X86_INS_VPINSRQ = 1210;;
+let _X86_INS_VPINSRW = 1211;;
+let _X86_INS_VPLZCNTD = 1212;;
+let _X86_INS_VPLZCNTQ = 1213;;
+let _X86_INS_VPMACSDD = 1214;;
+let _X86_INS_VPMACSDQH = 1215;;
+let _X86_INS_VPMACSDQL = 1216;;
+let _X86_INS_VPMACSSDD = 1217;;
+let _X86_INS_VPMACSSDQH = 1218;;
+let _X86_INS_VPMACSSDQL = 1219;;
+let _X86_INS_VPMACSSWD = 1220;;
+let _X86_INS_VPMACSSWW = 1221;;
+let _X86_INS_VPMACSWD = 1222;;
+let _X86_INS_VPMACSWW = 1223;;
+let _X86_INS_VPMADCSSWD = 1224;;
+let _X86_INS_VPMADCSWD = 1225;;
+let _X86_INS_VPMADD52HUQ = 1226;;
+let _X86_INS_VPMADD52LUQ = 1227;;
+let _X86_INS_VPMADDUBSW = 1228;;
+let _X86_INS_VPMADDWD = 1229;;
+let _X86_INS_VPMASKMOVD = 1230;;
+let _X86_INS_VPMASKMOVQ = 1231;;
+let _X86_INS_VPMAXSB = 1232;;
+let _X86_INS_VPMAXSD = 1233;;
+let _X86_INS_VPMAXSQ = 1234;;
+let _X86_INS_VPMAXSW = 1235;;
+let _X86_INS_VPMAXUB = 1236;;
+let _X86_INS_VPMAXUD = 1237;;
+let _X86_INS_VPMAXUQ = 1238;;
+let _X86_INS_VPMAXUW = 1239;;
+let _X86_INS_VPMINSB = 1240;;
+let _X86_INS_VPMINSD = 1241;;
+let _X86_INS_VPMINSQ = 1242;;
+let _X86_INS_VPMINSW = 1243;;
+let _X86_INS_VPMINUB = 1244;;
+let _X86_INS_VPMINUD = 1245;;
+let _X86_INS_VPMINUQ = 1246;;
+let _X86_INS_VPMINUW = 1247;;
+let _X86_INS_VPMOVB2M = 1248;;
+let _X86_INS_VPMOVD2M = 1249;;
+let _X86_INS_VPMOVDB = 1250;;
+let _X86_INS_VPMOVDW = 1251;;
+let _X86_INS_VPMOVM2B = 1252;;
+let _X86_INS_VPMOVM2D = 1253;;
+let _X86_INS_VPMOVM2Q = 1254;;
+let _X86_INS_VPMOVM2W = 1255;;
+let _X86_INS_VPMOVMSKB = 1256;;
+let _X86_INS_VPMOVQ2M = 1257;;
+let _X86_INS_VPMOVQB = 1258;;
+let _X86_INS_VPMOVQD = 1259;;
+let _X86_INS_VPMOVQW = 1260;;
+let _X86_INS_VPMOVSDB = 1261;;
+let _X86_INS_VPMOVSDW = 1262;;
+let _X86_INS_VPMOVSQB = 1263;;
+let _X86_INS_VPMOVSQD = 1264;;
+let _X86_INS_VPMOVSQW = 1265;;
+let _X86_INS_VPMOVSWB = 1266;;
+let _X86_INS_VPMOVSXBD = 1267;;
+let _X86_INS_VPMOVSXBQ = 1268;;
+let _X86_INS_VPMOVSXBW = 1269;;
+let _X86_INS_VPMOVSXDQ = 1270;;
+let _X86_INS_VPMOVSXWD = 1271;;
+let _X86_INS_VPMOVSXWQ = 1272;;
+let _X86_INS_VPMOVUSDB = 1273;;
+let _X86_INS_VPMOVUSDW = 1274;;
+let _X86_INS_VPMOVUSQB = 1275;;
+let _X86_INS_VPMOVUSQD = 1276;;
+let _X86_INS_VPMOVUSQW = 1277;;
+let _X86_INS_VPMOVUSWB = 1278;;
+let _X86_INS_VPMOVW2M = 1279;;
+let _X86_INS_VPMOVWB = 1280;;
+let _X86_INS_VPMOVZXBD = 1281;;
+let _X86_INS_VPMOVZXBQ = 1282;;
+let _X86_INS_VPMOVZXBW = 1283;;
+let _X86_INS_VPMOVZXDQ = 1284;;
+let _X86_INS_VPMOVZXWD = 1285;;
+let _X86_INS_VPMOVZXWQ = 1286;;
+let _X86_INS_VPMULDQ = 1287;;
+let _X86_INS_VPMULHRSW = 1288;;
+let _X86_INS_VPMULHUW = 1289;;
+let _X86_INS_VPMULHW = 1290;;
+let _X86_INS_VPMULLD = 1291;;
+let _X86_INS_VPMULLQ = 1292;;
+let _X86_INS_VPMULLW = 1293;;
+let _X86_INS_VPMULTISHIFTQB = 1294;;
+let _X86_INS_VPMULUDQ = 1295;;
+let _X86_INS_VPOPCNTB = 1296;;
+let _X86_INS_VPOPCNTD = 1297;;
+let _X86_INS_VPOPCNTQ = 1298;;
+let _X86_INS_VPOPCNTW = 1299;;
+let _X86_INS_VPORD = 1300;;
+let _X86_INS_VPORQ = 1301;;
+let _X86_INS_VPOR = 1302;;
+let _X86_INS_VPPERM = 1303;;
+let _X86_INS_VPROLD = 1304;;
+let _X86_INS_VPROLQ = 1305;;
+let _X86_INS_VPROLVD = 1306;;
+let _X86_INS_VPROLVQ = 1307;;
+let _X86_INS_VPRORD = 1308;;
+let _X86_INS_VPRORQ = 1309;;
+let _X86_INS_VPRORVD = 1310;;
+let _X86_INS_VPRORVQ = 1311;;
+let _X86_INS_VPROTB = 1312;;
+let _X86_INS_VPROTD = 1313;;
+let _X86_INS_VPROTQ = 1314;;
+let _X86_INS_VPROTW = 1315;;
+let _X86_INS_VPSADBW = 1316;;
+let _X86_INS_VPSCATTERDD = 1317;;
+let _X86_INS_VPSCATTERDQ = 1318;;
+let _X86_INS_VPSCATTERQD = 1319;;
+let _X86_INS_VPSCATTERQQ = 1320;;
+let _X86_INS_VPSHAB = 1321;;
+let _X86_INS_VPSHAD = 1322;;
+let _X86_INS_VPSHAQ = 1323;;
+let _X86_INS_VPSHAW = 1324;;
+let _X86_INS_VPSHLB = 1325;;
+let _X86_INS_VPSHLDD = 1326;;
+let _X86_INS_VPSHLDQ = 1327;;
+let _X86_INS_VPSHLDVD = 1328;;
+let _X86_INS_VPSHLDVQ = 1329;;
+let _X86_INS_VPSHLDVW = 1330;;
+let _X86_INS_VPSHLDW = 1331;;
+let _X86_INS_VPSHLD = 1332;;
+let _X86_INS_VPSHLQ = 1333;;
+let _X86_INS_VPSHLW = 1334;;
+let _X86_INS_VPSHRDD = 1335;;
+let _X86_INS_VPSHRDQ = 1336;;
+let _X86_INS_VPSHRDVD = 1337;;
+let _X86_INS_VPSHRDVQ = 1338;;
+let _X86_INS_VPSHRDVW = 1339;;
+let _X86_INS_VPSHRDW = 1340;;
+let _X86_INS_VPSHUFBITQMB = 1341;;
+let _X86_INS_VPSHUFB = 1342;;
+let _X86_INS_VPSHUFD = 1343;;
+let _X86_INS_VPSHUFHW = 1344;;
+let _X86_INS_VPSHUFLW = 1345;;
+let _X86_INS_VPSIGNB = 1346;;
+let _X86_INS_VPSIGND = 1347;;
+let _X86_INS_VPSIGNW = 1348;;
+let _X86_INS_VPSLLDQ = 1349;;
+let _X86_INS_VPSLLD = 1350;;
+let _X86_INS_VPSLLQ = 1351;;
+let _X86_INS_VPSLLVD = 1352;;
+let _X86_INS_VPSLLVQ = 1353;;
+let _X86_INS_VPSLLVW = 1354;;
+let _X86_INS_VPSLLW = 1355;;
+let _X86_INS_VPSRAD = 1356;;
+let _X86_INS_VPSRAQ = 1357;;
+let _X86_INS_VPSRAVD = 1358;;
+let _X86_INS_VPSRAVQ = 1359;;
+let _X86_INS_VPSRAVW = 1360;;
+let _X86_INS_VPSRAW = 1361;;
+let _X86_INS_VPSRLDQ = 1362;;
+let _X86_INS_VPSRLD = 1363;;
+let _X86_INS_VPSRLQ = 1364;;
+let _X86_INS_VPSRLVD = 1365;;
+let _X86_INS_VPSRLVQ = 1366;;
+let _X86_INS_VPSRLVW = 1367;;
+let _X86_INS_VPSRLW = 1368;;
+let _X86_INS_VPSUBB = 1369;;
+let _X86_INS_VPSUBD = 1370;;
+let _X86_INS_VPSUBQ = 1371;;
+let _X86_INS_VPSUBSB = 1372;;
+let _X86_INS_VPSUBSW = 1373;;
+let _X86_INS_VPSUBUSB = 1374;;
+let _X86_INS_VPSUBUSW = 1375;;
+let _X86_INS_VPSUBW = 1376;;
+let _X86_INS_VPTERNLOGD = 1377;;
+let _X86_INS_VPTERNLOGQ = 1378;;
+let _X86_INS_VPTESTMB = 1379;;
+let _X86_INS_VPTESTMD = 1380;;
+let _X86_INS_VPTESTMQ = 1381;;
+let _X86_INS_VPTESTMW = 1382;;
+let _X86_INS_VPTESTNMB = 1383;;
+let _X86_INS_VPTESTNMD = 1384;;
+let _X86_INS_VPTESTNMQ = 1385;;
+let _X86_INS_VPTESTNMW = 1386;;
+let _X86_INS_VPTEST = 1387;;
+let _X86_INS_VPUNPCKHBW = 1388;;
+let _X86_INS_VPUNPCKHDQ = 1389;;
+let _X86_INS_VPUNPCKHQDQ = 1390;;
+let _X86_INS_VPUNPCKHWD = 1391;;
+let _X86_INS_VPUNPCKLBW = 1392;;
+let _X86_INS_VPUNPCKLDQ = 1393;;
+let _X86_INS_VPUNPCKLQDQ = 1394;;
+let _X86_INS_VPUNPCKLWD = 1395;;
+let _X86_INS_VPXORD = 1396;;
+let _X86_INS_VPXORQ = 1397;;
+let _X86_INS_VPXOR = 1398;;
+let _X86_INS_VRANGEPD = 1399;;
+let _X86_INS_VRANGEPS = 1400;;
+let _X86_INS_VRANGESD = 1401;;
+let _X86_INS_VRANGESS = 1402;;
+let _X86_INS_VRCP14PD = 1403;;
+let _X86_INS_VRCP14PS = 1404;;
+let _X86_INS_VRCP14SD = 1405;;
+let _X86_INS_VRCP14SS = 1406;;
+let _X86_INS_VRCP28PD = 1407;;
+let _X86_INS_VRCP28PS = 1408;;
+let _X86_INS_VRCP28SD = 1409;;
+let _X86_INS_VRCP28SS = 1410;;
+let _X86_INS_VRCPPS = 1411;;
+let _X86_INS_VRCPSS = 1412;;
+let _X86_INS_VREDUCEPD = 1413;;
+let _X86_INS_VREDUCEPS = 1414;;
+let _X86_INS_VREDUCESD = 1415;;
+let _X86_INS_VREDUCESS = 1416;;
+let _X86_INS_VRNDSCALEPD = 1417;;
+let _X86_INS_VRNDSCALEPS = 1418;;
+let _X86_INS_VRNDSCALESD = 1419;;
+let _X86_INS_VRNDSCALESS = 1420;;
+let _X86_INS_VROUNDPD = 1421;;
+let _X86_INS_VROUNDPS = 1422;;
+let _X86_INS_VROUNDSD = 1423;;
+let _X86_INS_VROUNDSS = 1424;;
+let _X86_INS_VRSQRT14PD = 1425;;
+let _X86_INS_VRSQRT14PS = 1426;;
+let _X86_INS_VRSQRT14SD = 1427;;
+let _X86_INS_VRSQRT14SS = 1428;;
+let _X86_INS_VRSQRT28PD = 1429;;
+let _X86_INS_VRSQRT28PS = 1430;;
+let _X86_INS_VRSQRT28SD = 1431;;
+let _X86_INS_VRSQRT28SS = 1432;;
+let _X86_INS_VRSQRTPS = 1433;;
+let _X86_INS_VRSQRTSS = 1434;;
+let _X86_INS_VSCALEFPD = 1435;;
+let _X86_INS_VSCALEFPS = 1436;;
+let _X86_INS_VSCALEFSD = 1437;;
+let _X86_INS_VSCALEFSS = 1438;;
+let _X86_INS_VSCATTERDPD = 1439;;
+let _X86_INS_VSCATTERDPS = 1440;;
+let _X86_INS_VSCATTERPF0DPD = 1441;;
+let _X86_INS_VSCATTERPF0DPS = 1442;;
+let _X86_INS_VSCATTERPF0QPD = 1443;;
+let _X86_INS_VSCATTERPF0QPS = 1444;;
+let _X86_INS_VSCATTERPF1DPD = 1445;;
+let _X86_INS_VSCATTERPF1DPS = 1446;;
+let _X86_INS_VSCATTERPF1QPD = 1447;;
+let _X86_INS_VSCATTERPF1QPS = 1448;;
+let _X86_INS_VSCATTERQPD = 1449;;
+let _X86_INS_VSCATTERQPS = 1450;;
+let _X86_INS_VSHUFF32X4 = 1451;;
+let _X86_INS_VSHUFF64X2 = 1452;;
+let _X86_INS_VSHUFI32X4 = 1453;;
+let _X86_INS_VSHUFI64X2 = 1454;;
+let _X86_INS_VSHUFPD = 1455;;
+let _X86_INS_VSHUFPS = 1456;;
+let _X86_INS_VSQRTPD = 1457;;
+let _X86_INS_VSQRTPS = 1458;;
+let _X86_INS_VSQRTSD = 1459;;
+let _X86_INS_VSQRTSS = 1460;;
+let _X86_INS_VSTMXCSR = 1461;;
+let _X86_INS_VSUBPD = 1462;;
+let _X86_INS_VSUBPS = 1463;;
+let _X86_INS_VSUBSD = 1464;;
+let _X86_INS_VSUBSS = 1465;;
+let _X86_INS_VTESTPD = 1466;;
+let _X86_INS_VTESTPS = 1467;;
+let _X86_INS_VUCOMISD = 1468;;
+let _X86_INS_VUCOMISS = 1469;;
+let _X86_INS_VUNPCKHPD = 1470;;
+let _X86_INS_VUNPCKHPS = 1471;;
+let _X86_INS_VUNPCKLPD = 1472;;
+let _X86_INS_VUNPCKLPS = 1473;;
+let _X86_INS_VXORPD = 1474;;
+let _X86_INS_VXORPS = 1475;;
+let _X86_INS_VZEROALL = 1476;;
+let _X86_INS_VZEROUPPER = 1477;;
+let _X86_INS_WAIT = 1478;;
+let _X86_INS_WBINVD = 1479;;
+let _X86_INS_WBNOINVD = 1480;;
+let _X86_INS_WRFSBASE = 1481;;
+let _X86_INS_WRGSBASE = 1482;;
+let _X86_INS_WRMSR = 1483;;
+let _X86_INS_WRPKRU = 1484;;
+let _X86_INS_WRSSD = 1485;;
+let _X86_INS_WRSSQ = 1486;;
+let _X86_INS_WRUSSD = 1487;;
+let _X86_INS_WRUSSQ = 1488;;
+let _X86_INS_XABORT = 1489;;
+let _X86_INS_XACQUIRE = 1490;;
+let _X86_INS_XADD = 1491;;
+let _X86_INS_XBEGIN = 1492;;
+let _X86_INS_XCHG = 1493;;
+let _X86_INS_FXCH = 1494;;
+let _X86_INS_XCRYPTCBC = 1495;;
+let _X86_INS_XCRYPTCFB = 1496;;
+let _X86_INS_XCRYPTCTR = 1497;;
+let _X86_INS_XCRYPTECB = 1498;;
+let _X86_INS_XCRYPTOFB = 1499;;
+let _X86_INS_XEND = 1500;;
+let _X86_INS_XGETBV = 1501;;
+let _X86_INS_XLATB = 1502;;
+let _X86_INS_XOR = 1503;;
+let _X86_INS_XORPD = 1504;;
+let _X86_INS_XORPS = 1505;;
+let _X86_INS_XRELEASE = 1506;;
+let _X86_INS_XRSTOR = 1507;;
+let _X86_INS_XRSTOR64 = 1508;;
+let _X86_INS_XRSTORS = 1509;;
+let _X86_INS_XRSTORS64 = 1510;;
+let _X86_INS_XSAVE = 1511;;
+let _X86_INS_XSAVE64 = 1512;;
+let _X86_INS_XSAVEC = 1513;;
+let _X86_INS_XSAVEC64 = 1514;;
+let _X86_INS_XSAVEOPT = 1515;;
+let _X86_INS_XSAVEOPT64 = 1516;;
+let _X86_INS_XSAVES = 1517;;
+let _X86_INS_XSAVES64 = 1518;;
+let _X86_INS_XSETBV = 1519;;
+let _X86_INS_XSHA1 = 1520;;
+let _X86_INS_XSHA256 = 1521;;
+let _X86_INS_XSTORE = 1522;;
+let _X86_INS_XTEST = 1523;;
+let _X86_INS_ENDING = 1524;;
+
+let _X86_GRP_INVALID = 0;;
+let _X86_GRP_JUMP = 1;;
+let _X86_GRP_CALL = 2;;
+let _X86_GRP_RET = 3;;
+let _X86_GRP_INT = 4;;
+let _X86_GRP_IRET = 5;;
+let _X86_GRP_PRIVILEGE = 6;;
+let _X86_GRP_BRANCH_RELATIVE = 7;;
+let _X86_GRP_VM = 128;;
+let _X86_GRP_3DNOW = 129;;
+let _X86_GRP_AES = 130;;
+let _X86_GRP_ADX = 131;;
+let _X86_GRP_AVX = 132;;
+let _X86_GRP_AVX2 = 133;;
+let _X86_GRP_AVX512 = 134;;
+let _X86_GRP_BMI = 135;;
+let _X86_GRP_BMI2 = 136;;
+let _X86_GRP_CMOV = 137;;
+let _X86_GRP_F16C = 138;;
+let _X86_GRP_FMA = 139;;
+let _X86_GRP_FMA4 = 140;;
+let _X86_GRP_FSGSBASE = 141;;
+let _X86_GRP_HLE = 142;;
+let _X86_GRP_MMX = 143;;
+let _X86_GRP_MODE32 = 144;;
+let _X86_GRP_MODE64 = 145;;
+let _X86_GRP_RTM = 146;;
+let _X86_GRP_SHA = 147;;
+let _X86_GRP_SSE1 = 148;;
+let _X86_GRP_SSE2 = 149;;
+let _X86_GRP_SSE3 = 150;;
+let _X86_GRP_SSE41 = 151;;
+let _X86_GRP_SSE42 = 152;;
+let _X86_GRP_SSE4A = 153;;
+let _X86_GRP_SSSE3 = 154;;
+let _X86_GRP_PCLMUL = 155;;
+let _X86_GRP_XOP = 156;;
+let _X86_GRP_CDI = 157;;
+let _X86_GRP_ERI = 158;;
+let _X86_GRP_TBM = 159;;
+let _X86_GRP_16BITMODE = 160;;
+let _X86_GRP_NOT64BITMODE = 161;;
+let _X86_GRP_SGX = 162;;
+let _X86_GRP_DQI = 163;;
+let _X86_GRP_BWI = 164;;
+let _X86_GRP_PFI = 165;;
+let _X86_GRP_VLX = 166;;
+let _X86_GRP_SMAP = 167;;
+let _X86_GRP_NOVLX = 168;;
+let _X86_GRP_FPU = 169;;
+let _X86_GRP_ENDING = 170;;
diff --git a/capstone/bindings/ocaml/xcore.ml b/capstone/bindings/ocaml/xcore.ml
new file mode 100644
index 000000000..ee993c137
--- /dev/null
+++ b/capstone/bindings/ocaml/xcore.ml
@@ -0,0 +1,26 @@
+(* Capstone Disassembly Engine
+ * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
+
+open Xcore_const
+
+type xcore_op_mem = {
+ base: int;
+ index: int;
+ disp: int;
+ direct: int;
+}
+
+type xcore_op_value =
+ | XCORE_OP_INVALID of int
+ | XCORE_OP_REG of int
+ | XCORE_OP_IMM of int
+ | XCORE_OP_MEM of xcore_op_mem
+
+type xcore_op = {
+ value: xcore_op_value;
+}
+
+type cs_xcore = {
+ operands: xcore_op array;
+}
+
diff --git a/capstone/bindings/ocaml/xcore_const.ml b/capstone/bindings/ocaml/xcore_const.ml
new file mode 100644
index 000000000..f32dd4ae4
--- /dev/null
+++ b/capstone/bindings/ocaml/xcore_const.ml
@@ -0,0 +1,161 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [xcore_const.ml] *)
+
+let _XCORE_OP_INVALID = 0;;
+let _XCORE_OP_REG = 1;;
+let _XCORE_OP_IMM = 2;;
+let _XCORE_OP_MEM = 3;;
+
+let _XCORE_REG_INVALID = 0;;
+let _XCORE_REG_CP = 1;;
+let _XCORE_REG_DP = 2;;
+let _XCORE_REG_LR = 3;;
+let _XCORE_REG_SP = 4;;
+let _XCORE_REG_R0 = 5;;
+let _XCORE_REG_R1 = 6;;
+let _XCORE_REG_R2 = 7;;
+let _XCORE_REG_R3 = 8;;
+let _XCORE_REG_R4 = 9;;
+let _XCORE_REG_R5 = 10;;
+let _XCORE_REG_R6 = 11;;
+let _XCORE_REG_R7 = 12;;
+let _XCORE_REG_R8 = 13;;
+let _XCORE_REG_R9 = 14;;
+let _XCORE_REG_R10 = 15;;
+let _XCORE_REG_R11 = 16;;
+let _XCORE_REG_PC = 17;;
+let _XCORE_REG_SCP = 18;;
+let _XCORE_REG_SSR = 19;;
+let _XCORE_REG_ET = 20;;
+let _XCORE_REG_ED = 21;;
+let _XCORE_REG_SED = 22;;
+let _XCORE_REG_KEP = 23;;
+let _XCORE_REG_KSP = 24;;
+let _XCORE_REG_ID = 25;;
+let _XCORE_REG_ENDING = 26;;
+
+let _XCORE_INS_INVALID = 0;;
+let _XCORE_INS_ADD = 1;;
+let _XCORE_INS_ANDNOT = 2;;
+let _XCORE_INS_AND = 3;;
+let _XCORE_INS_ASHR = 4;;
+let _XCORE_INS_BAU = 5;;
+let _XCORE_INS_BITREV = 6;;
+let _XCORE_INS_BLA = 7;;
+let _XCORE_INS_BLAT = 8;;
+let _XCORE_INS_BL = 9;;
+let _XCORE_INS_BF = 10;;
+let _XCORE_INS_BT = 11;;
+let _XCORE_INS_BU = 12;;
+let _XCORE_INS_BRU = 13;;
+let _XCORE_INS_BYTEREV = 14;;
+let _XCORE_INS_CHKCT = 15;;
+let _XCORE_INS_CLRE = 16;;
+let _XCORE_INS_CLRPT = 17;;
+let _XCORE_INS_CLRSR = 18;;
+let _XCORE_INS_CLZ = 19;;
+let _XCORE_INS_CRC8 = 20;;
+let _XCORE_INS_CRC32 = 21;;
+let _XCORE_INS_DCALL = 22;;
+let _XCORE_INS_DENTSP = 23;;
+let _XCORE_INS_DGETREG = 24;;
+let _XCORE_INS_DIVS = 25;;
+let _XCORE_INS_DIVU = 26;;
+let _XCORE_INS_DRESTSP = 27;;
+let _XCORE_INS_DRET = 28;;
+let _XCORE_INS_ECALLF = 29;;
+let _XCORE_INS_ECALLT = 30;;
+let _XCORE_INS_EDU = 31;;
+let _XCORE_INS_EEF = 32;;
+let _XCORE_INS_EET = 33;;
+let _XCORE_INS_EEU = 34;;
+let _XCORE_INS_ENDIN = 35;;
+let _XCORE_INS_ENTSP = 36;;
+let _XCORE_INS_EQ = 37;;
+let _XCORE_INS_EXTDP = 38;;
+let _XCORE_INS_EXTSP = 39;;
+let _XCORE_INS_FREER = 40;;
+let _XCORE_INS_FREET = 41;;
+let _XCORE_INS_GETD = 42;;
+let _XCORE_INS_GET = 43;;
+let _XCORE_INS_GETN = 44;;
+let _XCORE_INS_GETR = 45;;
+let _XCORE_INS_GETSR = 46;;
+let _XCORE_INS_GETST = 47;;
+let _XCORE_INS_GETTS = 48;;
+let _XCORE_INS_INCT = 49;;
+let _XCORE_INS_INIT = 50;;
+let _XCORE_INS_INPW = 51;;
+let _XCORE_INS_INSHR = 52;;
+let _XCORE_INS_INT = 53;;
+let _XCORE_INS_IN = 54;;
+let _XCORE_INS_KCALL = 55;;
+let _XCORE_INS_KENTSP = 56;;
+let _XCORE_INS_KRESTSP = 57;;
+let _XCORE_INS_KRET = 58;;
+let _XCORE_INS_LADD = 59;;
+let _XCORE_INS_LD16S = 60;;
+let _XCORE_INS_LD8U = 61;;
+let _XCORE_INS_LDA16 = 62;;
+let _XCORE_INS_LDAP = 63;;
+let _XCORE_INS_LDAW = 64;;
+let _XCORE_INS_LDC = 65;;
+let _XCORE_INS_LDW = 66;;
+let _XCORE_INS_LDIVU = 67;;
+let _XCORE_INS_LMUL = 68;;
+let _XCORE_INS_LSS = 69;;
+let _XCORE_INS_LSUB = 70;;
+let _XCORE_INS_LSU = 71;;
+let _XCORE_INS_MACCS = 72;;
+let _XCORE_INS_MACCU = 73;;
+let _XCORE_INS_MJOIN = 74;;
+let _XCORE_INS_MKMSK = 75;;
+let _XCORE_INS_MSYNC = 76;;
+let _XCORE_INS_MUL = 77;;
+let _XCORE_INS_NEG = 78;;
+let _XCORE_INS_NOT = 79;;
+let _XCORE_INS_OR = 80;;
+let _XCORE_INS_OUTCT = 81;;
+let _XCORE_INS_OUTPW = 82;;
+let _XCORE_INS_OUTSHR = 83;;
+let _XCORE_INS_OUTT = 84;;
+let _XCORE_INS_OUT = 85;;
+let _XCORE_INS_PEEK = 86;;
+let _XCORE_INS_REMS = 87;;
+let _XCORE_INS_REMU = 88;;
+let _XCORE_INS_RETSP = 89;;
+let _XCORE_INS_SETCLK = 90;;
+let _XCORE_INS_SET = 91;;
+let _XCORE_INS_SETC = 92;;
+let _XCORE_INS_SETD = 93;;
+let _XCORE_INS_SETEV = 94;;
+let _XCORE_INS_SETN = 95;;
+let _XCORE_INS_SETPSC = 96;;
+let _XCORE_INS_SETPT = 97;;
+let _XCORE_INS_SETRDY = 98;;
+let _XCORE_INS_SETSR = 99;;
+let _XCORE_INS_SETTW = 100;;
+let _XCORE_INS_SETV = 101;;
+let _XCORE_INS_SEXT = 102;;
+let _XCORE_INS_SHL = 103;;
+let _XCORE_INS_SHR = 104;;
+let _XCORE_INS_SSYNC = 105;;
+let _XCORE_INS_ST16 = 106;;
+let _XCORE_INS_ST8 = 107;;
+let _XCORE_INS_STW = 108;;
+let _XCORE_INS_SUB = 109;;
+let _XCORE_INS_SYNCR = 110;;
+let _XCORE_INS_TESTCT = 111;;
+let _XCORE_INS_TESTLCL = 112;;
+let _XCORE_INS_TESTWCT = 113;;
+let _XCORE_INS_TSETMR = 114;;
+let _XCORE_INS_START = 115;;
+let _XCORE_INS_WAITEF = 116;;
+let _XCORE_INS_WAITET = 117;;
+let _XCORE_INS_WAITEU = 118;;
+let _XCORE_INS_XOR = 119;;
+let _XCORE_INS_ZEXT = 120;;
+let _XCORE_INS_ENDING = 121;;
+
+let _XCORE_GRP_INVALID = 0;;
+let _XCORE_GRP_JUMP = 1;;
+let _XCORE_GRP_ENDING = 2;;