ocaml: separate constants into separate files, which are actually autogen by const_generator.py
diff --git a/bindings/Makefile b/bindings/Makefile
index a597c8d..e742b4f 100644
--- a/bindings/Makefile
+++ b/bindings/Makefile
@@ -17,6 +17,7 @@
 all:
 	cd python && $(MAKE) gen_const
 	cd java && $(MAKE) gen_const
+	cd ocaml && $(MAKE) gen_const
 
 tests: expected python java #oclma ruby
 
@@ -79,5 +80,6 @@
 	rm -rf $(TMPDIR)
 	cd java && $(MAKE) clean
 	cd python && $(MAKE) clean
+	cd ocaml && $(MAKE) clean
 
 FORCE:
diff --git a/bindings/const_generator.py b/bindings/const_generator.py
index db6c9f8..40c9071 100644
--- a/bindings/const_generator.py
+++ b/bindings/const_generator.py
@@ -41,7 +41,24 @@
             'xcore.h': 'xcore',
             'comment_open': '#',
             'comment_close': '',
-        }
+        },
+    'ocaml': {
+            'header': "(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [%s_const.ml] *)\n",
+            'footer': "",
+            'line_format': 'let _%s = %s;;\n',
+            'out_file': './ocaml/%s_const.ml',
+            # prefixes for constant filenames of all archs - case sensitive
+            'arm.h': 'arm',
+            'arm64.h': 'arm64',
+            'mips.h': 'mips',
+            'x86.h': 'x86',
+            'ppc.h': 'ppc',
+            'sparc.h': 'sparc',
+            'systemz.h': 'sysz',
+            'xcore.h': 'xcore',
+            'comment_open': '(*',
+            'comment_close': ' *)',
+        },
 }
 
 # markup for comments to be added to autogen files
@@ -107,6 +124,6 @@
 
 if __name__ == "__main__":
     if len(sys.argv) < 2:
-        print("Usage:", sys.argv[0], " <bindings: java|python>")
+        print("Usage:", sys.argv[0], " <bindings: java|python|ocaml>")
         sys.exit(1)
     main()
diff --git a/bindings/ocaml/Makefile b/bindings/ocaml/Makefile
index 664c37f..88c571e 100644
--- a/bindings/ocaml/Makefile
+++ b/bindings/ocaml/Makefile
@@ -4,17 +4,17 @@
 LIB = capstone
 FLAGS = '-Wall -Wextra -Wwrite-strings'
 
-all: arm.cmxa arm64.cmxa mips.cmxa ppc.cmxa x86.cmxa sparc.cmxa systemz.cmxa xcore.cmxa capstone.cmxa test.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 ocaml.o
+all: arm_const.cmxa arm64_const.cmxa mips_const.cmxa ppc_const.cmxa sparc_const.cmxa sysz_const.cmxa x86_const.cmxa xcore_const.cmxa arm.cmxa arm64.cmxa mips.cmxa ppc.cmxa x86.cmxa sparc.cmxa systemz.cmxa xcore.cmxa capstone.cmxa test.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 ocaml.o
 	ocamlopt -o test -ccopt $(FLAGS) ocaml.o capstone.cmx test.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 test_x86.cmx -cclib -l$(LIB)
-	ocamlopt -o test_arm -ccopt $(FLAGS) capstone.cmx ocaml.o arm.cmx test_arm.cmx -cclib -l$(LIB)
-	ocamlopt -o test_arm64 -ccopt $(FLAGS) capstone.cmx ocaml.o arm64.cmx test_arm64.cmx -cclib -l$(LIB)
-	ocamlopt -o test_mips -ccopt $(FLAGS) capstone.cmx ocaml.o mips.cmx test_mips.cmx -cclib -l$(LIB)
-	ocamlopt -o test_ppc -ccopt $(FLAGS) capstone.cmx ocaml.o ppc.cmx test_ppc.cmx -cclib -l$(LIB)
-	ocamlopt -o test_sparc -ccopt $(FLAGS) capstone.cmx ocaml.o sparc.cmx test_sparc.cmx -cclib -l$(LIB)
-	ocamlopt -o test_systemz -ccopt $(FLAGS) capstone.cmx ocaml.o systemz.cmx test_systemz.cmx -cclib -l$(LIB)
-	ocamlopt -o test_xcore -ccopt $(FLAGS) capstone.cmx ocaml.o xcore.cmx test_xcore.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)
 
 
 test.cmx: test.ml
@@ -74,6 +74,18 @@
 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 $< > $@
 
@@ -86,6 +98,18 @@
 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 $< > $@
 
@@ -98,6 +122,18 @@
 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 $@ $<
+
 mips.mli: mips.ml
 	ocamlc -ccopt $(FLAGS) -i $< > $@
 
@@ -110,6 +146,18 @@
 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 $< > $@
 
@@ -122,6 +170,18 @@
 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 $< > $@
 
@@ -134,6 +194,18 @@
 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 $< > $@
 
@@ -146,6 +218,18 @@
 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 $< > $@
 
@@ -158,6 +242,21 @@
 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 test_detail test_x86 test_arm test_arm64 test_mips test_ppc test_sparc test_systemz test_xcore
 
+gen_const:
+	cd .. && python const_generator.py ocaml
+
diff --git a/bindings/ocaml/arm.ml b/bindings/ocaml/arm.ml
index 646bb6d..399bf1d 100644
--- a/bindings/ocaml/arm.ml
+++ b/bindings/ocaml/arm.ml
@@ -1,40 +1,12 @@
 (* Capstone Disassembler Engine
  * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> *)
 
+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 *)
 
-(* ARM operand shift type *)
-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;;
-
-(* ARM code condition type *)
-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;;
 
 (* architecture specific info of instruction *)
 type arm_op_shift = {
@@ -70,600 +42,3 @@
 	op_count: int;
 	operands: arm_op array;
 }
-
-(*  Operand type for instruction's operands *)
-let _ARM_OP_INVALID = 0;;
-let _ARM_OP_REG = 1;;
-let _ARM_OP_CIMM = 2;;
-let _ARM_OP_PIMM = 3;;
-let _ARM_OP_IMM = 4;;
-let _ARM_OP_FP = 5;;
-let _ARM_OP_MEM = 6;;
-
-(* ARM registers *)
-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_MAX = 111;;
-
-(*  alias registers *)
-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;;
-
-(* ARM instructions *)
-let _ARM_INS_INVALID = 0;;
-let _ARM_INS_ADC = 1;;
-let _ARM_INS_ADD = 2;;
-let _ARM_INS_ADR = 3;;
-let _ARM_INS_AESD = 4;;
-let _ARM_INS_AESE = 5;;
-let _ARM_INS_AESIMC = 6;;
-let _ARM_INS_AESMC = 7;;
-let _ARM_INS_AND = 8;;
-let _ARM_INS_BFC = 9;;
-let _ARM_INS_BFI = 10;;
-let _ARM_INS_BIC = 11;;
-let _ARM_INS_BKPT = 12;;
-let _ARM_INS_BL = 13;;
-let _ARM_INS_BLX = 14;;
-let _ARM_INS_BX = 15;;
-let _ARM_INS_BXJ = 16;;
-let _ARM_INS_B = 17;;
-let _ARM_INS_CDP = 18;;
-let _ARM_INS_CDP2 = 19;;
-let _ARM_INS_CLREX = 20;;
-let _ARM_INS_CLZ = 21;;
-let _ARM_INS_CMN = 22;;
-let _ARM_INS_CMP = 23;;
-let _ARM_INS_CPS = 24;;
-let _ARM_INS_CRC32B = 25;;
-let _ARM_INS_CRC32CB = 26;;
-let _ARM_INS_CRC32CH = 27;;
-let _ARM_INS_CRC32CW = 28;;
-let _ARM_INS_CRC32H = 29;;
-let _ARM_INS_CRC32W = 30;;
-let _ARM_INS_DBG = 31;;
-let _ARM_INS_DMB = 32;;
-let _ARM_INS_DSB = 33;;
-let _ARM_INS_EOR = 34;;
-let _ARM_INS_VMOV = 35;;
-let _ARM_INS_FLDMDBX = 36;;
-let _ARM_INS_FLDMIAX = 37;;
-let _ARM_INS_VMRS = 38;;
-let _ARM_INS_FSTMDBX = 39;;
-let _ARM_INS_FSTMIAX = 40;;
-let _ARM_INS_HINT = 41;;
-let _ARM_INS_HLT = 42;;
-let _ARM_INS_ISB = 43;;
-let _ARM_INS_LDA = 44;;
-let _ARM_INS_LDAB = 45;;
-let _ARM_INS_LDAEX = 46;;
-let _ARM_INS_LDAEXB = 47;;
-let _ARM_INS_LDAEXD = 48;;
-let _ARM_INS_LDAEXH = 49;;
-let _ARM_INS_LDAH = 50;;
-let _ARM_INS_LDC2L = 51;;
-let _ARM_INS_LDC2 = 52;;
-let _ARM_INS_LDCL = 53;;
-let _ARM_INS_LDC = 54;;
-let _ARM_INS_LDMDA = 55;;
-let _ARM_INS_LDMDB = 56;;
-let _ARM_INS_LDM = 57;;
-let _ARM_INS_LDMIB = 58;;
-let _ARM_INS_LDRBT = 59;;
-let _ARM_INS_LDRB = 60;;
-let _ARM_INS_LDRD = 61;;
-let _ARM_INS_LDREX = 62;;
-let _ARM_INS_LDREXB = 63;;
-let _ARM_INS_LDREXD = 64;;
-let _ARM_INS_LDREXH = 65;;
-let _ARM_INS_LDRH = 66;;
-let _ARM_INS_LDRHT = 67;;
-let _ARM_INS_LDRSB = 68;;
-let _ARM_INS_LDRSBT = 69;;
-let _ARM_INS_LDRSH = 70;;
-let _ARM_INS_LDRSHT = 71;;
-let _ARM_INS_LDRT = 72;;
-let _ARM_INS_LDR = 73;;
-let _ARM_INS_MCR = 74;;
-let _ARM_INS_MCR2 = 75;;
-let _ARM_INS_MCRR = 76;;
-let _ARM_INS_MCRR2 = 77;;
-let _ARM_INS_MLA = 78;;
-let _ARM_INS_MLS = 79;;
-let _ARM_INS_MOV = 80;;
-let _ARM_INS_MOVT = 81;;
-let _ARM_INS_MOVW = 82;;
-let _ARM_INS_MRC = 83;;
-let _ARM_INS_MRC2 = 84;;
-let _ARM_INS_MRRC = 85;;
-let _ARM_INS_MRRC2 = 86;;
-let _ARM_INS_MRS = 87;;
-let _ARM_INS_MSR = 88;;
-let _ARM_INS_MUL = 89;;
-let _ARM_INS_MVN = 90;;
-let _ARM_INS_ORR = 91;;
-let _ARM_INS_PKHBT = 92;;
-let _ARM_INS_PKHTB = 93;;
-let _ARM_INS_PLDW = 94;;
-let _ARM_INS_PLD = 95;;
-let _ARM_INS_PLI = 96;;
-let _ARM_INS_QADD = 97;;
-let _ARM_INS_QADD16 = 98;;
-let _ARM_INS_QADD8 = 99;;
-let _ARM_INS_QASX = 100;;
-let _ARM_INS_QDADD = 101;;
-let _ARM_INS_QDSUB = 102;;
-let _ARM_INS_QSAX = 103;;
-let _ARM_INS_QSUB = 104;;
-let _ARM_INS_QSUB16 = 105;;
-let _ARM_INS_QSUB8 = 106;;
-let _ARM_INS_RBIT = 107;;
-let _ARM_INS_REV = 108;;
-let _ARM_INS_REV16 = 109;;
-let _ARM_INS_REVSH = 110;;
-let _ARM_INS_RFEDA = 111;;
-let _ARM_INS_RFEDB = 112;;
-let _ARM_INS_RFEIA = 113;;
-let _ARM_INS_RFEIB = 114;;
-let _ARM_INS_RSB = 115;;
-let _ARM_INS_RSC = 116;;
-let _ARM_INS_SADD16 = 117;;
-let _ARM_INS_SADD8 = 118;;
-let _ARM_INS_SASX = 119;;
-let _ARM_INS_SBC = 120;;
-let _ARM_INS_SBFX = 121;;
-let _ARM_INS_SDIV = 122;;
-let _ARM_INS_SEL = 123;;
-let _ARM_INS_SETEND = 124;;
-let _ARM_INS_SHA1C = 125;;
-let _ARM_INS_SHA1H = 126;;
-let _ARM_INS_SHA1M = 127;;
-let _ARM_INS_SHA1P = 128;;
-let _ARM_INS_SHA1SU0 = 129;;
-let _ARM_INS_SHA1SU1 = 130;;
-let _ARM_INS_SHA256H = 131;;
-let _ARM_INS_SHA256H2 = 132;;
-let _ARM_INS_SHA256SU0 = 133;;
-let _ARM_INS_SHA256SU1 = 134;;
-let _ARM_INS_SHADD16 = 135;;
-let _ARM_INS_SHADD8 = 136;;
-let _ARM_INS_SHASX = 137;;
-let _ARM_INS_SHSAX = 138;;
-let _ARM_INS_SHSUB16 = 139;;
-let _ARM_INS_SHSUB8 = 140;;
-let _ARM_INS_SMC = 141;;
-let _ARM_INS_SMLABB = 142;;
-let _ARM_INS_SMLABT = 143;;
-let _ARM_INS_SMLAD = 144;;
-let _ARM_INS_SMLADX = 145;;
-let _ARM_INS_SMLAL = 146;;
-let _ARM_INS_SMLALBB = 147;;
-let _ARM_INS_SMLALBT = 148;;
-let _ARM_INS_SMLALD = 149;;
-let _ARM_INS_SMLALDX = 150;;
-let _ARM_INS_SMLALTB = 151;;
-let _ARM_INS_SMLALTT = 152;;
-let _ARM_INS_SMLATB = 153;;
-let _ARM_INS_SMLATT = 154;;
-let _ARM_INS_SMLAWB = 155;;
-let _ARM_INS_SMLAWT = 156;;
-let _ARM_INS_SMLSD = 157;;
-let _ARM_INS_SMLSDX = 158;;
-let _ARM_INS_SMLSLD = 159;;
-let _ARM_INS_SMLSLDX = 160;;
-let _ARM_INS_SMMLA = 161;;
-let _ARM_INS_SMMLAR = 162;;
-let _ARM_INS_SMMLS = 163;;
-let _ARM_INS_SMMLSR = 164;;
-let _ARM_INS_SMMUL = 165;;
-let _ARM_INS_SMMULR = 166;;
-let _ARM_INS_SMUAD = 167;;
-let _ARM_INS_SMUADX = 168;;
-let _ARM_INS_SMULBB = 169;;
-let _ARM_INS_SMULBT = 170;;
-let _ARM_INS_SMULL = 171;;
-let _ARM_INS_SMULTB = 172;;
-let _ARM_INS_SMULTT = 173;;
-let _ARM_INS_SMULWB = 174;;
-let _ARM_INS_SMULWT = 175;;
-let _ARM_INS_SMUSD = 176;;
-let _ARM_INS_SMUSDX = 177;;
-let _ARM_INS_SRSDA = 178;;
-let _ARM_INS_SRSDB = 179;;
-let _ARM_INS_SRSIA = 180;;
-let _ARM_INS_SRSIB = 181;;
-let _ARM_INS_SSAT = 182;;
-let _ARM_INS_SSAT16 = 183;;
-let _ARM_INS_SSAX = 184;;
-let _ARM_INS_SSUB16 = 185;;
-let _ARM_INS_SSUB8 = 186;;
-let _ARM_INS_STC2L = 187;;
-let _ARM_INS_STC2 = 188;;
-let _ARM_INS_STCL = 189;;
-let _ARM_INS_STC = 190;;
-let _ARM_INS_STL = 191;;
-let _ARM_INS_STLB = 192;;
-let _ARM_INS_STLEX = 193;;
-let _ARM_INS_STLEXB = 194;;
-let _ARM_INS_STLEXD = 195;;
-let _ARM_INS_STLEXH = 196;;
-let _ARM_INS_STLH = 197;;
-let _ARM_INS_STMDA = 198;;
-let _ARM_INS_STMDB = 199;;
-let _ARM_INS_STM = 200;;
-let _ARM_INS_STMIB = 201;;
-let _ARM_INS_STRBT = 202;;
-let _ARM_INS_STRB = 203;;
-let _ARM_INS_STRD = 204;;
-let _ARM_INS_STREX = 205;;
-let _ARM_INS_STREXB = 206;;
-let _ARM_INS_STREXD = 207;;
-let _ARM_INS_STREXH = 208;;
-let _ARM_INS_STRH = 209;;
-let _ARM_INS_STRHT = 210;;
-let _ARM_INS_STRT = 211;;
-let _ARM_INS_STR = 212;;
-let _ARM_INS_SUB = 213;;
-let _ARM_INS_SVC = 214;;
-let _ARM_INS_SWP = 215;;
-let _ARM_INS_SWPB = 216;;
-let _ARM_INS_SXTAB = 217;;
-let _ARM_INS_SXTAB16 = 218;;
-let _ARM_INS_SXTAH = 219;;
-let _ARM_INS_SXTB = 220;;
-let _ARM_INS_SXTB16 = 221;;
-let _ARM_INS_SXTH = 222;;
-let _ARM_INS_TEQ = 223;;
-let _ARM_INS_TRAP = 224;;
-let _ARM_INS_TST = 225;;
-let _ARM_INS_UADD16 = 226;;
-let _ARM_INS_UADD8 = 227;;
-let _ARM_INS_UASX = 228;;
-let _ARM_INS_UBFX = 229;;
-let _ARM_INS_UDIV = 230;;
-let _ARM_INS_UHADD16 = 231;;
-let _ARM_INS_UHADD8 = 232;;
-let _ARM_INS_UHASX = 233;;
-let _ARM_INS_UHSAX = 234;;
-let _ARM_INS_UHSUB16 = 235;;
-let _ARM_INS_UHSUB8 = 236;;
-let _ARM_INS_UMAAL = 237;;
-let _ARM_INS_UMLAL = 238;;
-let _ARM_INS_UMULL = 239;;
-let _ARM_INS_UQADD16 = 240;;
-let _ARM_INS_UQADD8 = 241;;
-let _ARM_INS_UQASX = 242;;
-let _ARM_INS_UQSAX = 243;;
-let _ARM_INS_UQSUB16 = 244;;
-let _ARM_INS_UQSUB8 = 245;;
-let _ARM_INS_USAD8 = 246;;
-let _ARM_INS_USADA8 = 247;;
-let _ARM_INS_USAT = 248;;
-let _ARM_INS_USAT16 = 249;;
-let _ARM_INS_USAX = 250;;
-let _ARM_INS_USUB16 = 251;;
-let _ARM_INS_USUB8 = 252;;
-let _ARM_INS_UXTAB = 253;;
-let _ARM_INS_UXTAB16 = 254;;
-let _ARM_INS_UXTAH = 255;;
-let _ARM_INS_UXTB = 256;;
-let _ARM_INS_UXTB16 = 257;;
-let _ARM_INS_UXTH = 258;;
-let _ARM_INS_VABAL = 259;;
-let _ARM_INS_VABA = 260;;
-let _ARM_INS_VABDL = 261;;
-let _ARM_INS_VABD = 262;;
-let _ARM_INS_VABS = 263;;
-let _ARM_INS_VACGE = 264;;
-let _ARM_INS_VACGT = 265;;
-let _ARM_INS_VADD = 266;;
-let _ARM_INS_VADDHN = 267;;
-let _ARM_INS_VADDL = 268;;
-let _ARM_INS_VADDW = 269;;
-let _ARM_INS_VAND = 270;;
-let _ARM_INS_VBIC = 271;;
-let _ARM_INS_VBIF = 272;;
-let _ARM_INS_VBIT = 273;;
-let _ARM_INS_VBSL = 274;;
-let _ARM_INS_VCEQ = 275;;
-let _ARM_INS_VCGE = 276;;
-let _ARM_INS_VCGT = 277;;
-let _ARM_INS_VCLE = 278;;
-let _ARM_INS_VCLS = 279;;
-let _ARM_INS_VCLT = 280;;
-let _ARM_INS_VCLZ = 281;;
-let _ARM_INS_VCMP = 282;;
-let _ARM_INS_VCMPE = 283;;
-let _ARM_INS_VCNT = 284;;
-let _ARM_INS_VCVTA = 285;;
-let _ARM_INS_VCVTB = 286;;
-let _ARM_INS_VCVT = 287;;
-let _ARM_INS_VCVTM = 288;;
-let _ARM_INS_VCVTN = 289;;
-let _ARM_INS_VCVTP = 290;;
-let _ARM_INS_VCVTT = 291;;
-let _ARM_INS_VDIV = 292;;
-let _ARM_INS_VDUP = 293;;
-let _ARM_INS_VEOR = 294;;
-let _ARM_INS_VEXT = 295;;
-let _ARM_INS_VFMA = 296;;
-let _ARM_INS_VFMS = 297;;
-let _ARM_INS_VFNMA = 298;;
-let _ARM_INS_VFNMS = 299;;
-let _ARM_INS_VHADD = 300;;
-let _ARM_INS_VHSUB = 301;;
-let _ARM_INS_VLD1 = 302;;
-let _ARM_INS_VLD2 = 303;;
-let _ARM_INS_VLD3 = 304;;
-let _ARM_INS_VLD4 = 305;;
-let _ARM_INS_VLDMDB = 306;;
-let _ARM_INS_VLDMIA = 307;;
-let _ARM_INS_VLDR = 308;;
-let _ARM_INS_VMAXNM = 309;;
-let _ARM_INS_VMAX = 310;;
-let _ARM_INS_VMINNM = 311;;
-let _ARM_INS_VMIN = 312;;
-let _ARM_INS_VMLA = 313;;
-let _ARM_INS_VMLAL = 314;;
-let _ARM_INS_VMLS = 315;;
-let _ARM_INS_VMLSL = 316;;
-let _ARM_INS_VMOVL = 317;;
-let _ARM_INS_VMOVN = 318;;
-let _ARM_INS_VMSR = 319;;
-let _ARM_INS_VMUL = 320;;
-let _ARM_INS_VMULL = 321;;
-let _ARM_INS_VMVN = 322;;
-let _ARM_INS_VNEG = 323;;
-let _ARM_INS_VNMLA = 324;;
-let _ARM_INS_VNMLS = 325;;
-let _ARM_INS_VNMUL = 326;;
-let _ARM_INS_VORN = 327;;
-let _ARM_INS_VORR = 328;;
-let _ARM_INS_VPADAL = 329;;
-let _ARM_INS_VPADDL = 330;;
-let _ARM_INS_VPADD = 331;;
-let _ARM_INS_VPMAX = 332;;
-let _ARM_INS_VPMIN = 333;;
-let _ARM_INS_VQABS = 334;;
-let _ARM_INS_VQADD = 335;;
-let _ARM_INS_VQDMLAL = 336;;
-let _ARM_INS_VQDMLSL = 337;;
-let _ARM_INS_VQDMULH = 338;;
-let _ARM_INS_VQDMULL = 339;;
-let _ARM_INS_VQMOVUN = 340;;
-let _ARM_INS_VQMOVN = 341;;
-let _ARM_INS_VQNEG = 342;;
-let _ARM_INS_VQRDMULH = 343;;
-let _ARM_INS_VQRSHL = 344;;
-let _ARM_INS_VQRSHRN = 345;;
-let _ARM_INS_VQRSHRUN = 346;;
-let _ARM_INS_VQSHL = 347;;
-let _ARM_INS_VQSHLU = 348;;
-let _ARM_INS_VQSHRN = 349;;
-let _ARM_INS_VQSHRUN = 350;;
-let _ARM_INS_VQSUB = 351;;
-let _ARM_INS_VRADDHN = 352;;
-let _ARM_INS_VRECPE = 353;;
-let _ARM_INS_VRECPS = 354;;
-let _ARM_INS_VREV16 = 355;;
-let _ARM_INS_VREV32 = 356;;
-let _ARM_INS_VREV64 = 357;;
-let _ARM_INS_VRHADD = 358;;
-let _ARM_INS_VRINTA = 359;;
-let _ARM_INS_VRINTM = 360;;
-let _ARM_INS_VRINTN = 361;;
-let _ARM_INS_VRINTP = 362;;
-let _ARM_INS_VRINTR = 363;;
-let _ARM_INS_VRINTX = 364;;
-let _ARM_INS_VRINTZ = 365;;
-let _ARM_INS_VRSHL = 366;;
-let _ARM_INS_VRSHRN = 367;;
-let _ARM_INS_VRSHR = 368;;
-let _ARM_INS_VRSQRTE = 369;;
-let _ARM_INS_VRSQRTS = 370;;
-let _ARM_INS_VRSRA = 371;;
-let _ARM_INS_VRSUBHN = 372;;
-let _ARM_INS_VSELEQ = 373;;
-let _ARM_INS_VSELGE = 374;;
-let _ARM_INS_VSELGT = 375;;
-let _ARM_INS_VSELVS = 376;;
-let _ARM_INS_VSHLL = 377;;
-let _ARM_INS_VSHL = 378;;
-let _ARM_INS_VSHRN = 379;;
-let _ARM_INS_VSHR = 380;;
-let _ARM_INS_VSLI = 381;;
-let _ARM_INS_VSQRT = 382;;
-let _ARM_INS_VSRA = 383;;
-let _ARM_INS_VSRI = 384;;
-let _ARM_INS_VST1 = 385;;
-let _ARM_INS_VST2 = 386;;
-let _ARM_INS_VST3 = 387;;
-let _ARM_INS_VST4 = 388;;
-let _ARM_INS_VSTMDB = 389;;
-let _ARM_INS_VSTMIA = 390;;
-let _ARM_INS_VSTR = 391;;
-let _ARM_INS_VSUB = 392;;
-let _ARM_INS_VSUBHN = 393;;
-let _ARM_INS_VSUBL = 394;;
-let _ARM_INS_VSUBW = 395;;
-let _ARM_INS_VSWP = 396;;
-let _ARM_INS_VTBL = 397;;
-let _ARM_INS_VTBX = 398;;
-let _ARM_INS_VCVTR = 399;;
-let _ARM_INS_VTRN = 400;;
-let _ARM_INS_VTST = 401;;
-let _ARM_INS_VUZP = 402;;
-let _ARM_INS_VZIP = 403;;
-let _ARM_INS_ADDW = 404;;
-let _ARM_INS_ASR = 405;;
-let _ARM_INS_DCPS1 = 406;;
-let _ARM_INS_DCPS2 = 407;;
-let _ARM_INS_DCPS3 = 408;;
-let _ARM_INS_IT = 409;;
-let _ARM_INS_LSL = 410;;
-let _ARM_INS_LSR = 411;;
-let _ARM_INS_ASRS = 412;;
-let _ARM_INS_LSRS = 413;;
-let _ARM_INS_ORN = 414;;
-let _ARM_INS_ROR = 415;;
-let _ARM_INS_RRX = 416;;
-let _ARM_INS_SUBS = 417;;
-let _ARM_INS_SUBW = 418;;
-let _ARM_INS_TBB = 419;;
-let _ARM_INS_TBH = 420;;
-let _ARM_INS_CBNZ = 421;;
-let _ARM_INS_CBZ = 422;;
-let _ARM_INS_MOVS = 423;;
-let _ARM_INS_POP = 424;;
-let _ARM_INS_PUSH = 425;;
-let _ARM_INS_MAX = 426;;
-
-(* ARM group of instructions *)
-let _ARM_GRP_INVALID = 0;;
-let _ARM_GRP_CRYPTO = 1;;
-let _ARM_GRP_DATABARRIER = 2;;
-let _ARM_GRP_DIVIDE = 3;;
-let _ARM_GRP_FPARMV8 = 4;;
-let _ARM_GRP_MULTPRO = 5;;
-let _ARM_GRP_NEON = 6;;
-let _ARM_GRP_T2EXTRACTPACK = 7;;
-let _ARM_GRP_THUMB2DSP = 8;;
-let _ARM_GRP_TRUSTZONE = 9;;
-let _ARM_GRP_V4T = 10;;
-let _ARM_GRP_V5T = 11;;
-let _ARM_GRP_V5TE = 12;;
-let _ARM_GRP_V6 = 13;;
-let _ARM_GRP_V6T2 = 14;;
-let _ARM_GRP_V7 = 15;;
-let _ARM_GRP_V8 = 16;;
-let _ARM_GRP_VFP2 = 17;;
-let _ARM_GRP_VFP3 = 18;;
-let _ARM_GRP_VFP4 = 19;;
-let _ARM_GRP_ARM = 20;;
-let _ARM_GRP_MCLASS = 21;;
-let _ARM_GRP_NOTMCLASS = 22;;
-let _ARM_GRP_THUMB = 23;;
-let _ARM_GRP_THUMB1ONLY = 24;;
-let _ARM_GRP_THUMB2 = 25;;
-let _ARM_GRP_PREV8 = 26;;
-let _ARM_GRP_FPVMLX = 27;;
-let _ARM_GRP_MULOPS = 28;;
-let _ARM_GRP_CRC = 29;;
-let _ARM_GRP_DPVFP = 30;;
-let _ARM_GRP_V6M = 31;;
-let _ARM_GRP_JUMP = 32;;
-let _ARM_GRP_MAX = 33;;
diff --git a/bindings/ocaml/arm64.ml b/bindings/ocaml/arm64.ml
index f41f242..ea5e800 100644
--- a/bindings/ocaml/arm64.ml
+++ b/bindings/ocaml/arm64.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> *)
 
+open Arm64_const
+
 (* architecture specific info of instruction *)
 type arm64_op_shift = {
 	shift_type: int;	(* TODO: covert this to pattern like arm_op_value? *)
@@ -34,743 +36,3 @@
 	op_count: int;
 	operands: arm64_op array;
 }
-
-(* ARM64 operand shift type *)
-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;;
-
-(* ARM64 extension type (for operands) *)
-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;;
-
-(* ARM64 code condition type *)
-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;;
-
-(*  Operand type for instruction's operands *)
-let _ARM64_OP_INVALID = 0;;
-let _ARM64_OP_REG = 1;;
-let _ARM64_OP_CIMM = 2;;
-let _ARM64_OP_IMM = 3;;
-let _ARM64_OP_FP = 4;;
-let _ARM64_OP_MEM = 5;;
-
-(* ARM registers *)
-let _ARM64_REG_INVALID = 0;;
-let _ARM64_REG_NZCV = 1;;
-let _ARM64_REG_WSP = 2;;
-let _ARM64_REG_WZR = 3;;
-let _ARM64_REG_SP = 4;;
-let _ARM64_REG_XZR = 5;;
-let _ARM64_REG_B0 = 6;;
-let _ARM64_REG_B1 = 7;;
-let _ARM64_REG_B2 = 8;;
-let _ARM64_REG_B3 = 9;;
-let _ARM64_REG_B4 = 10;;
-let _ARM64_REG_B5 = 11;;
-let _ARM64_REG_B6 = 12;;
-let _ARM64_REG_B7 = 13;;
-let _ARM64_REG_B8 = 14;;
-let _ARM64_REG_B9 = 15;;
-let _ARM64_REG_B10 = 16;;
-let _ARM64_REG_B11 = 17;;
-let _ARM64_REG_B12 = 18;;
-let _ARM64_REG_B13 = 19;;
-let _ARM64_REG_B14 = 20;;
-let _ARM64_REG_B15 = 21;;
-let _ARM64_REG_B16 = 22;;
-let _ARM64_REG_B17 = 23;;
-let _ARM64_REG_B18 = 24;;
-let _ARM64_REG_B19 = 25;;
-let _ARM64_REG_B20 = 26;;
-let _ARM64_REG_B21 = 27;;
-let _ARM64_REG_B22 = 28;;
-let _ARM64_REG_B23 = 29;;
-let _ARM64_REG_B24 = 30;;
-let _ARM64_REG_B25 = 31;;
-let _ARM64_REG_B26 = 32;;
-let _ARM64_REG_B27 = 33;;
-let _ARM64_REG_B28 = 34;;
-let _ARM64_REG_B29 = 35;;
-let _ARM64_REG_B30 = 36;;
-let _ARM64_REG_B31 = 37;;
-let _ARM64_REG_D0 = 38;;
-let _ARM64_REG_D1 = 39;;
-let _ARM64_REG_D2 = 40;;
-let _ARM64_REG_D3 = 41;;
-let _ARM64_REG_D4 = 42;;
-let _ARM64_REG_D5 = 43;;
-let _ARM64_REG_D6 = 44;;
-let _ARM64_REG_D7 = 45;;
-let _ARM64_REG_D8 = 46;;
-let _ARM64_REG_D9 = 47;;
-let _ARM64_REG_D10 = 48;;
-let _ARM64_REG_D11 = 49;;
-let _ARM64_REG_D12 = 50;;
-let _ARM64_REG_D13 = 51;;
-let _ARM64_REG_D14 = 52;;
-let _ARM64_REG_D15 = 53;;
-let _ARM64_REG_D16 = 54;;
-let _ARM64_REG_D17 = 55;;
-let _ARM64_REG_D18 = 56;;
-let _ARM64_REG_D19 = 57;;
-let _ARM64_REG_D20 = 58;;
-let _ARM64_REG_D21 = 59;;
-let _ARM64_REG_D22 = 60;;
-let _ARM64_REG_D23 = 61;;
-let _ARM64_REG_D24 = 62;;
-let _ARM64_REG_D25 = 63;;
-let _ARM64_REG_D26 = 64;;
-let _ARM64_REG_D27 = 65;;
-let _ARM64_REG_D28 = 66;;
-let _ARM64_REG_D29 = 67;;
-let _ARM64_REG_D30 = 68;;
-let _ARM64_REG_D31 = 69;;
-let _ARM64_REG_H0 = 70;;
-let _ARM64_REG_H1 = 71;;
-let _ARM64_REG_H2 = 72;;
-let _ARM64_REG_H3 = 73;;
-let _ARM64_REG_H4 = 74;;
-let _ARM64_REG_H5 = 75;;
-let _ARM64_REG_H6 = 76;;
-let _ARM64_REG_H7 = 77;;
-let _ARM64_REG_H8 = 78;;
-let _ARM64_REG_H9 = 79;;
-let _ARM64_REG_H10 = 80;;
-let _ARM64_REG_H11 = 81;;
-let _ARM64_REG_H12 = 82;;
-let _ARM64_REG_H13 = 83;;
-let _ARM64_REG_H14 = 84;;
-let _ARM64_REG_H15 = 85;;
-let _ARM64_REG_H16 = 86;;
-let _ARM64_REG_H17 = 87;;
-let _ARM64_REG_H18 = 88;;
-let _ARM64_REG_H19 = 89;;
-let _ARM64_REG_H20 = 90;;
-let _ARM64_REG_H21 = 91;;
-let _ARM64_REG_H22 = 92;;
-let _ARM64_REG_H23 = 93;;
-let _ARM64_REG_H24 = 94;;
-let _ARM64_REG_H25 = 95;;
-let _ARM64_REG_H26 = 96;;
-let _ARM64_REG_H27 = 97;;
-let _ARM64_REG_H28 = 98;;
-let _ARM64_REG_H29 = 99;;
-let _ARM64_REG_H30 = 100;;
-let _ARM64_REG_H31 = 101;;
-let _ARM64_REG_Q0 = 102;;
-let _ARM64_REG_Q1 = 103;;
-let _ARM64_REG_Q2 = 104;;
-let _ARM64_REG_Q3 = 105;;
-let _ARM64_REG_Q4 = 106;;
-let _ARM64_REG_Q5 = 107;;
-let _ARM64_REG_Q6 = 108;;
-let _ARM64_REG_Q7 = 109;;
-let _ARM64_REG_Q8 = 110;;
-let _ARM64_REG_Q9 = 111;;
-let _ARM64_REG_Q10 = 112;;
-let _ARM64_REG_Q11 = 113;;
-let _ARM64_REG_Q12 = 114;;
-let _ARM64_REG_Q13 = 115;;
-let _ARM64_REG_Q14 = 116;;
-let _ARM64_REG_Q15 = 117;;
-let _ARM64_REG_Q16 = 118;;
-let _ARM64_REG_Q17 = 119;;
-let _ARM64_REG_Q18 = 120;;
-let _ARM64_REG_Q19 = 121;;
-let _ARM64_REG_Q20 = 122;;
-let _ARM64_REG_Q21 = 123;;
-let _ARM64_REG_Q22 = 124;;
-let _ARM64_REG_Q23 = 125;;
-let _ARM64_REG_Q24 = 126;;
-let _ARM64_REG_Q25 = 127;;
-let _ARM64_REG_Q26 = 128;;
-let _ARM64_REG_Q27 = 129;;
-let _ARM64_REG_Q28 = 130;;
-let _ARM64_REG_Q29 = 131;;
-let _ARM64_REG_Q30 = 132;;
-let _ARM64_REG_Q31 = 133;;
-let _ARM64_REG_S0 = 134;;
-let _ARM64_REG_S1 = 135;;
-let _ARM64_REG_S2 = 136;;
-let _ARM64_REG_S3 = 137;;
-let _ARM64_REG_S4 = 138;;
-let _ARM64_REG_S5 = 139;;
-let _ARM64_REG_S6 = 140;;
-let _ARM64_REG_S7 = 141;;
-let _ARM64_REG_S8 = 142;;
-let _ARM64_REG_S9 = 143;;
-let _ARM64_REG_S10 = 144;;
-let _ARM64_REG_S11 = 145;;
-let _ARM64_REG_S12 = 146;;
-let _ARM64_REG_S13 = 147;;
-let _ARM64_REG_S14 = 148;;
-let _ARM64_REG_S15 = 149;;
-let _ARM64_REG_S16 = 150;;
-let _ARM64_REG_S17 = 151;;
-let _ARM64_REG_S18 = 152;;
-let _ARM64_REG_S19 = 153;;
-let _ARM64_REG_S20 = 154;;
-let _ARM64_REG_S21 = 155;;
-let _ARM64_REG_S22 = 156;;
-let _ARM64_REG_S23 = 157;;
-let _ARM64_REG_S24 = 158;;
-let _ARM64_REG_S25 = 159;;
-let _ARM64_REG_S26 = 160;;
-let _ARM64_REG_S27 = 161;;
-let _ARM64_REG_S28 = 162;;
-let _ARM64_REG_S29 = 163;;
-let _ARM64_REG_S30 = 164;;
-let _ARM64_REG_S31 = 165;;
-let _ARM64_REG_W0 = 166;;
-let _ARM64_REG_W1 = 167;;
-let _ARM64_REG_W2 = 168;;
-let _ARM64_REG_W3 = 169;;
-let _ARM64_REG_W4 = 170;;
-let _ARM64_REG_W5 = 171;;
-let _ARM64_REG_W6 = 172;;
-let _ARM64_REG_W7 = 173;;
-let _ARM64_REG_W8 = 174;;
-let _ARM64_REG_W9 = 175;;
-let _ARM64_REG_W10 = 176;;
-let _ARM64_REG_W11 = 177;;
-let _ARM64_REG_W12 = 178;;
-let _ARM64_REG_W13 = 179;;
-let _ARM64_REG_W14 = 180;;
-let _ARM64_REG_W15 = 181;;
-let _ARM64_REG_W16 = 182;;
-let _ARM64_REG_W17 = 183;;
-let _ARM64_REG_W18 = 184;;
-let _ARM64_REG_W19 = 185;;
-let _ARM64_REG_W20 = 186;;
-let _ARM64_REG_W21 = 187;;
-let _ARM64_REG_W22 = 188;;
-let _ARM64_REG_W23 = 189;;
-let _ARM64_REG_W24 = 190;;
-let _ARM64_REG_W25 = 191;;
-let _ARM64_REG_W26 = 192;;
-let _ARM64_REG_W27 = 193;;
-let _ARM64_REG_W28 = 194;;
-let _ARM64_REG_W29 = 195;;
-let _ARM64_REG_W30 = 196;;
-let _ARM64_REG_X0 = 197;;
-let _ARM64_REG_X1 = 198;;
-let _ARM64_REG_X2 = 199;;
-let _ARM64_REG_X3 = 200;;
-let _ARM64_REG_X4 = 201;;
-let _ARM64_REG_X5 = 202;;
-let _ARM64_REG_X6 = 203;;
-let _ARM64_REG_X7 = 204;;
-let _ARM64_REG_X8 = 205;;
-let _ARM64_REG_X9 = 206;;
-let _ARM64_REG_X10 = 207;;
-let _ARM64_REG_X11 = 208;;
-let _ARM64_REG_X12 = 209;;
-let _ARM64_REG_X13 = 210;;
-let _ARM64_REG_X14 = 211;;
-let _ARM64_REG_X15 = 212;;
-let _ARM64_REG_X16 = 213;;
-let _ARM64_REG_X17 = 214;;
-let _ARM64_REG_X18 = 215;;
-let _ARM64_REG_X19 = 216;;
-let _ARM64_REG_X20 = 217;;
-let _ARM64_REG_X21 = 218;;
-let _ARM64_REG_X22 = 219;;
-let _ARM64_REG_X23 = 220;;
-let _ARM64_REG_X24 = 221;;
-let _ARM64_REG_X25 = 222;;
-let _ARM64_REG_X26 = 223;;
-let _ARM64_REG_X27 = 224;;
-let _ARM64_REG_X28 = 225;;
-let _ARM64_REG_X29 = 226;;
-let _ARM64_REG_X30 = 227;;
-let _ARM64_REG_MAX = 228;;
-
-(*  alias registers *)
-let _ARM64_REG_IP1 = _ARM64_REG_X16;;
-let _ARM64_REG_IP0 = _ARM64_REG_X17;;
-let _ARM64_REG_FP = _ARM64_REG_X29;;
-let _ARM64_REG_LR = _ARM64_REG_X30;;
-
-(* ARM64 instructions *)
-let _ARM64_INS_INVALID = 0;;
-let _ARM64_INS_ADC = 1;;
-let _ARM64_INS_ADDHN2 = 2;;
-let _ARM64_INS_ADDHN = 3;;
-let _ARM64_INS_ADDP = 4;;
-let _ARM64_INS_ADD = 5;;
-let _ARM64_INS_CMN = 6;;
-let _ARM64_INS_ADRP = 7;;
-let _ARM64_INS_ADR = 8;;
-let _ARM64_INS_AND = 9;;
-let _ARM64_INS_ASR = 10;;
-let _ARM64_INS_AT = 11;;
-let _ARM64_INS_BFI = 12;;
-let _ARM64_INS_BFM = 13;;
-let _ARM64_INS_BFXIL = 14;;
-let _ARM64_INS_BIC = 15;;
-let _ARM64_INS_BIF = 16;;
-let _ARM64_INS_BIT = 17;;
-let _ARM64_INS_BLR = 18;;
-let _ARM64_INS_BL = 19;;
-let _ARM64_INS_BRK = 20;;
-let _ARM64_INS_BR = 21;;
-let _ARM64_INS_BSL = 22;;
-let _ARM64_INS_B = 23;;
-let _ARM64_INS_CBNZ = 24;;
-let _ARM64_INS_CBZ = 25;;
-let _ARM64_INS_CCMN = 26;;
-let _ARM64_INS_CCMP = 27;;
-let _ARM64_INS_CLREX = 28;;
-let _ARM64_INS_CLS = 29;;
-let _ARM64_INS_CLZ = 30;;
-let _ARM64_INS_CMEQ = 31;;
-let _ARM64_INS_CMGE = 32;;
-let _ARM64_INS_CMGT = 33;;
-let _ARM64_INS_CMHI = 34;;
-let _ARM64_INS_CMHS = 35;;
-let _ARM64_INS_CMLE = 36;;
-let _ARM64_INS_CMLT = 37;;
-let _ARM64_INS_CMP = 38;;
-let _ARM64_INS_CMTST = 39;;
-let _ARM64_INS_CRC32B = 40;;
-let _ARM64_INS_CRC32CB = 41;;
-let _ARM64_INS_CRC32CH = 42;;
-let _ARM64_INS_CRC32CW = 43;;
-let _ARM64_INS_CRC32CX = 44;;
-let _ARM64_INS_CRC32H = 45;;
-let _ARM64_INS_CRC32W = 46;;
-let _ARM64_INS_CRC32X = 47;;
-let _ARM64_INS_CSEL = 48;;
-let _ARM64_INS_CSINC = 49;;
-let _ARM64_INS_CSINV = 50;;
-let _ARM64_INS_CSNEG = 51;;
-let _ARM64_INS_DCPS1 = 52;;
-let _ARM64_INS_DCPS2 = 53;;
-let _ARM64_INS_DCPS3 = 54;;
-let _ARM64_INS_DC = 55;;
-let _ARM64_INS_DMB = 56;;
-let _ARM64_INS_DRPS = 57;;
-let _ARM64_INS_DSB = 58;;
-let _ARM64_INS_EON = 59;;
-let _ARM64_INS_EOR = 60;;
-let _ARM64_INS_ERET = 61;;
-let _ARM64_INS_EXTR = 62;;
-let _ARM64_INS_FABD = 63;;
-let _ARM64_INS_FABS = 64;;
-let _ARM64_INS_FACGE = 65;;
-let _ARM64_INS_FACGT = 66;;
-let _ARM64_INS_FADDP = 67;;
-let _ARM64_INS_FADD = 68;;
-let _ARM64_INS_FCCMPE = 69;;
-let _ARM64_INS_FCCMP = 70;;
-let _ARM64_INS_FCMEQ = 71;;
-let _ARM64_INS_FCMGE = 72;;
-let _ARM64_INS_FCMGT = 73;;
-let _ARM64_INS_FCMLE = 74;;
-let _ARM64_INS_FCMLT = 75;;
-let _ARM64_INS_FCMP = 76;;
-let _ARM64_INS_FCMPE = 77;;
-let _ARM64_INS_FCSEL = 78;;
-let _ARM64_INS_FCVTAS = 79;;
-let _ARM64_INS_FCVTAU = 80;;
-let _ARM64_INS_FCVTMS = 81;;
-let _ARM64_INS_FCVTMU = 82;;
-let _ARM64_INS_FCVTNS = 83;;
-let _ARM64_INS_FCVTNU = 84;;
-let _ARM64_INS_FCVTPS = 85;;
-let _ARM64_INS_FCVTPU = 86;;
-let _ARM64_INS_FCVTZS = 87;;
-let _ARM64_INS_FCVTZU = 88;;
-let _ARM64_INS_FCVT = 89;;
-let _ARM64_INS_FDIV = 90;;
-let _ARM64_INS_FMADD = 91;;
-let _ARM64_INS_FMAXNMP = 92;;
-let _ARM64_INS_FMAXNM = 93;;
-let _ARM64_INS_FMAXP = 94;;
-let _ARM64_INS_FMAX = 95;;
-let _ARM64_INS_FMINNMP = 96;;
-let _ARM64_INS_FMINNM = 97;;
-let _ARM64_INS_FMINP = 98;;
-let _ARM64_INS_FMIN = 99;;
-let _ARM64_INS_FMLA = 100;;
-let _ARM64_INS_FMLS = 101;;
-let _ARM64_INS_FMOV = 102;;
-let _ARM64_INS_FMSUB = 103;;
-let _ARM64_INS_FMULX = 104;;
-let _ARM64_INS_FMUL = 105;;
-let _ARM64_INS_FNEG = 106;;
-let _ARM64_INS_FNMADD = 107;;
-let _ARM64_INS_FNMSUB = 108;;
-let _ARM64_INS_FNMUL = 109;;
-let _ARM64_INS_FRECPS = 110;;
-let _ARM64_INS_FRINTA = 111;;
-let _ARM64_INS_FRINTI = 112;;
-let _ARM64_INS_FRINTM = 113;;
-let _ARM64_INS_FRINTN = 114;;
-let _ARM64_INS_FRINTP = 115;;
-let _ARM64_INS_FRINTX = 116;;
-let _ARM64_INS_FRINTZ = 117;;
-let _ARM64_INS_FRSQRTS = 118;;
-let _ARM64_INS_FSQRT = 119;;
-let _ARM64_INS_FSUB = 120;;
-let _ARM64_INS_HINT = 121;;
-let _ARM64_INS_HLT = 122;;
-let _ARM64_INS_HVC = 123;;
-let _ARM64_INS_IC = 124;;
-let _ARM64_INS_INS = 125;;
-let _ARM64_INS_ISB = 126;;
-let _ARM64_INS_LDARB = 127;;
-let _ARM64_INS_LDAR = 128;;
-let _ARM64_INS_LDARH = 129;;
-let _ARM64_INS_LDAXP = 130;;
-let _ARM64_INS_LDAXRB = 131;;
-let _ARM64_INS_LDAXR = 132;;
-let _ARM64_INS_LDAXRH = 133;;
-let _ARM64_INS_LDPSW = 134;;
-let _ARM64_INS_LDRSB = 135;;
-let _ARM64_INS_LDURSB = 136;;
-let _ARM64_INS_LDRSH = 137;;
-let _ARM64_INS_LDURSH = 138;;
-let _ARM64_INS_LDRSW = 139;;
-let _ARM64_INS_LDR = 140;;
-let _ARM64_INS_LDTRSB = 141;;
-let _ARM64_INS_LDTRSH = 142;;
-let _ARM64_INS_LDTRSW = 143;;
-let _ARM64_INS_LDURSW = 144;;
-let _ARM64_INS_LDXP = 145;;
-let _ARM64_INS_LDXRB = 146;;
-let _ARM64_INS_LDXR = 147;;
-let _ARM64_INS_LDXRH = 148;;
-let _ARM64_INS_LDRH = 149;;
-let _ARM64_INS_LDURH = 150;;
-let _ARM64_INS_STRH = 151;;
-let _ARM64_INS_STURH = 152;;
-let _ARM64_INS_LDTRH = 153;;
-let _ARM64_INS_STTRH = 154;;
-let _ARM64_INS_LDUR = 155;;
-let _ARM64_INS_STR = 156;;
-let _ARM64_INS_STUR = 157;;
-let _ARM64_INS_LDTR = 158;;
-let _ARM64_INS_STTR = 159;;
-let _ARM64_INS_LDRB = 160;;
-let _ARM64_INS_LDURB = 161;;
-let _ARM64_INS_STRB = 162;;
-let _ARM64_INS_STURB = 163;;
-let _ARM64_INS_LDTRB = 164;;
-let _ARM64_INS_STTRB = 165;;
-let _ARM64_INS_LDP = 166;;
-let _ARM64_INS_LDNP = 167;;
-let _ARM64_INS_STNP = 168;;
-let _ARM64_INS_STP = 169;;
-let _ARM64_INS_LSL = 170;;
-let _ARM64_INS_LSR = 171;;
-let _ARM64_INS_MADD = 172;;
-let _ARM64_INS_MLA = 173;;
-let _ARM64_INS_MLS = 174;;
-let _ARM64_INS_MOVI = 175;;
-let _ARM64_INS_MOVK = 176;;
-let _ARM64_INS_MOVN = 177;;
-let _ARM64_INS_MOVZ = 178;;
-let _ARM64_INS_MRS = 179;;
-let _ARM64_INS_MSR = 180;;
-let _ARM64_INS_MSUB = 181;;
-let _ARM64_INS_MUL = 182;;
-let _ARM64_INS_MVNI = 183;;
-let _ARM64_INS_MVN = 184;;
-let _ARM64_INS_ORN = 185;;
-let _ARM64_INS_ORR = 186;;
-let _ARM64_INS_PMULL2 = 187;;
-let _ARM64_INS_PMULL = 188;;
-let _ARM64_INS_PMUL = 189;;
-let _ARM64_INS_PRFM = 190;;
-let _ARM64_INS_PRFUM = 191;;
-let _ARM64_INS_SQRSHRUN2 = 192;;
-let _ARM64_INS_SQRSHRUN = 193;;
-let _ARM64_INS_SQSHRUN2 = 194;;
-let _ARM64_INS_SQSHRUN = 195;;
-let _ARM64_INS_RADDHN2 = 196;;
-let _ARM64_INS_RADDHN = 197;;
-let _ARM64_INS_RBIT = 198;;
-let _ARM64_INS_RET = 199;;
-let _ARM64_INS_REV16 = 200;;
-let _ARM64_INS_REV32 = 201;;
-let _ARM64_INS_REV = 202;;
-let _ARM64_INS_ROR = 203;;
-let _ARM64_INS_RSHRN2 = 204;;
-let _ARM64_INS_RSHRN = 205;;
-let _ARM64_INS_RSUBHN2 = 206;;
-let _ARM64_INS_RSUBHN = 207;;
-let _ARM64_INS_SABAL2 = 208;;
-let _ARM64_INS_SABAL = 209;;
-let _ARM64_INS_SABA = 210;;
-let _ARM64_INS_SABDL2 = 211;;
-let _ARM64_INS_SABDL = 212;;
-let _ARM64_INS_SABD = 213;;
-let _ARM64_INS_SADDL2 = 214;;
-let _ARM64_INS_SADDL = 215;;
-let _ARM64_INS_SADDW2 = 216;;
-let _ARM64_INS_SADDW = 217;;
-let _ARM64_INS_SBC = 218;;
-let _ARM64_INS_SBFIZ = 219;;
-let _ARM64_INS_SBFM = 220;;
-let _ARM64_INS_SBFX = 221;;
-let _ARM64_INS_SCVTF = 222;;
-let _ARM64_INS_SDIV = 223;;
-let _ARM64_INS_SHADD = 224;;
-let _ARM64_INS_SHL = 225;;
-let _ARM64_INS_SHRN2 = 226;;
-let _ARM64_INS_SHRN = 227;;
-let _ARM64_INS_SHSUB = 228;;
-let _ARM64_INS_SLI = 229;;
-let _ARM64_INS_SMADDL = 230;;
-let _ARM64_INS_SMAXP = 231;;
-let _ARM64_INS_SMAX = 232;;
-let _ARM64_INS_SMC = 233;;
-let _ARM64_INS_SMINP = 234;;
-let _ARM64_INS_SMIN = 235;;
-let _ARM64_INS_SMLAL2 = 236;;
-let _ARM64_INS_SMLAL = 237;;
-let _ARM64_INS_SMLSL2 = 238;;
-let _ARM64_INS_SMLSL = 239;;
-let _ARM64_INS_SMOV = 240;;
-let _ARM64_INS_SMSUBL = 241;;
-let _ARM64_INS_SMULH = 242;;
-let _ARM64_INS_SMULL2 = 243;;
-let _ARM64_INS_SMULL = 244;;
-let _ARM64_INS_SQADD = 245;;
-let _ARM64_INS_SQDMLAL2 = 246;;
-let _ARM64_INS_SQDMLAL = 247;;
-let _ARM64_INS_SQDMLSL2 = 248;;
-let _ARM64_INS_SQDMLSL = 249;;
-let _ARM64_INS_SQDMULH = 250;;
-let _ARM64_INS_SQDMULL2 = 251;;
-let _ARM64_INS_SQDMULL = 252;;
-let _ARM64_INS_SQRDMULH = 253;;
-let _ARM64_INS_SQRSHL = 254;;
-let _ARM64_INS_SQRSHRN2 = 255;;
-let _ARM64_INS_SQRSHRN = 256;;
-let _ARM64_INS_SQSHLU = 257;;
-let _ARM64_INS_SQSHL = 258;;
-let _ARM64_INS_SQSHRN2 = 259;;
-let _ARM64_INS_SQSHRN = 260;;
-let _ARM64_INS_SQSUB = 261;;
-let _ARM64_INS_SRHADD = 262;;
-let _ARM64_INS_SRI = 263;;
-let _ARM64_INS_SRSHL = 264;;
-let _ARM64_INS_SRSHR = 265;;
-let _ARM64_INS_SRSRA = 266;;
-let _ARM64_INS_SSHLL2 = 267;;
-let _ARM64_INS_SSHLL = 268;;
-let _ARM64_INS_SSHL = 269;;
-let _ARM64_INS_SSHR = 270;;
-let _ARM64_INS_SSRA = 271;;
-let _ARM64_INS_SSUBL2 = 272;;
-let _ARM64_INS_SSUBL = 273;;
-let _ARM64_INS_SSUBW2 = 274;;
-let _ARM64_INS_SSUBW = 275;;
-let _ARM64_INS_STLRB = 276;;
-let _ARM64_INS_STLR = 277;;
-let _ARM64_INS_STLRH = 278;;
-let _ARM64_INS_STLXP = 279;;
-let _ARM64_INS_STLXRB = 280;;
-let _ARM64_INS_STLXR = 281;;
-let _ARM64_INS_STLXRH = 282;;
-let _ARM64_INS_STXP = 283;;
-let _ARM64_INS_STXRB = 284;;
-let _ARM64_INS_STXR = 285;;
-let _ARM64_INS_STXRH = 286;;
-let _ARM64_INS_SUBHN2 = 287;;
-let _ARM64_INS_SUBHN = 288;;
-let _ARM64_INS_SUB = 289;;
-let _ARM64_INS_SVC = 290;;
-let _ARM64_INS_SXTB = 291;;
-let _ARM64_INS_SXTH = 292;;
-let _ARM64_INS_SXTW = 293;;
-let _ARM64_INS_SYSL = 294;;
-let _ARM64_INS_SYS = 295;;
-let _ARM64_INS_TBNZ = 296;;
-let _ARM64_INS_TBZ = 297;;
-let _ARM64_INS_TLBI = 298;;
-let _ARM64_INS_TST = 299;;
-let _ARM64_INS_UABAL2 = 300;;
-let _ARM64_INS_UABAL = 301;;
-let _ARM64_INS_UABA = 302;;
-let _ARM64_INS_UABDL2 = 303;;
-let _ARM64_INS_UABDL = 304;;
-let _ARM64_INS_UABD = 305;;
-let _ARM64_INS_UADDL2 = 306;;
-let _ARM64_INS_UADDL = 307;;
-let _ARM64_INS_UADDW2 = 308;;
-let _ARM64_INS_UADDW = 309;;
-let _ARM64_INS_UBFIZ = 310;;
-let _ARM64_INS_UBFM = 311;;
-let _ARM64_INS_UBFX = 312;;
-let _ARM64_INS_UCVTF = 313;;
-let _ARM64_INS_UDIV = 314;;
-let _ARM64_INS_UHADD = 315;;
-let _ARM64_INS_UHSUB = 316;;
-let _ARM64_INS_UMADDL = 317;;
-let _ARM64_INS_UMAXP = 318;;
-let _ARM64_INS_UMAX = 319;;
-let _ARM64_INS_UMINP = 320;;
-let _ARM64_INS_UMIN = 321;;
-let _ARM64_INS_UMLAL2 = 322;;
-let _ARM64_INS_UMLAL = 323;;
-let _ARM64_INS_UMLSL2 = 324;;
-let _ARM64_INS_UMLSL = 325;;
-let _ARM64_INS_UMOV = 326;;
-let _ARM64_INS_UMSUBL = 327;;
-let _ARM64_INS_UMULH = 328;;
-let _ARM64_INS_UMULL2 = 329;;
-let _ARM64_INS_UMULL = 330;;
-let _ARM64_INS_UQADD = 331;;
-let _ARM64_INS_UQRSHL = 332;;
-let _ARM64_INS_UQRSHRN2 = 333;;
-let _ARM64_INS_UQRSHRN = 334;;
-let _ARM64_INS_UQSHL = 335;;
-let _ARM64_INS_UQSHRN2 = 336;;
-let _ARM64_INS_UQSHRN = 337;;
-let _ARM64_INS_UQSUB = 338;;
-let _ARM64_INS_URHADD = 339;;
-let _ARM64_INS_URSHL = 340;;
-let _ARM64_INS_URSHR = 341;;
-let _ARM64_INS_URSRA = 342;;
-let _ARM64_INS_USHLL2 = 343;;
-let _ARM64_INS_USHLL = 344;;
-let _ARM64_INS_USHL = 345;;
-let _ARM64_INS_USHR = 346;;
-let _ARM64_INS_USRA = 347;;
-let _ARM64_INS_USUBL2 = 348;;
-let _ARM64_INS_USUBL = 349;;
-let _ARM64_INS_USUBW2 = 350;;
-let _ARM64_INS_USUBW = 351;;
-let _ARM64_INS_UXTB = 352;;
-let _ARM64_INS_UXTH = 353;;
-let _ARM64_INS_SXTW = 354;;
-let _ARM64_INS_SYSL = 355;;
-let _ARM64_INS_SYS = 356;;
-let _ARM64_INS_TBL = 357;;
-let _ARM64_INS_TBNZ = 358;;
-let _ARM64_INS_TBX = 359;;
-let _ARM64_INS_TBZ = 360;;
-let _ARM64_INS_TLBI = 361;;
-let _ARM64_INS_TRN1 = 362;;
-let _ARM64_INS_TRN2 = 363;;
-let _ARM64_INS_TST = 364;;
-let _ARM64_INS_UABAL2 = 365;;
-let _ARM64_INS_UABAL = 366;;
-let _ARM64_INS_UABA = 367;;
-let _ARM64_INS_UABDL2 = 368;;
-let _ARM64_INS_UABDL = 369;;
-let _ARM64_INS_UABD = 370;;
-let _ARM64_INS_UADALP = 371;;
-let _ARM64_INS_UADDL2 = 372;;
-let _ARM64_INS_UADDLP = 373;;
-let _ARM64_INS_UADDLV = 374;;
-let _ARM64_INS_UADDL = 375;;
-let _ARM64_INS_UADDW2 = 376;;
-let _ARM64_INS_UADDW = 377;;
-let _ARM64_INS_UBFIZ = 378;;
-let _ARM64_INS_UBFM = 379;;
-let _ARM64_INS_UBFX = 380;;
-let _ARM64_INS_UCVTF = 381;;
-let _ARM64_INS_UDIV = 382;;
-let _ARM64_INS_UHADD = 383;;
-let _ARM64_INS_UHSUB = 384;;
-let _ARM64_INS_UMADDL = 385;;
-let _ARM64_INS_UMAXP = 386;;
-let _ARM64_INS_UMAXV = 387;;
-let _ARM64_INS_UMAX = 388;;
-let _ARM64_INS_UMINP = 389;;
-let _ARM64_INS_UMINV = 390;;
-let _ARM64_INS_UMIN = 391;;
-let _ARM64_INS_UMLAL2 = 392;;
-let _ARM64_INS_UMLAL = 393;;
-let _ARM64_INS_UMLSL2 = 394;;
-let _ARM64_INS_UMLSL = 395;;
-let _ARM64_INS_UMOV = 396;;
-let _ARM64_INS_UMSUBL = 397;;
-let _ARM64_INS_UMULH = 398;;
-let _ARM64_INS_UMULL2 = 399;;
-let _ARM64_INS_UMULL = 400;;
-let _ARM64_INS_UQADD = 401;;
-let _ARM64_INS_UQRSHL = 402;;
-let _ARM64_INS_UQRSHRN = 403;;
-let _ARM64_INS_UQRSHRN2 = 404;;
-let _ARM64_INS_UQSHL = 405;;
-let _ARM64_INS_UQSHRN = 406;;
-let _ARM64_INS_UQSHRN2 = 407;;
-let _ARM64_INS_UQSUB = 408;;
-let _ARM64_INS_UQXTN = 409;;
-let _ARM64_INS_UQXTN2 = 410;;
-let _ARM64_INS_URECPE = 411;;
-let _ARM64_INS_URHADD = 412;;
-let _ARM64_INS_URSHL = 413;;
-let _ARM64_INS_URSHR = 414;;
-let _ARM64_INS_URSQRTE = 415;;
-let _ARM64_INS_URSRA = 416;;
-let _ARM64_INS_USHLL2 = 417;;
-let _ARM64_INS_USHLL = 418;;
-let _ARM64_INS_USHL = 419;;
-let _ARM64_INS_USHR = 420;;
-let _ARM64_INS_USQADD = 421;;
-let _ARM64_INS_USRA = 422;;
-let _ARM64_INS_USUBL2 = 423;;
-let _ARM64_INS_USUBL = 424;;
-let _ARM64_INS_USUBW2 = 425;;
-let _ARM64_INS_USUBW = 426;;
-let _ARM64_INS_UXTB = 427;;
-let _ARM64_INS_UXTH = 428;;
-let _ARM64_INS_UZP1 = 429;;
-let _ARM64_INS_UZP2 = 430;;
-let _ARM64_INS_XTN = 431;;
-let _ARM64_INS_XTN2 = 432;;
-let _ARM64_INS_ZIP1 = 433;;
-let _ARM64_INS_ZIP2 = 434;;
-let _ARM64_INS_MNEG = 435;;
-let _ARM64_INS_UMNEGL = 436;;
-let _ARM64_INS_SMNEGL = 437;;
-let _ARM64_INS_MOV = 438;;
-let _ARM64_INS_NOP = 439;;
-let _ARM64_INS_YIELD = 440;;
-let _ARM64_INS_WFE = 441;;
-let _ARM64_INS_WFI = 442;;
-let _ARM64_INS_SEV = 443;;
-let _ARM64_INS_SEVL = 444;;
-let _ARM64_INS_NGC = 445;;
-let _ARM64_INS_MAX = 446;;
-
-(* ARM64 group of instructions *)
-let _ARM64_GRP_INVALID = 0;;
-let _ARM64_GRP_CRYPTO = 1;;
-let _ARM64_GRP_FPARMV8 = 2;;
-let _ARM64_GRP_NEON = 3;;
-let _ARM64_GRP_JUMP = 4;;
-let _ARM64_GRP_MAX = 5;;
diff --git a/bindings/ocaml/arm64_const.ml b/bindings/ocaml/arm64_const.ml
new file mode 100644
index 0000000..f914c80
--- /dev/null
+++ b/bindings/ocaml/arm64_const.ml
@@ -0,0 +1,299 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm64_const.ml] *)
+
+(* ARM64 shift type *)
+
+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;;
+
+(* ARM64 extender type *)
+
+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;;
+
+(* ARM64 condition code *)
+
+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;;
+
+(* Operand type for instruction's operands *)
+
+let _ARM64_OP_INVALID = 0;;
+let _ARM64_OP_REG = 1;;
+let _ARM64_OP_CIMM = 2;;
+let _ARM64_OP_IMM = 3;;
+let _ARM64_OP_FP = 4;;
+let _ARM64_OP_MEM = 5;;
+
+(* ARM64 registers *)
+
+let _ARM64_REG_INVALID = 0;;
+let _ARM64_REG_NZCV = 1;;
+let _ARM64_REG_WSP = 2;;
+let _ARM64_REG_WZR = 3;;
+let _ARM64_REG_SP = 4;;
+let _ARM64_REG_XZR = 5;;
+let _ARM64_REG_B0 = 6;;
+let _ARM64_REG_B1 = 7;;
+let _ARM64_REG_B2 = 8;;
+let _ARM64_REG_B3 = 9;;
+let _ARM64_REG_B4 = 10;;
+let _ARM64_REG_B5 = 11;;
+let _ARM64_REG_B6 = 12;;
+let _ARM64_REG_B7 = 13;;
+let _ARM64_REG_B8 = 14;;
+let _ARM64_REG_B9 = 15;;
+let _ARM64_REG_B10 = 16;;
+let _ARM64_REG_B11 = 17;;
+let _ARM64_REG_B12 = 18;;
+let _ARM64_REG_B13 = 19;;
+let _ARM64_REG_B14 = 20;;
+let _ARM64_REG_B15 = 21;;
+let _ARM64_REG_B16 = 22;;
+let _ARM64_REG_B17 = 23;;
+let _ARM64_REG_B18 = 24;;
+let _ARM64_REG_B19 = 25;;
+let _ARM64_REG_B20 = 26;;
+let _ARM64_REG_B21 = 27;;
+let _ARM64_REG_B22 = 28;;
+let _ARM64_REG_B23 = 29;;
+let _ARM64_REG_B24 = 30;;
+let _ARM64_REG_B25 = 31;;
+let _ARM64_REG_B26 = 32;;
+let _ARM64_REG_B27 = 33;;
+let _ARM64_REG_B28 = 34;;
+let _ARM64_REG_B29 = 35;;
+let _ARM64_REG_B30 = 36;;
+let _ARM64_REG_B31 = 37;;
+let _ARM64_REG_D0 = 38;;
+let _ARM64_REG_D1 = 39;;
+let _ARM64_REG_D2 = 40;;
+let _ARM64_REG_D3 = 41;;
+let _ARM64_REG_D4 = 42;;
+let _ARM64_REG_D5 = 43;;
+let _ARM64_REG_D6 = 44;;
+let _ARM64_REG_D7 = 45;;
+let _ARM64_REG_D8 = 46;;
+let _ARM64_REG_D9 = 47;;
+let _ARM64_REG_D10 = 48;;
+let _ARM64_REG_D11 = 49;;
+let _ARM64_REG_D12 = 50;;
+let _ARM64_REG_D13 = 51;;
+let _ARM64_REG_D14 = 52;;
+let _ARM64_REG_D15 = 53;;
+let _ARM64_REG_D16 = 54;;
+let _ARM64_REG_D17 = 55;;
+let _ARM64_REG_D18 = 56;;
+let _ARM64_REG_D19 = 57;;
+let _ARM64_REG_D20 = 58;;
+let _ARM64_REG_D21 = 59;;
+let _ARM64_REG_D22 = 60;;
+let _ARM64_REG_D23 = 61;;
+let _ARM64_REG_D24 = 62;;
+let _ARM64_REG_D25 = 63;;
+let _ARM64_REG_D26 = 64;;
+let _ARM64_REG_D27 = 65;;
+let _ARM64_REG_D28 = 66;;
+let _ARM64_REG_D29 = 67;;
+let _ARM64_REG_D30 = 68;;
+let _ARM64_REG_D31 = 69;;
+let _ARM64_REG_H0 = 70;;
+let _ARM64_REG_H1 = 71;;
+let _ARM64_REG_H2 = 72;;
+let _ARM64_REG_H3 = 73;;
+let _ARM64_REG_H4 = 74;;
+let _ARM64_REG_H5 = 75;;
+let _ARM64_REG_H6 = 76;;
+let _ARM64_REG_H7 = 77;;
+let _ARM64_REG_H8 = 78;;
+let _ARM64_REG_H9 = 79;;
+let _ARM64_REG_H10 = 80;;
+let _ARM64_REG_H11 = 81;;
+let _ARM64_REG_H12 = 82;;
+let _ARM64_REG_H13 = 83;;
+let _ARM64_REG_H14 = 84;;
+let _ARM64_REG_H15 = 85;;
+let _ARM64_REG_H16 = 86;;
+let _ARM64_REG_H17 = 87;;
+let _ARM64_REG_H18 = 88;;
+let _ARM64_REG_H19 = 89;;
+let _ARM64_REG_H20 = 90;;
+let _ARM64_REG_H21 = 91;;
+let _ARM64_REG_H22 = 92;;
+let _ARM64_REG_H23 = 93;;
+let _ARM64_REG_H24 = 94;;
+let _ARM64_REG_H25 = 95;;
+let _ARM64_REG_H26 = 96;;
+let _ARM64_REG_H27 = 97;;
+let _ARM64_REG_H28 = 98;;
+let _ARM64_REG_H29 = 99;;
+let _ARM64_REG_H30 = 100;;
+let _ARM64_REG_H31 = 101;;
+let _ARM64_REG_Q0 = 102;;
+let _ARM64_REG_Q1 = 103;;
+let _ARM64_REG_Q2 = 104;;
+let _ARM64_REG_Q3 = 105;;
+let _ARM64_REG_Q4 = 106;;
+let _ARM64_REG_Q5 = 107;;
+let _ARM64_REG_Q6 = 108;;
+let _ARM64_REG_Q7 = 109;;
+let _ARM64_REG_Q8 = 110;;
+let _ARM64_REG_Q9 = 111;;
+let _ARM64_REG_Q10 = 112;;
+let _ARM64_REG_Q11 = 113;;
+let _ARM64_REG_Q12 = 114;;
+let _ARM64_REG_Q13 = 115;;
+let _ARM64_REG_Q14 = 116;;
+let _ARM64_REG_Q15 = 117;;
+let _ARM64_REG_Q16 = 118;;
+let _ARM64_REG_Q17 = 119;;
+let _ARM64_REG_Q18 = 120;;
+let _ARM64_REG_Q19 = 121;;
+let _ARM64_REG_Q20 = 122;;
+let _ARM64_REG_Q21 = 123;;
+let _ARM64_REG_Q22 = 124;;
+let _ARM64_REG_Q23 = 125;;
+let _ARM64_REG_Q24 = 126;;
+let _ARM64_REG_Q25 = 127;;
+let _ARM64_REG_Q26 = 128;;
+let _ARM64_REG_Q27 = 129;;
+let _ARM64_REG_Q28 = 130;;
+let _ARM64_REG_Q29 = 131;;
+let _ARM64_REG_Q30 = 132;;
+let _ARM64_REG_Q31 = 133;;
+let _ARM64_REG_S0 = 134;;
+let _ARM64_REG_S1 = 135;;
+let _ARM64_REG_S2 = 136;;
+let _ARM64_REG_S3 = 137;;
+let _ARM64_REG_S4 = 138;;
+let _ARM64_REG_S5 = 139;;
+let _ARM64_REG_S6 = 140;;
+let _ARM64_REG_S7 = 141;;
+let _ARM64_REG_S8 = 142;;
+let _ARM64_REG_S9 = 143;;
+let _ARM64_REG_S10 = 144;;
+let _ARM64_REG_S11 = 145;;
+let _ARM64_REG_S12 = 146;;
+let _ARM64_REG_S13 = 147;;
+let _ARM64_REG_S14 = 148;;
+let _ARM64_REG_S15 = 149;;
+let _ARM64_REG_S16 = 150;;
+let _ARM64_REG_S17 = 151;;
+let _ARM64_REG_S18 = 152;;
+let _ARM64_REG_S19 = 153;;
+let _ARM64_REG_S20 = 154;;
+let _ARM64_REG_S21 = 155;;
+let _ARM64_REG_S22 = 156;;
+let _ARM64_REG_S23 = 157;;
+let _ARM64_REG_S24 = 158;;
+let _ARM64_REG_S25 = 159;;
+let _ARM64_REG_S26 = 160;;
+let _ARM64_REG_S27 = 161;;
+let _ARM64_REG_S28 = 162;;
+let _ARM64_REG_S29 = 163;;
+let _ARM64_REG_S30 = 164;;
+let _ARM64_REG_S31 = 165;;
+let _ARM64_REG_W0 = 166;;
+let _ARM64_REG_W1 = 167;;
+let _ARM64_REG_W2 = 168;;
+let _ARM64_REG_W3 = 169;;
+let _ARM64_REG_W4 = 170;;
+let _ARM64_REG_W5 = 171;;
+let _ARM64_REG_W6 = 172;;
+let _ARM64_REG_W7 = 173;;
+let _ARM64_REG_W8 = 174;;
+let _ARM64_REG_W9 = 175;;
+let _ARM64_REG_W10 = 176;;
+let _ARM64_REG_W11 = 177;;
+let _ARM64_REG_W12 = 178;;
+let _ARM64_REG_W13 = 179;;
+let _ARM64_REG_W14 = 180;;
+let _ARM64_REG_W15 = 181;;
+let _ARM64_REG_W16 = 182;;
+let _ARM64_REG_W17 = 183;;
+let _ARM64_REG_W18 = 184;;
+let _ARM64_REG_W19 = 185;;
+let _ARM64_REG_W20 = 186;;
+let _ARM64_REG_W21 = 187;;
+let _ARM64_REG_W22 = 188;;
+let _ARM64_REG_W23 = 189;;
+let _ARM64_REG_W24 = 190;;
+let _ARM64_REG_W25 = 191;;
+let _ARM64_REG_W26 = 192;;
+let _ARM64_REG_W27 = 193;;
+let _ARM64_REG_W28 = 194;;
+let _ARM64_REG_W29 = 195;;
+let _ARM64_REG_W30 = 196;;
+let _ARM64_REG_X0 = 197;;
+let _ARM64_REG_X1 = 198;;
+let _ARM64_REG_X2 = 199;;
+let _ARM64_REG_X3 = 200;;
+let _ARM64_REG_X4 = 201;;
+let _ARM64_REG_X5 = 202;;
+let _ARM64_REG_X6 = 203;;
+let _ARM64_REG_X7 = 204;;
+let _ARM64_REG_X8 = 205;;
+let _ARM64_REG_X9 = 206;;
+let _ARM64_REG_X10 = 207;;
+let _ARM64_REG_X11 = 208;;
+let _ARM64_REG_X12 = 209;;
+let _ARM64_REG_X13 = 210;;
+let _ARM64_REG_X14 = 211;;
+let _ARM64_REG_X15 = 212;;
+let _ARM64_REG_X16 = 213;;
+let _ARM64_REG_X17 = 214;;
+let _ARM64_REG_X18 = 215;;
+let _ARM64_REG_X19 = 216;;
+let _ARM64_REG_X20 = 217;;
+let _ARM64_REG_X21 = 218;;
+let _ARM64_REG_X22 = 219;;
+let _ARM64_REG_X23 = 220;;
+let _ARM64_REG_X24 = 221;;
+let _ARM64_REG_X25 = 222;;
+let _ARM64_REG_X26 = 223;;
+let _ARM64_REG_X27 = 224;;
+let _ARM64_REG_X28 = 225;;
+let _ARM64_REG_X29 = 226;;
+let _ARM64_REG_X30 = 227;;
+let _ARM64_REG_MAX = 228;;
+
+(* alias registers *)
+let _ARM64_REG_IP1 = _ARM64_REG_X16;;
+let _ARM64_REG_IP0 = _ARM64_REG_X17;;
+let _ARM64_REG_FP = _ARM64_REG_X29;;
+let _ARM64_REG_LR = _ARM64_REG_X30;;
+
+
+(* Group of ARM64 instructions *)
+
+let _ARM64_GRP_INVALID = 0;;
+let _ARM64_GRP_CRYPTO = 1;;
+let _ARM64_GRP_FPARMV8 = 2;;
+let _ARM64_GRP_NEON = 3;;
+let _ARM64_GRP_JUMP = 4;;
+let _ARM64_GRP_MAX = 5;;
diff --git a/bindings/ocaml/arm_const.ml b/bindings/ocaml/arm_const.ml
new file mode 100644
index 0000000..4ff7ead
--- /dev/null
+++ b/bindings/ocaml/arm_const.ml
@@ -0,0 +1,635 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm_const.ml] *)
+
+(* ARM shift type *)
+
+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;;
+
+(* ARM condition code *)
+
+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;;
+
+(* Operand type for instruction's operands *)
+
+let _ARM_OP_INVALID = 0;;
+let _ARM_OP_REG = 1;;
+let _ARM_OP_CIMM = 2;;
+let _ARM_OP_PIMM = 3;;
+let _ARM_OP_IMM = 4;;
+let _ARM_OP_FP = 5;;
+let _ARM_OP_MEM = 6;;
+
+(* ARM registers *)
+
+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_MAX = 111;;
+
+(* alias registers *)
+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;;
+
+(* ARM instruction *)
+
+let _ARM_INS_INVALID = 0;;
+let _ARM_INS_ADC = 1;;
+let _ARM_INS_ADD = 2;;
+let _ARM_INS_ADR = 3;;
+let _ARM_INS_AESD = 4;;
+let _ARM_INS_AESE = 5;;
+let _ARM_INS_AESIMC = 6;;
+let _ARM_INS_AESMC = 7;;
+let _ARM_INS_AND = 8;;
+let _ARM_INS_BFC = 9;;
+let _ARM_INS_BFI = 10;;
+let _ARM_INS_BIC = 11;;
+let _ARM_INS_BKPT = 12;;
+let _ARM_INS_BL = 13;;
+let _ARM_INS_BLX = 14;;
+let _ARM_INS_BX = 15;;
+let _ARM_INS_BXJ = 16;;
+let _ARM_INS_B = 17;;
+let _ARM_INS_CDP = 18;;
+let _ARM_INS_CDP2 = 19;;
+let _ARM_INS_CLREX = 20;;
+let _ARM_INS_CLZ = 21;;
+let _ARM_INS_CMN = 22;;
+let _ARM_INS_CMP = 23;;
+let _ARM_INS_CPS = 24;;
+let _ARM_INS_CRC32B = 25;;
+let _ARM_INS_CRC32CB = 26;;
+let _ARM_INS_CRC32CH = 27;;
+let _ARM_INS_CRC32CW = 28;;
+let _ARM_INS_CRC32H = 29;;
+let _ARM_INS_CRC32W = 30;;
+let _ARM_INS_DBG = 31;;
+let _ARM_INS_DMB = 32;;
+let _ARM_INS_DSB = 33;;
+let _ARM_INS_EOR = 34;;
+let _ARM_INS_VMOV = 35;;
+let _ARM_INS_FLDMDBX = 36;;
+let _ARM_INS_FLDMIAX = 37;;
+let _ARM_INS_VMRS = 38;;
+let _ARM_INS_FSTMDBX = 39;;
+let _ARM_INS_FSTMIAX = 40;;
+let _ARM_INS_HINT = 41;;
+let _ARM_INS_HLT = 42;;
+let _ARM_INS_ISB = 43;;
+let _ARM_INS_LDA = 44;;
+let _ARM_INS_LDAB = 45;;
+let _ARM_INS_LDAEX = 46;;
+let _ARM_INS_LDAEXB = 47;;
+let _ARM_INS_LDAEXD = 48;;
+let _ARM_INS_LDAEXH = 49;;
+let _ARM_INS_LDAH = 50;;
+let _ARM_INS_LDC2L = 51;;
+let _ARM_INS_LDC2 = 52;;
+let _ARM_INS_LDCL = 53;;
+let _ARM_INS_LDC = 54;;
+let _ARM_INS_LDMDA = 55;;
+let _ARM_INS_LDMDB = 56;;
+let _ARM_INS_LDM = 57;;
+let _ARM_INS_LDMIB = 58;;
+let _ARM_INS_LDRBT = 59;;
+let _ARM_INS_LDRB = 60;;
+let _ARM_INS_LDRD = 61;;
+let _ARM_INS_LDREX = 62;;
+let _ARM_INS_LDREXB = 63;;
+let _ARM_INS_LDREXD = 64;;
+let _ARM_INS_LDREXH = 65;;
+let _ARM_INS_LDRH = 66;;
+let _ARM_INS_LDRHT = 67;;
+let _ARM_INS_LDRSB = 68;;
+let _ARM_INS_LDRSBT = 69;;
+let _ARM_INS_LDRSH = 70;;
+let _ARM_INS_LDRSHT = 71;;
+let _ARM_INS_LDRT = 72;;
+let _ARM_INS_LDR = 73;;
+let _ARM_INS_MCR = 74;;
+let _ARM_INS_MCR2 = 75;;
+let _ARM_INS_MCRR = 76;;
+let _ARM_INS_MCRR2 = 77;;
+let _ARM_INS_MLA = 78;;
+let _ARM_INS_MLS = 79;;
+let _ARM_INS_MOV = 80;;
+let _ARM_INS_MOVT = 81;;
+let _ARM_INS_MOVW = 82;;
+let _ARM_INS_MRC = 83;;
+let _ARM_INS_MRC2 = 84;;
+let _ARM_INS_MRRC = 85;;
+let _ARM_INS_MRRC2 = 86;;
+let _ARM_INS_MRS = 87;;
+let _ARM_INS_MSR = 88;;
+let _ARM_INS_MUL = 89;;
+let _ARM_INS_MVN = 90;;
+let _ARM_INS_ORR = 91;;
+let _ARM_INS_PKHBT = 92;;
+let _ARM_INS_PKHTB = 93;;
+let _ARM_INS_PLDW = 94;;
+let _ARM_INS_PLD = 95;;
+let _ARM_INS_PLI = 96;;
+let _ARM_INS_QADD = 97;;
+let _ARM_INS_QADD16 = 98;;
+let _ARM_INS_QADD8 = 99;;
+let _ARM_INS_QASX = 100;;
+let _ARM_INS_QDADD = 101;;
+let _ARM_INS_QDSUB = 102;;
+let _ARM_INS_QSAX = 103;;
+let _ARM_INS_QSUB = 104;;
+let _ARM_INS_QSUB16 = 105;;
+let _ARM_INS_QSUB8 = 106;;
+let _ARM_INS_RBIT = 107;;
+let _ARM_INS_REV = 108;;
+let _ARM_INS_REV16 = 109;;
+let _ARM_INS_REVSH = 110;;
+let _ARM_INS_RFEDA = 111;;
+let _ARM_INS_RFEDB = 112;;
+let _ARM_INS_RFEIA = 113;;
+let _ARM_INS_RFEIB = 114;;
+let _ARM_INS_RSB = 115;;
+let _ARM_INS_RSC = 116;;
+let _ARM_INS_SADD16 = 117;;
+let _ARM_INS_SADD8 = 118;;
+let _ARM_INS_SASX = 119;;
+let _ARM_INS_SBC = 120;;
+let _ARM_INS_SBFX = 121;;
+let _ARM_INS_SDIV = 122;;
+let _ARM_INS_SEL = 123;;
+let _ARM_INS_SETEND = 124;;
+let _ARM_INS_SHA1C = 125;;
+let _ARM_INS_SHA1H = 126;;
+let _ARM_INS_SHA1M = 127;;
+let _ARM_INS_SHA1P = 128;;
+let _ARM_INS_SHA1SU0 = 129;;
+let _ARM_INS_SHA1SU1 = 130;;
+let _ARM_INS_SHA256H = 131;;
+let _ARM_INS_SHA256H2 = 132;;
+let _ARM_INS_SHA256SU0 = 133;;
+let _ARM_INS_SHA256SU1 = 134;;
+let _ARM_INS_SHADD16 = 135;;
+let _ARM_INS_SHADD8 = 136;;
+let _ARM_INS_SHASX = 137;;
+let _ARM_INS_SHSAX = 138;;
+let _ARM_INS_SHSUB16 = 139;;
+let _ARM_INS_SHSUB8 = 140;;
+let _ARM_INS_SMC = 141;;
+let _ARM_INS_SMLABB = 142;;
+let _ARM_INS_SMLABT = 143;;
+let _ARM_INS_SMLAD = 144;;
+let _ARM_INS_SMLADX = 145;;
+let _ARM_INS_SMLAL = 146;;
+let _ARM_INS_SMLALBB = 147;;
+let _ARM_INS_SMLALBT = 148;;
+let _ARM_INS_SMLALD = 149;;
+let _ARM_INS_SMLALDX = 150;;
+let _ARM_INS_SMLALTB = 151;;
+let _ARM_INS_SMLALTT = 152;;
+let _ARM_INS_SMLATB = 153;;
+let _ARM_INS_SMLATT = 154;;
+let _ARM_INS_SMLAWB = 155;;
+let _ARM_INS_SMLAWT = 156;;
+let _ARM_INS_SMLSD = 157;;
+let _ARM_INS_SMLSDX = 158;;
+let _ARM_INS_SMLSLD = 159;;
+let _ARM_INS_SMLSLDX = 160;;
+let _ARM_INS_SMMLA = 161;;
+let _ARM_INS_SMMLAR = 162;;
+let _ARM_INS_SMMLS = 163;;
+let _ARM_INS_SMMLSR = 164;;
+let _ARM_INS_SMMUL = 165;;
+let _ARM_INS_SMMULR = 166;;
+let _ARM_INS_SMUAD = 167;;
+let _ARM_INS_SMUADX = 168;;
+let _ARM_INS_SMULBB = 169;;
+let _ARM_INS_SMULBT = 170;;
+let _ARM_INS_SMULL = 171;;
+let _ARM_INS_SMULTB = 172;;
+let _ARM_INS_SMULTT = 173;;
+let _ARM_INS_SMULWB = 174;;
+let _ARM_INS_SMULWT = 175;;
+let _ARM_INS_SMUSD = 176;;
+let _ARM_INS_SMUSDX = 177;;
+let _ARM_INS_SRSDA = 178;;
+let _ARM_INS_SRSDB = 179;;
+let _ARM_INS_SRSIA = 180;;
+let _ARM_INS_SRSIB = 181;;
+let _ARM_INS_SSAT = 182;;
+let _ARM_INS_SSAT16 = 183;;
+let _ARM_INS_SSAX = 184;;
+let _ARM_INS_SSUB16 = 185;;
+let _ARM_INS_SSUB8 = 186;;
+let _ARM_INS_STC2L = 187;;
+let _ARM_INS_STC2 = 188;;
+let _ARM_INS_STCL = 189;;
+let _ARM_INS_STC = 190;;
+let _ARM_INS_STL = 191;;
+let _ARM_INS_STLB = 192;;
+let _ARM_INS_STLEX = 193;;
+let _ARM_INS_STLEXB = 194;;
+let _ARM_INS_STLEXD = 195;;
+let _ARM_INS_STLEXH = 196;;
+let _ARM_INS_STLH = 197;;
+let _ARM_INS_STMDA = 198;;
+let _ARM_INS_STMDB = 199;;
+let _ARM_INS_STM = 200;;
+let _ARM_INS_STMIB = 201;;
+let _ARM_INS_STRBT = 202;;
+let _ARM_INS_STRB = 203;;
+let _ARM_INS_STRD = 204;;
+let _ARM_INS_STREX = 205;;
+let _ARM_INS_STREXB = 206;;
+let _ARM_INS_STREXD = 207;;
+let _ARM_INS_STREXH = 208;;
+let _ARM_INS_STRH = 209;;
+let _ARM_INS_STRHT = 210;;
+let _ARM_INS_STRT = 211;;
+let _ARM_INS_STR = 212;;
+let _ARM_INS_SUB = 213;;
+let _ARM_INS_SVC = 214;;
+let _ARM_INS_SWP = 215;;
+let _ARM_INS_SWPB = 216;;
+let _ARM_INS_SXTAB = 217;;
+let _ARM_INS_SXTAB16 = 218;;
+let _ARM_INS_SXTAH = 219;;
+let _ARM_INS_SXTB = 220;;
+let _ARM_INS_SXTB16 = 221;;
+let _ARM_INS_SXTH = 222;;
+let _ARM_INS_TEQ = 223;;
+let _ARM_INS_TRAP = 224;;
+let _ARM_INS_TST = 225;;
+let _ARM_INS_UADD16 = 226;;
+let _ARM_INS_UADD8 = 227;;
+let _ARM_INS_UASX = 228;;
+let _ARM_INS_UBFX = 229;;
+let _ARM_INS_UDIV = 230;;
+let _ARM_INS_UHADD16 = 231;;
+let _ARM_INS_UHADD8 = 232;;
+let _ARM_INS_UHASX = 233;;
+let _ARM_INS_UHSAX = 234;;
+let _ARM_INS_UHSUB16 = 235;;
+let _ARM_INS_UHSUB8 = 236;;
+let _ARM_INS_UMAAL = 237;;
+let _ARM_INS_UMLAL = 238;;
+let _ARM_INS_UMULL = 239;;
+let _ARM_INS_UQADD16 = 240;;
+let _ARM_INS_UQADD8 = 241;;
+let _ARM_INS_UQASX = 242;;
+let _ARM_INS_UQSAX = 243;;
+let _ARM_INS_UQSUB16 = 244;;
+let _ARM_INS_UQSUB8 = 245;;
+let _ARM_INS_USAD8 = 246;;
+let _ARM_INS_USADA8 = 247;;
+let _ARM_INS_USAT = 248;;
+let _ARM_INS_USAT16 = 249;;
+let _ARM_INS_USAX = 250;;
+let _ARM_INS_USUB16 = 251;;
+let _ARM_INS_USUB8 = 252;;
+let _ARM_INS_UXTAB = 253;;
+let _ARM_INS_UXTAB16 = 254;;
+let _ARM_INS_UXTAH = 255;;
+let _ARM_INS_UXTB = 256;;
+let _ARM_INS_UXTB16 = 257;;
+let _ARM_INS_UXTH = 258;;
+let _ARM_INS_VABAL = 259;;
+let _ARM_INS_VABA = 260;;
+let _ARM_INS_VABDL = 261;;
+let _ARM_INS_VABD = 262;;
+let _ARM_INS_VABS = 263;;
+let _ARM_INS_VACGE = 264;;
+let _ARM_INS_VACGT = 265;;
+let _ARM_INS_VADD = 266;;
+let _ARM_INS_VADDHN = 267;;
+let _ARM_INS_VADDL = 268;;
+let _ARM_INS_VADDW = 269;;
+let _ARM_INS_VAND = 270;;
+let _ARM_INS_VBIC = 271;;
+let _ARM_INS_VBIF = 272;;
+let _ARM_INS_VBIT = 273;;
+let _ARM_INS_VBSL = 274;;
+let _ARM_INS_VCEQ = 275;;
+let _ARM_INS_VCGE = 276;;
+let _ARM_INS_VCGT = 277;;
+let _ARM_INS_VCLE = 278;;
+let _ARM_INS_VCLS = 279;;
+let _ARM_INS_VCLT = 280;;
+let _ARM_INS_VCLZ = 281;;
+let _ARM_INS_VCMP = 282;;
+let _ARM_INS_VCMPE = 283;;
+let _ARM_INS_VCNT = 284;;
+let _ARM_INS_VCVTA = 285;;
+let _ARM_INS_VCVTB = 286;;
+let _ARM_INS_VCVT = 287;;
+let _ARM_INS_VCVTM = 288;;
+let _ARM_INS_VCVTN = 289;;
+let _ARM_INS_VCVTP = 290;;
+let _ARM_INS_VCVTT = 291;;
+let _ARM_INS_VDIV = 292;;
+let _ARM_INS_VDUP = 293;;
+let _ARM_INS_VEOR = 294;;
+let _ARM_INS_VEXT = 295;;
+let _ARM_INS_VFMA = 296;;
+let _ARM_INS_VFMS = 297;;
+let _ARM_INS_VFNMA = 298;;
+let _ARM_INS_VFNMS = 299;;
+let _ARM_INS_VHADD = 300;;
+let _ARM_INS_VHSUB = 301;;
+let _ARM_INS_VLD1 = 302;;
+let _ARM_INS_VLD2 = 303;;
+let _ARM_INS_VLD3 = 304;;
+let _ARM_INS_VLD4 = 305;;
+let _ARM_INS_VLDMDB = 306;;
+let _ARM_INS_VLDMIA = 307;;
+let _ARM_INS_VLDR = 308;;
+let _ARM_INS_VMAXNM = 309;;
+let _ARM_INS_VMAX = 310;;
+let _ARM_INS_VMINNM = 311;;
+let _ARM_INS_VMIN = 312;;
+let _ARM_INS_VMLA = 313;;
+let _ARM_INS_VMLAL = 314;;
+let _ARM_INS_VMLS = 315;;
+let _ARM_INS_VMLSL = 316;;
+let _ARM_INS_VMOVL = 317;;
+let _ARM_INS_VMOVN = 318;;
+let _ARM_INS_VMSR = 319;;
+let _ARM_INS_VMUL = 320;;
+let _ARM_INS_VMULL = 321;;
+let _ARM_INS_VMVN = 322;;
+let _ARM_INS_VNEG = 323;;
+let _ARM_INS_VNMLA = 324;;
+let _ARM_INS_VNMLS = 325;;
+let _ARM_INS_VNMUL = 326;;
+let _ARM_INS_VORN = 327;;
+let _ARM_INS_VORR = 328;;
+let _ARM_INS_VPADAL = 329;;
+let _ARM_INS_VPADDL = 330;;
+let _ARM_INS_VPADD = 331;;
+let _ARM_INS_VPMAX = 332;;
+let _ARM_INS_VPMIN = 333;;
+let _ARM_INS_VQABS = 334;;
+let _ARM_INS_VQADD = 335;;
+let _ARM_INS_VQDMLAL = 336;;
+let _ARM_INS_VQDMLSL = 337;;
+let _ARM_INS_VQDMULH = 338;;
+let _ARM_INS_VQDMULL = 339;;
+let _ARM_INS_VQMOVUN = 340;;
+let _ARM_INS_VQMOVN = 341;;
+let _ARM_INS_VQNEG = 342;;
+let _ARM_INS_VQRDMULH = 343;;
+let _ARM_INS_VQRSHL = 344;;
+let _ARM_INS_VQRSHRN = 345;;
+let _ARM_INS_VQRSHRUN = 346;;
+let _ARM_INS_VQSHL = 347;;
+let _ARM_INS_VQSHLU = 348;;
+let _ARM_INS_VQSHRN = 349;;
+let _ARM_INS_VQSHRUN = 350;;
+let _ARM_INS_VQSUB = 351;;
+let _ARM_INS_VRADDHN = 352;;
+let _ARM_INS_VRECPE = 353;;
+let _ARM_INS_VRECPS = 354;;
+let _ARM_INS_VREV16 = 355;;
+let _ARM_INS_VREV32 = 356;;
+let _ARM_INS_VREV64 = 357;;
+let _ARM_INS_VRHADD = 358;;
+let _ARM_INS_VRINTA = 359;;
+let _ARM_INS_VRINTM = 360;;
+let _ARM_INS_VRINTN = 361;;
+let _ARM_INS_VRINTP = 362;;
+let _ARM_INS_VRINTR = 363;;
+let _ARM_INS_VRINTX = 364;;
+let _ARM_INS_VRINTZ = 365;;
+let _ARM_INS_VRSHL = 366;;
+let _ARM_INS_VRSHRN = 367;;
+let _ARM_INS_VRSHR = 368;;
+let _ARM_INS_VRSQRTE = 369;;
+let _ARM_INS_VRSQRTS = 370;;
+let _ARM_INS_VRSRA = 371;;
+let _ARM_INS_VRSUBHN = 372;;
+let _ARM_INS_VSELEQ = 373;;
+let _ARM_INS_VSELGE = 374;;
+let _ARM_INS_VSELGT = 375;;
+let _ARM_INS_VSELVS = 376;;
+let _ARM_INS_VSHLL = 377;;
+let _ARM_INS_VSHL = 378;;
+let _ARM_INS_VSHRN = 379;;
+let _ARM_INS_VSHR = 380;;
+let _ARM_INS_VSLI = 381;;
+let _ARM_INS_VSQRT = 382;;
+let _ARM_INS_VSRA = 383;;
+let _ARM_INS_VSRI = 384;;
+let _ARM_INS_VST1 = 385;;
+let _ARM_INS_VST2 = 386;;
+let _ARM_INS_VST3 = 387;;
+let _ARM_INS_VST4 = 388;;
+let _ARM_INS_VSTMDB = 389;;
+let _ARM_INS_VSTMIA = 390;;
+let _ARM_INS_VSTR = 391;;
+let _ARM_INS_VSUB = 392;;
+let _ARM_INS_VSUBHN = 393;;
+let _ARM_INS_VSUBL = 394;;
+let _ARM_INS_VSUBW = 395;;
+let _ARM_INS_VSWP = 396;;
+let _ARM_INS_VTBL = 397;;
+let _ARM_INS_VTBX = 398;;
+let _ARM_INS_VCVTR = 399;;
+let _ARM_INS_VTRN = 400;;
+let _ARM_INS_VTST = 401;;
+let _ARM_INS_VUZP = 402;;
+let _ARM_INS_VZIP = 403;;
+let _ARM_INS_ADDW = 404;;
+let _ARM_INS_ASR = 405;;
+let _ARM_INS_DCPS1 = 406;;
+let _ARM_INS_DCPS2 = 407;;
+let _ARM_INS_DCPS3 = 408;;
+let _ARM_INS_IT = 409;;
+let _ARM_INS_LSL = 410;;
+let _ARM_INS_LSR = 411;;
+let _ARM_INS_ASRS = 412;;
+let _ARM_INS_LSRS = 413;;
+let _ARM_INS_ORN = 414;;
+let _ARM_INS_ROR = 415;;
+let _ARM_INS_RRX = 416;;
+let _ARM_INS_SUBS = 417;;
+let _ARM_INS_SUBW = 418;;
+let _ARM_INS_TBB = 419;;
+let _ARM_INS_TBH = 420;;
+let _ARM_INS_CBNZ = 421;;
+let _ARM_INS_CBZ = 422;;
+let _ARM_INS_MOVS = 423;;
+let _ARM_INS_POP = 424;;
+let _ARM_INS_PUSH = 425;;
+let _ARM_INS_MAX = 426;;
+
+(* Group of ARM instructions *)
+
+let _ARM_GRP_INVALID = 0;;
+let _ARM_GRP_CRYPTO = 1;;
+let _ARM_GRP_DATABARRIER = 2;;
+let _ARM_GRP_DIVIDE = 3;;
+let _ARM_GRP_FPARMV8 = 4;;
+let _ARM_GRP_MULTPRO = 5;;
+let _ARM_GRP_NEON = 6;;
+let _ARM_GRP_T2EXTRACTPACK = 7;;
+let _ARM_GRP_THUMB2DSP = 8;;
+let _ARM_GRP_TRUSTZONE = 9;;
+let _ARM_GRP_V4T = 10;;
+let _ARM_GRP_V5T = 11;;
+let _ARM_GRP_V5TE = 12;;
+let _ARM_GRP_V6 = 13;;
+let _ARM_GRP_V6T2 = 14;;
+let _ARM_GRP_V7 = 15;;
+let _ARM_GRP_V8 = 16;;
+let _ARM_GRP_VFP2 = 17;;
+let _ARM_GRP_VFP3 = 18;;
+let _ARM_GRP_VFP4 = 19;;
+let _ARM_GRP_ARM = 20;;
+let _ARM_GRP_MCLASS = 21;;
+let _ARM_GRP_NOTMCLASS = 22;;
+let _ARM_GRP_THUMB = 23;;
+let _ARM_GRP_THUMB1ONLY = 24;;
+let _ARM_GRP_THUMB2 = 25;;
+let _ARM_GRP_PREV8 = 26;;
+let _ARM_GRP_FPVMLX = 27;;
+let _ARM_GRP_MULOPS = 28;;
+let _ARM_GRP_CRC = 29;;
+let _ARM_GRP_DPVFP = 30;;
+let _ARM_GRP_V6M = 31;;
+let _ARM_GRP_JUMP = 32;;
+let _ARM_GRP_MAX = 33;;
diff --git a/bindings/ocaml/mips.ml b/bindings/ocaml/mips.ml
index f46801c..2282973 100644
--- a/bindings/ocaml/mips.ml
+++ b/bindings/ocaml/mips.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> *)
 
+open Mips_const
+
 (* architecture specific info of instruction *)
 type mips_op_mem = {
 	base: int;
@@ -21,661 +23,3 @@
 	op_count: int;
 	operands: mips_op array;
 }
-
-(*  Operand type for instruction's operands *)
-let _MIPS_OP_INVALID = 0;;
-let _MIPS_OP_REG = 1;;
-let _MIPS_OP_IMM = 2;;
-let _MIPS_OP_MEM = 3;;
-
-(* MIPS registers *)
-let _MIPS_REG_INVALID = 0;;
-let _MIPS_REG_0 = 1;;
-let _MIPS_REG_1 = 2;;
-let _MIPS_REG_2 = 3;;
-let _MIPS_REG_3 = 4;;
-let _MIPS_REG_4 = 5;;
-let _MIPS_REG_5 = 6;;
-let _MIPS_REG_6 = 7;;
-let _MIPS_REG_7 = 8;;
-let _MIPS_REG_8 = 9;;
-let _MIPS_REG_9 = 10;;
-let _MIPS_REG_10 = 11;;
-let _MIPS_REG_11 = 12;;
-let _MIPS_REG_12 = 13;;
-let _MIPS_REG_13 = 14;;
-let _MIPS_REG_14 = 15;;
-let _MIPS_REG_15 = 16;;
-let _MIPS_REG_16 = 17;;
-let _MIPS_REG_17 = 18;;
-let _MIPS_REG_18 = 19;;
-let _MIPS_REG_19 = 20;;
-let _MIPS_REG_20 = 21;;
-let _MIPS_REG_21 = 22;;
-let _MIPS_REG_22 = 23;;
-let _MIPS_REG_23 = 24;;
-let _MIPS_REG_24 = 25;;
-let _MIPS_REG_25 = 26;;
-let _MIPS_REG_26 = 27;;
-let _MIPS_REG_27 = 28;;
-let _MIPS_REG_28 = 29;;
-let _MIPS_REG_29 = 30;;
-let _MIPS_REG_30 = 31;;
-let _MIPS_REG_31 = 32;;
-let _MIPS_REG_DSPCCOND = 33;;
-let _MIPS_REG_DSPCARRY = 34;;
-let _MIPS_REG_DSPEFI = 35;;
-let _MIPS_REG_DSPOUTFLAG = 36;;
-let _MIPS_REG_DSPOUTFLAG16_19 = 37;;
-let _MIPS_REG_DSPOUTFLAG20 = 38;;
-let _MIPS_REG_DSPOUTFLAG21 = 39;;
-let _MIPS_REG_DSPOUTFLAG22 = 40;;
-let _MIPS_REG_DSPOUTFLAG23 = 41;;
-let _MIPS_REG_DSPPOS = 42;;
-let _MIPS_REG_DSPSCOUNT = 43;;
-let _MIPS_REG_AC0 = 44;;
-let _MIPS_REG_AC1 = 45;;
-let _MIPS_REG_AC2 = 46;;
-let _MIPS_REG_AC3 = 47;;
-let _MIPS_REG_F0 = 48;;
-let _MIPS_REG_F1 = 49;;
-let _MIPS_REG_F2 = 50;;
-let _MIPS_REG_F3 = 51;;
-let _MIPS_REG_F4 = 52;;
-let _MIPS_REG_F5 = 53;;
-let _MIPS_REG_F6 = 54;;
-let _MIPS_REG_F7 = 55;;
-let _MIPS_REG_F8 = 56;;
-let _MIPS_REG_F9 = 57;;
-let _MIPS_REG_F10 = 58;;
-let _MIPS_REG_F11 = 59;;
-let _MIPS_REG_F12 = 60;;
-let _MIPS_REG_F13 = 61;;
-let _MIPS_REG_F14 = 62;;
-let _MIPS_REG_F15 = 63;;
-let _MIPS_REG_F16 = 64;;
-let _MIPS_REG_F17 = 65;;
-let _MIPS_REG_F18 = 66;;
-let _MIPS_REG_F19 = 67;;
-let _MIPS_REG_F20 = 68;;
-let _MIPS_REG_F21 = 69;;
-let _MIPS_REG_F22 = 70;;
-let _MIPS_REG_F23 = 71;;
-let _MIPS_REG_F24 = 72;;
-let _MIPS_REG_F25 = 73;;
-let _MIPS_REG_F26 = 74;;
-let _MIPS_REG_F27 = 75;;
-let _MIPS_REG_F28 = 76;;
-let _MIPS_REG_F29 = 77;;
-let _MIPS_REG_F30 = 78;;
-let _MIPS_REG_F31 = 79;;
-let _MIPS_REG_FCC0 = 80;;
-let _MIPS_REG_FCC1 = 81;;
-let _MIPS_REG_FCC2 = 82;;
-let _MIPS_REG_FCC3 = 83;;
-let _MIPS_REG_FCC4 = 84;;
-let _MIPS_REG_FCC5 = 85;;
-let _MIPS_REG_FCC6 = 86;;
-let _MIPS_REG_FCC7 = 87;;
-let _MIPS_REG_W0 = 88;;
-let _MIPS_REG_W1 = 89;;
-let _MIPS_REG_W2 = 90;;
-let _MIPS_REG_W3 = 91;;
-let _MIPS_REG_W4 = 92;;
-let _MIPS_REG_W5 = 93;;
-let _MIPS_REG_W6 = 94;;
-let _MIPS_REG_W7 = 95;;
-let _MIPS_REG_W8 = 96;;
-let _MIPS_REG_W9 = 97;;
-let _MIPS_REG_W10 = 98;;
-let _MIPS_REG_W11 = 99;;
-let _MIPS_REG_W12 = 100;;
-let _MIPS_REG_W13 = 101;;
-let _MIPS_REG_W14 = 102;;
-let _MIPS_REG_W15 = 103;;
-let _MIPS_REG_W16 = 104;;
-let _MIPS_REG_W17 = 105;;
-let _MIPS_REG_W18 = 106;;
-let _MIPS_REG_W19 = 107;;
-let _MIPS_REG_W20 = 108;;
-let _MIPS_REG_W21 = 109;;
-let _MIPS_REG_W22 = 110;;
-let _MIPS_REG_W23 = 111;;
-let _MIPS_REG_W24 = 112;;
-let _MIPS_REG_W25 = 113;;
-let _MIPS_REG_W26 = 114;;
-let _MIPS_REG_W27 = 115;;
-let _MIPS_REG_W28 = 116;;
-let _MIPS_REG_W29 = 117;;
-let _MIPS_REG_W30 = 118;;
-let _MIPS_REG_W31 = 119;;
-let _MIPS_REG_HI = 120;;
-let _MIPS_REG_LO = 121;;
-let _MIPS_REG_PC = 122;;
-let _MIPS_REG_MAX = 123;;
-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;;
-
-(* MIPS instructions *)
-let _MIPS_INS_INVALID = 0;;
-let _MIPS_INS_ABSQ_S = 1;;
-let _MIPS_INS_ADD = 2;;
-let _MIPS_INS_ADDQH = 3;;
-let _MIPS_INS_ADDQH_R = 4;;
-let _MIPS_INS_ADDQ = 5;;
-let _MIPS_INS_ADDQ_S = 6;;
-let _MIPS_INS_ADDSC = 7;;
-let _MIPS_INS_ADDS_A = 8;;
-let _MIPS_INS_ADDS_S = 9;;
-let _MIPS_INS_ADDS_U = 10;;
-let _MIPS_INS_ADDUH = 11;;
-let _MIPS_INS_ADDUH_R = 12;;
-let _MIPS_INS_ADDU = 13;;
-let _MIPS_INS_ADDU_S = 14;;
-let _MIPS_INS_ADDVI = 15;;
-let _MIPS_INS_ADDV = 16;;
-let _MIPS_INS_ADDWC = 17;;
-let _MIPS_INS_ADD_A = 18;;
-let _MIPS_INS_ADDI = 19;;
-let _MIPS_INS_ADDIU = 20;;
-let _MIPS_INS_AND = 21;;
-let _MIPS_INS_ANDI = 22;;
-let _MIPS_INS_APPEND = 23;;
-let _MIPS_INS_ASUB_S = 24;;
-let _MIPS_INS_ASUB_U = 25;;
-let _MIPS_INS_AVER_S = 26;;
-let _MIPS_INS_AVER_U = 27;;
-let _MIPS_INS_AVE_S = 28;;
-let _MIPS_INS_AVE_U = 29;;
-let _MIPS_INS_BALIGN = 30;;
-let _MIPS_INS_BC1F = 31;;
-let _MIPS_INS_BC1T = 32;;
-let _MIPS_INS_BCLRI = 33;;
-let _MIPS_INS_BCLR = 34;;
-let _MIPS_INS_BEQ = 35;;
-let _MIPS_INS_BGEZ = 36;;
-let _MIPS_INS_BGEZAL = 37;;
-let _MIPS_INS_BGTZ = 38;;
-let _MIPS_INS_BINSLI = 39;;
-let _MIPS_INS_BINSL = 40;;
-let _MIPS_INS_BINSRI = 41;;
-let _MIPS_INS_BINSR = 42;;
-let _MIPS_INS_BITREV = 43;;
-let _MIPS_INS_BLEZ = 44;;
-let _MIPS_INS_BLTZ = 45;;
-let _MIPS_INS_BLTZAL = 46;;
-let _MIPS_INS_BMNZI = 47;;
-let _MIPS_INS_BMNZ = 48;;
-let _MIPS_INS_BMZI = 49;;
-let _MIPS_INS_BMZ = 50;;
-let _MIPS_INS_BNE = 51;;
-let _MIPS_INS_BNEGI = 52;;
-let _MIPS_INS_BNEG = 53;;
-let _MIPS_INS_BNZ = 54;;
-let _MIPS_INS_BPOSGE32 = 55;;
-let _MIPS_INS_BREAK = 56;;
-let _MIPS_INS_BSELI = 57;;
-let _MIPS_INS_BSEL = 58;;
-let _MIPS_INS_BSETI = 59;;
-let _MIPS_INS_BSET = 60;;
-let _MIPS_INS_BZ = 61;;
-let _MIPS_INS_BEQZ = 62;;
-let _MIPS_INS_B = 63;;
-let _MIPS_INS_BNEZ = 64;;
-let _MIPS_INS_BTEQZ = 65;;
-let _MIPS_INS_BTNEZ = 66;;
-let _MIPS_INS_CEIL = 67;;
-let _MIPS_INS_CEQI = 68;;
-let _MIPS_INS_CEQ = 69;;
-let _MIPS_INS_CFC1 = 70;;
-let _MIPS_INS_CFCMSA = 71;;
-let _MIPS_INS_CLEI_S = 72;;
-let _MIPS_INS_CLEI_U = 73;;
-let _MIPS_INS_CLE_S = 74;;
-let _MIPS_INS_CLE_U = 75;;
-let _MIPS_INS_CLO = 76;;
-let _MIPS_INS_CLTI_S = 77;;
-let _MIPS_INS_CLTI_U = 78;;
-let _MIPS_INS_CLT_S = 79;;
-let _MIPS_INS_CLT_U = 80;;
-let _MIPS_INS_CLZ = 81;;
-let _MIPS_INS_CMPGDU = 82;;
-let _MIPS_INS_CMPGU = 83;;
-let _MIPS_INS_CMPU = 84;;
-let _MIPS_INS_CMP = 85;;
-let _MIPS_INS_COPY_S = 86;;
-let _MIPS_INS_COPY_U = 87;;
-let _MIPS_INS_CTC1 = 88;;
-let _MIPS_INS_CTCMSA = 89;;
-let _MIPS_INS_CVT = 90;;
-let _MIPS_INS_C = 91;;
-let _MIPS_INS_CMPI = 92;;
-let _MIPS_INS_DADD = 93;;
-let _MIPS_INS_DADDI = 94;;
-let _MIPS_INS_DADDIU = 95;;
-let _MIPS_INS_DADDU = 96;;
-let _MIPS_INS_DCLO = 97;;
-let _MIPS_INS_DCLZ = 98;;
-let _MIPS_INS_DERET = 99;;
-let _MIPS_INS_DEXT = 100;;
-let _MIPS_INS_DEXTM = 101;;
-let _MIPS_INS_DEXTU = 102;;
-let _MIPS_INS_DI = 103;;
-let _MIPS_INS_DINS = 104;;
-let _MIPS_INS_DINSM = 105;;
-let _MIPS_INS_DINSU = 106;;
-let _MIPS_INS_DIV_S = 107;;
-let _MIPS_INS_DIV_U = 108;;
-let _MIPS_INS_DLSA = 109;;
-let _MIPS_INS_DMFC0 = 110;;
-let _MIPS_INS_DMFC1 = 111;;
-let _MIPS_INS_DMFC2 = 112;;
-let _MIPS_INS_DMTC0 = 113;;
-let _MIPS_INS_DMTC1 = 114;;
-let _MIPS_INS_DMTC2 = 115;;
-let _MIPS_INS_DMULT = 116;;
-let _MIPS_INS_DMULTU = 117;;
-let _MIPS_INS_DOTP_S = 118;;
-let _MIPS_INS_DOTP_U = 119;;
-let _MIPS_INS_DPADD_S = 120;;
-let _MIPS_INS_DPADD_U = 121;;
-let _MIPS_INS_DPAQX_SA = 122;;
-let _MIPS_INS_DPAQX_S = 123;;
-let _MIPS_INS_DPAQ_SA = 124;;
-let _MIPS_INS_DPAQ_S = 125;;
-let _MIPS_INS_DPAU = 126;;
-let _MIPS_INS_DPAX = 127;;
-let _MIPS_INS_DPA = 128;;
-let _MIPS_INS_DPSQX_SA = 129;;
-let _MIPS_INS_DPSQX_S = 130;;
-let _MIPS_INS_DPSQ_SA = 131;;
-let _MIPS_INS_DPSQ_S = 132;;
-let _MIPS_INS_DPSUB_S = 133;;
-let _MIPS_INS_DPSUB_U = 134;;
-let _MIPS_INS_DPSU = 135;;
-let _MIPS_INS_DPSX = 136;;
-let _MIPS_INS_DPS = 137;;
-let _MIPS_INS_DROTR = 138;;
-let _MIPS_INS_DROTR32 = 139;;
-let _MIPS_INS_DROTRV = 140;;
-let _MIPS_INS_DSBH = 141;;
-let _MIPS_INS_DDIV = 142;;
-let _MIPS_INS_DSHD = 143;;
-let _MIPS_INS_DSLL = 144;;
-let _MIPS_INS_DSLL32 = 145;;
-let _MIPS_INS_DSLLV = 146;;
-let _MIPS_INS_DSRA = 147;;
-let _MIPS_INS_DSRA32 = 148;;
-let _MIPS_INS_DSRAV = 149;;
-let _MIPS_INS_DSRL = 150;;
-let _MIPS_INS_DSRL32 = 151;;
-let _MIPS_INS_DSRLV = 152;;
-let _MIPS_INS_DSUBU = 153;;
-let _MIPS_INS_DDIVU = 154;;
-let _MIPS_INS_DIV = 155;;
-let _MIPS_INS_DIVU = 156;;
-let _MIPS_INS_EI = 157;;
-let _MIPS_INS_ERET = 158;;
-let _MIPS_INS_EXT = 159;;
-let _MIPS_INS_EXTP = 160;;
-let _MIPS_INS_EXTPDP = 161;;
-let _MIPS_INS_EXTPDPV = 162;;
-let _MIPS_INS_EXTPV = 163;;
-let _MIPS_INS_EXTRV_RS = 164;;
-let _MIPS_INS_EXTRV_R = 165;;
-let _MIPS_INS_EXTRV_S = 166;;
-let _MIPS_INS_EXTRV = 167;;
-let _MIPS_INS_EXTR_RS = 168;;
-let _MIPS_INS_EXTR_R = 169;;
-let _MIPS_INS_EXTR_S = 170;;
-let _MIPS_INS_EXTR = 171;;
-let _MIPS_INS_ABS = 172;;
-let _MIPS_INS_FADD = 173;;
-let _MIPS_INS_FCAF = 174;;
-let _MIPS_INS_FCEQ = 175;;
-let _MIPS_INS_FCLASS = 176;;
-let _MIPS_INS_FCLE = 177;;
-let _MIPS_INS_FCLT = 178;;
-let _MIPS_INS_FCNE = 179;;
-let _MIPS_INS_FCOR = 180;;
-let _MIPS_INS_FCUEQ = 181;;
-let _MIPS_INS_FCULE = 182;;
-let _MIPS_INS_FCULT = 183;;
-let _MIPS_INS_FCUNE = 184;;
-let _MIPS_INS_FCUN = 185;;
-let _MIPS_INS_FDIV = 186;;
-let _MIPS_INS_FEXDO = 187;;
-let _MIPS_INS_FEXP2 = 188;;
-let _MIPS_INS_FEXUPL = 189;;
-let _MIPS_INS_FEXUPR = 190;;
-let _MIPS_INS_FFINT_S = 191;;
-let _MIPS_INS_FFINT_U = 192;;
-let _MIPS_INS_FFQL = 193;;
-let _MIPS_INS_FFQR = 194;;
-let _MIPS_INS_FILL = 195;;
-let _MIPS_INS_FLOG2 = 196;;
-let _MIPS_INS_FLOOR = 197;;
-let _MIPS_INS_FMADD = 198;;
-let _MIPS_INS_FMAX_A = 199;;
-let _MIPS_INS_FMAX = 200;;
-let _MIPS_INS_FMIN_A = 201;;
-let _MIPS_INS_FMIN = 202;;
-let _MIPS_INS_MOV = 203;;
-let _MIPS_INS_FMSUB = 204;;
-let _MIPS_INS_FMUL = 205;;
-let _MIPS_INS_MUL = 206;;
-let _MIPS_INS_NEG = 207;;
-let _MIPS_INS_FRCP = 208;;
-let _MIPS_INS_FRINT = 209;;
-let _MIPS_INS_FRSQRT = 210;;
-let _MIPS_INS_FSAF = 211;;
-let _MIPS_INS_FSEQ = 212;;
-let _MIPS_INS_FSLE = 213;;
-let _MIPS_INS_FSLT = 214;;
-let _MIPS_INS_FSNE = 215;;
-let _MIPS_INS_FSOR = 216;;
-let _MIPS_INS_FSQRT = 217;;
-let _MIPS_INS_SQRT = 218;;
-let _MIPS_INS_FSUB = 219;;
-let _MIPS_INS_SUB = 220;;
-let _MIPS_INS_FSUEQ = 221;;
-let _MIPS_INS_FSULE = 222;;
-let _MIPS_INS_FSULT = 223;;
-let _MIPS_INS_FSUNE = 224;;
-let _MIPS_INS_FSUN = 225;;
-let _MIPS_INS_FTINT_S = 226;;
-let _MIPS_INS_FTINT_U = 227;;
-let _MIPS_INS_FTQ = 228;;
-let _MIPS_INS_FTRUNC_S = 229;;
-let _MIPS_INS_FTRUNC_U = 230;;
-let _MIPS_INS_HADD_S = 231;;
-let _MIPS_INS_HADD_U = 232;;
-let _MIPS_INS_HSUB_S = 233;;
-let _MIPS_INS_HSUB_U = 234;;
-let _MIPS_INS_ILVEV = 235;;
-let _MIPS_INS_ILVL = 236;;
-let _MIPS_INS_ILVOD = 237;;
-let _MIPS_INS_ILVR = 238;;
-let _MIPS_INS_INS = 239;;
-let _MIPS_INS_INSERT = 240;;
-let _MIPS_INS_INSV = 241;;
-let _MIPS_INS_INSVE = 242;;
-let _MIPS_INS_J = 243;;
-let _MIPS_INS_JAL = 244;;
-let _MIPS_INS_JALR = 245;;
-let _MIPS_INS_JR = 246;;
-let _MIPS_INS_JRC = 247;;
-let _MIPS_INS_JALRC = 248;;
-let _MIPS_INS_LB = 249;;
-let _MIPS_INS_LBUX = 250;;
-let _MIPS_INS_LBU = 251;;
-let _MIPS_INS_LD = 252;;
-let _MIPS_INS_LDC1 = 253;;
-let _MIPS_INS_LDC2 = 254;;
-let _MIPS_INS_LDI = 255;;
-let _MIPS_INS_LDL = 256;;
-let _MIPS_INS_LDR = 257;;
-let _MIPS_INS_LDXC1 = 258;;
-let _MIPS_INS_LH = 259;;
-let _MIPS_INS_LHX = 260;;
-let _MIPS_INS_LHU = 261;;
-let _MIPS_INS_LL = 262;;
-let _MIPS_INS_LLD = 263;;
-let _MIPS_INS_LSA = 264;;
-let _MIPS_INS_LUXC1 = 265;;
-let _MIPS_INS_LUI = 266;;
-let _MIPS_INS_LW = 267;;
-let _MIPS_INS_LWC1 = 268;;
-let _MIPS_INS_LWC2 = 269;;
-let _MIPS_INS_LWL = 270;;
-let _MIPS_INS_LWR = 271;;
-let _MIPS_INS_LWU = 272;;
-let _MIPS_INS_LWX = 273;;
-let _MIPS_INS_LWXC1 = 274;;
-let _MIPS_INS_LI = 275;;
-let _MIPS_INS_MADD = 276;;
-let _MIPS_INS_MADDR_Q = 277;;
-let _MIPS_INS_MADDU = 278;;
-let _MIPS_INS_MADDV = 279;;
-let _MIPS_INS_MADD_Q = 280;;
-let _MIPS_INS_MAQ_SA = 281;;
-let _MIPS_INS_MAQ_S = 282;;
-let _MIPS_INS_MAXI_S = 283;;
-let _MIPS_INS_MAXI_U = 284;;
-let _MIPS_INS_MAX_A = 285;;
-let _MIPS_INS_MAX_S = 286;;
-let _MIPS_INS_MAX_U = 287;;
-let _MIPS_INS_MFC0 = 288;;
-let _MIPS_INS_MFC1 = 289;;
-let _MIPS_INS_MFC2 = 290;;
-let _MIPS_INS_MFHC1 = 291;;
-let _MIPS_INS_MFHI = 292;;
-let _MIPS_INS_MFLO = 293;;
-let _MIPS_INS_MINI_S = 294;;
-let _MIPS_INS_MINI_U = 295;;
-let _MIPS_INS_MIN_A = 296;;
-let _MIPS_INS_MIN_S = 297;;
-let _MIPS_INS_MIN_U = 298;;
-let _MIPS_INS_MODSUB = 299;;
-let _MIPS_INS_MOD_S = 300;;
-let _MIPS_INS_MOD_U = 301;;
-let _MIPS_INS_MOVE = 302;;
-let _MIPS_INS_MOVF = 303;;
-let _MIPS_INS_MOVN = 304;;
-let _MIPS_INS_MOVT = 305;;
-let _MIPS_INS_MOVZ = 306;;
-let _MIPS_INS_MSUB = 307;;
-let _MIPS_INS_MSUBR_Q = 308;;
-let _MIPS_INS_MSUBU = 309;;
-let _MIPS_INS_MSUBV = 310;;
-let _MIPS_INS_MSUB_Q = 311;;
-let _MIPS_INS_MTC0 = 312;;
-let _MIPS_INS_MTC1 = 313;;
-let _MIPS_INS_MTC2 = 314;;
-let _MIPS_INS_MTHC1 = 315;;
-let _MIPS_INS_MTHI = 316;;
-let _MIPS_INS_MTHLIP = 317;;
-let _MIPS_INS_MTLO = 318;;
-let _MIPS_INS_MULEQ_S = 319;;
-let _MIPS_INS_MULEU_S = 320;;
-let _MIPS_INS_MULQ_RS = 321;;
-let _MIPS_INS_MULQ_S = 322;;
-let _MIPS_INS_MULR_Q = 323;;
-let _MIPS_INS_MULSAQ_S = 324;;
-let _MIPS_INS_MULSA = 325;;
-let _MIPS_INS_MULT = 326;;
-let _MIPS_INS_MULTU = 327;;
-let _MIPS_INS_MULV = 328;;
-let _MIPS_INS_MUL_Q = 329;;
-let _MIPS_INS_MUL_S = 330;;
-let _MIPS_INS_NLOC = 331;;
-let _MIPS_INS_NLZC = 332;;
-let _MIPS_INS_NMADD = 333;;
-let _MIPS_INS_NMSUB = 334;;
-let _MIPS_INS_NOR = 335;;
-let _MIPS_INS_NORI = 336;;
-let _MIPS_INS_NOT = 337;;
-let _MIPS_INS_OR = 338;;
-let _MIPS_INS_ORI = 339;;
-let _MIPS_INS_PACKRL = 340;;
-let _MIPS_INS_PCKEV = 341;;
-let _MIPS_INS_PCKOD = 342;;
-let _MIPS_INS_PCNT = 343;;
-let _MIPS_INS_PICK = 344;;
-let _MIPS_INS_PRECEQU = 345;;
-let _MIPS_INS_PRECEQ = 346;;
-let _MIPS_INS_PRECEU = 347;;
-let _MIPS_INS_PRECRQU_S = 348;;
-let _MIPS_INS_PRECRQ = 349;;
-let _MIPS_INS_PRECRQ_RS = 350;;
-let _MIPS_INS_PRECR = 351;;
-let _MIPS_INS_PRECR_SRA = 352;;
-let _MIPS_INS_PRECR_SRA_R = 353;;
-let _MIPS_INS_PREPEND = 354;;
-let _MIPS_INS_RADDU = 355;;
-let _MIPS_INS_RDDSP = 356;;
-let _MIPS_INS_RDHWR = 357;;
-let _MIPS_INS_REPLV = 358;;
-let _MIPS_INS_REPL = 359;;
-let _MIPS_INS_ROTR = 360;;
-let _MIPS_INS_ROTRV = 361;;
-let _MIPS_INS_ROUND = 362;;
-let _MIPS_INS_SAT_S = 363;;
-let _MIPS_INS_SAT_U = 364;;
-let _MIPS_INS_SB = 365;;
-let _MIPS_INS_SC = 366;;
-let _MIPS_INS_SCD = 367;;
-let _MIPS_INS_SD = 368;;
-let _MIPS_INS_SDC1 = 369;;
-let _MIPS_INS_SDC2 = 370;;
-let _MIPS_INS_SDL = 371;;
-let _MIPS_INS_SDR = 372;;
-let _MIPS_INS_SDXC1 = 373;;
-let _MIPS_INS_SEB = 374;;
-let _MIPS_INS_SEH = 375;;
-let _MIPS_INS_SH = 376;;
-let _MIPS_INS_SHF = 377;;
-let _MIPS_INS_SHILO = 378;;
-let _MIPS_INS_SHILOV = 379;;
-let _MIPS_INS_SHLLV = 380;;
-let _MIPS_INS_SHLLV_S = 381;;
-let _MIPS_INS_SHLL = 382;;
-let _MIPS_INS_SHLL_S = 383;;
-let _MIPS_INS_SHRAV = 384;;
-let _MIPS_INS_SHRAV_R = 385;;
-let _MIPS_INS_SHRA = 386;;
-let _MIPS_INS_SHRA_R = 387;;
-let _MIPS_INS_SHRLV = 388;;
-let _MIPS_INS_SHRL = 389;;
-let _MIPS_INS_SLDI = 390;;
-let _MIPS_INS_SLD = 391;;
-let _MIPS_INS_SLL = 392;;
-let _MIPS_INS_SLLI = 393;;
-let _MIPS_INS_SLLV = 394;;
-let _MIPS_INS_SLT = 395;;
-let _MIPS_INS_SLTI = 396;;
-let _MIPS_INS_SLTIU = 397;;
-let _MIPS_INS_SLTU = 398;;
-let _MIPS_INS_SPLATI = 399;;
-let _MIPS_INS_SPLAT = 400;;
-let _MIPS_INS_SRA = 401;;
-let _MIPS_INS_SRAI = 402;;
-let _MIPS_INS_SRARI = 403;;
-let _MIPS_INS_SRAR = 404;;
-let _MIPS_INS_SRAV = 405;;
-let _MIPS_INS_SRL = 406;;
-let _MIPS_INS_SRLI = 407;;
-let _MIPS_INS_SRLRI = 408;;
-let _MIPS_INS_SRLR = 409;;
-let _MIPS_INS_SRLV = 410;;
-let _MIPS_INS_ST = 411;;
-let _MIPS_INS_SUBQH = 412;;
-let _MIPS_INS_SUBQH_R = 413;;
-let _MIPS_INS_SUBQ = 414;;
-let _MIPS_INS_SUBQ_S = 415;;
-let _MIPS_INS_SUBSUS_U = 416;;
-let _MIPS_INS_SUBSUU_S = 417;;
-let _MIPS_INS_SUBS_S = 418;;
-let _MIPS_INS_SUBS_U = 419;;
-let _MIPS_INS_SUBUH = 420;;
-let _MIPS_INS_SUBUH_R = 421;;
-let _MIPS_INS_SUBU = 422;;
-let _MIPS_INS_SUBU_S = 423;;
-let _MIPS_INS_SUBVI = 424;;
-let _MIPS_INS_SUBV = 425;;
-let _MIPS_INS_SUXC1 = 426;;
-let _MIPS_INS_SW = 427;;
-let _MIPS_INS_SWC1 = 428;;
-let _MIPS_INS_SWC2 = 429;;
-let _MIPS_INS_SWL = 430;;
-let _MIPS_INS_SWR = 431;;
-let _MIPS_INS_SWXC1 = 432;;
-let _MIPS_INS_SYNC = 433;;
-let _MIPS_INS_SYSCALL = 434;;
-let _MIPS_INS_TEQ = 435;;
-let _MIPS_INS_TEQI = 436;;
-let _MIPS_INS_TGE = 437;;
-let _MIPS_INS_TGEI = 438;;
-let _MIPS_INS_TGEIU = 439;;
-let _MIPS_INS_TGEU = 440;;
-let _MIPS_INS_TLT = 441;;
-let _MIPS_INS_TLTI = 442;;
-let _MIPS_INS_TLTIU = 443;;
-let _MIPS_INS_TLTU = 444;;
-let _MIPS_INS_TNE = 445;;
-let _MIPS_INS_TNEI = 446;;
-let _MIPS_INS_TRUNC = 447;;
-let _MIPS_INS_VSHF = 448;;
-let _MIPS_INS_WAIT = 449;;
-let _MIPS_INS_WRDSP = 450;;
-let _MIPS_INS_WSBH = 451;;
-let _MIPS_INS_XOR = 452;;
-let _MIPS_INS_XORI = 453;;
-
-(*  some alias instructions *)
-let _MIPS_INS_NOP = 454;;
-let _MIPS_INS_NEGU = 455;;
-let _MIPS_INS_MAX = 456;;
-
-(* MIPS group of instructions *)
-let _MIPS_GRP_INVALID = 0;;
-let _MIPS_GRP_BITCOUNT = 1;;
-let _MIPS_GRP_DSP = 2;;
-let _MIPS_GRP_DSPR2 = 3;;
-let _MIPS_GRP_FPIDX = 4;;
-let _MIPS_GRP_MSA = 5;;
-let _MIPS_GRP_MIPS32R2 = 6;;
-let _MIPS_GRP_MIPS64 = 7;;
-let _MIPS_GRP_MIPS64R2 = 8;;
-let _MIPS_GRP_SEINREG = 9;;
-let _MIPS_GRP_STDENC = 10;;
-let _MIPS_GRP_SWAP = 11;;
-let _MIPS_GRP_MICROMIPS = 12;;
-let _MIPS_GRP_MIPS16MODE = 13;;
-let _MIPS_GRP_FP64BIT = 14;;
-let _MIPS_GRP_NONANSFPMATH = 15;;
-let _MIPS_GRP_NOTFP64BIT = 16;;
-let _MIPS_GRP_NOTINMICROMIPS = 17;;
-let _MIPS_GRP_NOTNACL = 18;;
-let _MIPS_GRP_JUMP = 19;;
-let _MIPS_GRP_MAX = 20;;
-
diff --git a/bindings/ocaml/mips_const.ml b/bindings/ocaml/mips_const.ml
new file mode 100644
index 0000000..58a4fd7
--- /dev/null
+++ b/bindings/ocaml/mips_const.ml
@@ -0,0 +1,662 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [mips_const.ml] *)
+
+(* Operand type for instruction's operands *)
+
+let _MIPS_OP_INVALID = 0;;
+let _MIPS_OP_REG = 1;;
+let _MIPS_OP_IMM = 2;;
+let _MIPS_OP_MEM = 3;;
+
+(* MIPS registers *)
+
+let _MIPS_REG_INVALID = 0;;
+let _MIPS_REG_0 = 1;;
+let _MIPS_REG_1 = 2;;
+let _MIPS_REG_2 = 3;;
+let _MIPS_REG_3 = 4;;
+let _MIPS_REG_4 = 5;;
+let _MIPS_REG_5 = 6;;
+let _MIPS_REG_6 = 7;;
+let _MIPS_REG_7 = 8;;
+let _MIPS_REG_8 = 9;;
+let _MIPS_REG_9 = 10;;
+let _MIPS_REG_10 = 11;;
+let _MIPS_REG_11 = 12;;
+let _MIPS_REG_12 = 13;;
+let _MIPS_REG_13 = 14;;
+let _MIPS_REG_14 = 15;;
+let _MIPS_REG_15 = 16;;
+let _MIPS_REG_16 = 17;;
+let _MIPS_REG_17 = 18;;
+let _MIPS_REG_18 = 19;;
+let _MIPS_REG_19 = 20;;
+let _MIPS_REG_20 = 21;;
+let _MIPS_REG_21 = 22;;
+let _MIPS_REG_22 = 23;;
+let _MIPS_REG_23 = 24;;
+let _MIPS_REG_24 = 25;;
+let _MIPS_REG_25 = 26;;
+let _MIPS_REG_26 = 27;;
+let _MIPS_REG_27 = 28;;
+let _MIPS_REG_28 = 29;;
+let _MIPS_REG_29 = 30;;
+let _MIPS_REG_30 = 31;;
+let _MIPS_REG_31 = 32;;
+let _MIPS_REG_DSPCCOND = 33;;
+let _MIPS_REG_DSPCARRY = 34;;
+let _MIPS_REG_DSPEFI = 35;;
+let _MIPS_REG_DSPOUTFLAG = 36;;
+let _MIPS_REG_DSPOUTFLAG16_19 = 37;;
+let _MIPS_REG_DSPOUTFLAG20 = 38;;
+let _MIPS_REG_DSPOUTFLAG21 = 39;;
+let _MIPS_REG_DSPOUTFLAG22 = 40;;
+let _MIPS_REG_DSPOUTFLAG23 = 41;;
+let _MIPS_REG_DSPPOS = 42;;
+let _MIPS_REG_DSPSCOUNT = 43;;
+let _MIPS_REG_AC0 = 44;;
+let _MIPS_REG_AC1 = 45;;
+let _MIPS_REG_AC2 = 46;;
+let _MIPS_REG_AC3 = 47;;
+let _MIPS_REG_F0 = 48;;
+let _MIPS_REG_F1 = 49;;
+let _MIPS_REG_F2 = 50;;
+let _MIPS_REG_F3 = 51;;
+let _MIPS_REG_F4 = 52;;
+let _MIPS_REG_F5 = 53;;
+let _MIPS_REG_F6 = 54;;
+let _MIPS_REG_F7 = 55;;
+let _MIPS_REG_F8 = 56;;
+let _MIPS_REG_F9 = 57;;
+let _MIPS_REG_F10 = 58;;
+let _MIPS_REG_F11 = 59;;
+let _MIPS_REG_F12 = 60;;
+let _MIPS_REG_F13 = 61;;
+let _MIPS_REG_F14 = 62;;
+let _MIPS_REG_F15 = 63;;
+let _MIPS_REG_F16 = 64;;
+let _MIPS_REG_F17 = 65;;
+let _MIPS_REG_F18 = 66;;
+let _MIPS_REG_F19 = 67;;
+let _MIPS_REG_F20 = 68;;
+let _MIPS_REG_F21 = 69;;
+let _MIPS_REG_F22 = 70;;
+let _MIPS_REG_F23 = 71;;
+let _MIPS_REG_F24 = 72;;
+let _MIPS_REG_F25 = 73;;
+let _MIPS_REG_F26 = 74;;
+let _MIPS_REG_F27 = 75;;
+let _MIPS_REG_F28 = 76;;
+let _MIPS_REG_F29 = 77;;
+let _MIPS_REG_F30 = 78;;
+let _MIPS_REG_F31 = 79;;
+let _MIPS_REG_FCC0 = 80;;
+let _MIPS_REG_FCC1 = 81;;
+let _MIPS_REG_FCC2 = 82;;
+let _MIPS_REG_FCC3 = 83;;
+let _MIPS_REG_FCC4 = 84;;
+let _MIPS_REG_FCC5 = 85;;
+let _MIPS_REG_FCC6 = 86;;
+let _MIPS_REG_FCC7 = 87;;
+let _MIPS_REG_W0 = 88;;
+let _MIPS_REG_W1 = 89;;
+let _MIPS_REG_W2 = 90;;
+let _MIPS_REG_W3 = 91;;
+let _MIPS_REG_W4 = 92;;
+let _MIPS_REG_W5 = 93;;
+let _MIPS_REG_W6 = 94;;
+let _MIPS_REG_W7 = 95;;
+let _MIPS_REG_W8 = 96;;
+let _MIPS_REG_W9 = 97;;
+let _MIPS_REG_W10 = 98;;
+let _MIPS_REG_W11 = 99;;
+let _MIPS_REG_W12 = 100;;
+let _MIPS_REG_W13 = 101;;
+let _MIPS_REG_W14 = 102;;
+let _MIPS_REG_W15 = 103;;
+let _MIPS_REG_W16 = 104;;
+let _MIPS_REG_W17 = 105;;
+let _MIPS_REG_W18 = 106;;
+let _MIPS_REG_W19 = 107;;
+let _MIPS_REG_W20 = 108;;
+let _MIPS_REG_W21 = 109;;
+let _MIPS_REG_W22 = 110;;
+let _MIPS_REG_W23 = 111;;
+let _MIPS_REG_W24 = 112;;
+let _MIPS_REG_W25 = 113;;
+let _MIPS_REG_W26 = 114;;
+let _MIPS_REG_W27 = 115;;
+let _MIPS_REG_W28 = 116;;
+let _MIPS_REG_W29 = 117;;
+let _MIPS_REG_W30 = 118;;
+let _MIPS_REG_W31 = 119;;
+let _MIPS_REG_HI = 120;;
+let _MIPS_REG_LO = 121;;
+let _MIPS_REG_PC = 122;;
+let _MIPS_REG_MAX = 123;;
+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;;
+
+(* MIPS instruction *)
+
+let _MIPS_INS_INVALID = 0;;
+let _MIPS_INS_ABSQ_S = 1;;
+let _MIPS_INS_ADD = 2;;
+let _MIPS_INS_ADDQH = 3;;
+let _MIPS_INS_ADDQH_R = 4;;
+let _MIPS_INS_ADDQ = 5;;
+let _MIPS_INS_ADDQ_S = 6;;
+let _MIPS_INS_ADDSC = 7;;
+let _MIPS_INS_ADDS_A = 8;;
+let _MIPS_INS_ADDS_S = 9;;
+let _MIPS_INS_ADDS_U = 10;;
+let _MIPS_INS_ADDUH = 11;;
+let _MIPS_INS_ADDUH_R = 12;;
+let _MIPS_INS_ADDU = 13;;
+let _MIPS_INS_ADDU_S = 14;;
+let _MIPS_INS_ADDVI = 15;;
+let _MIPS_INS_ADDV = 16;;
+let _MIPS_INS_ADDWC = 17;;
+let _MIPS_INS_ADD_A = 18;;
+let _MIPS_INS_ADDI = 19;;
+let _MIPS_INS_ADDIU = 20;;
+let _MIPS_INS_AND = 21;;
+let _MIPS_INS_ANDI = 22;;
+let _MIPS_INS_APPEND = 23;;
+let _MIPS_INS_ASUB_S = 24;;
+let _MIPS_INS_ASUB_U = 25;;
+let _MIPS_INS_AVER_S = 26;;
+let _MIPS_INS_AVER_U = 27;;
+let _MIPS_INS_AVE_S = 28;;
+let _MIPS_INS_AVE_U = 29;;
+let _MIPS_INS_BALIGN = 30;;
+let _MIPS_INS_BC1F = 31;;
+let _MIPS_INS_BC1T = 32;;
+let _MIPS_INS_BCLRI = 33;;
+let _MIPS_INS_BCLR = 34;;
+let _MIPS_INS_BEQ = 35;;
+let _MIPS_INS_BGEZ = 36;;
+let _MIPS_INS_BGEZAL = 37;;
+let _MIPS_INS_BGTZ = 38;;
+let _MIPS_INS_BINSLI = 39;;
+let _MIPS_INS_BINSL = 40;;
+let _MIPS_INS_BINSRI = 41;;
+let _MIPS_INS_BINSR = 42;;
+let _MIPS_INS_BITREV = 43;;
+let _MIPS_INS_BLEZ = 44;;
+let _MIPS_INS_BLTZ = 45;;
+let _MIPS_INS_BLTZAL = 46;;
+let _MIPS_INS_BMNZI = 47;;
+let _MIPS_INS_BMNZ = 48;;
+let _MIPS_INS_BMZI = 49;;
+let _MIPS_INS_BMZ = 50;;
+let _MIPS_INS_BNE = 51;;
+let _MIPS_INS_BNEGI = 52;;
+let _MIPS_INS_BNEG = 53;;
+let _MIPS_INS_BNZ = 54;;
+let _MIPS_INS_BPOSGE32 = 55;;
+let _MIPS_INS_BREAK = 56;;
+let _MIPS_INS_BSELI = 57;;
+let _MIPS_INS_BSEL = 58;;
+let _MIPS_INS_BSETI = 59;;
+let _MIPS_INS_BSET = 60;;
+let _MIPS_INS_BZ = 61;;
+let _MIPS_INS_BEQZ = 62;;
+let _MIPS_INS_B = 63;;
+let _MIPS_INS_BNEZ = 64;;
+let _MIPS_INS_BTEQZ = 65;;
+let _MIPS_INS_BTNEZ = 66;;
+let _MIPS_INS_CEIL = 67;;
+let _MIPS_INS_CEQI = 68;;
+let _MIPS_INS_CEQ = 69;;
+let _MIPS_INS_CFC1 = 70;;
+let _MIPS_INS_CFCMSA = 71;;
+let _MIPS_INS_CLEI_S = 72;;
+let _MIPS_INS_CLEI_U = 73;;
+let _MIPS_INS_CLE_S = 74;;
+let _MIPS_INS_CLE_U = 75;;
+let _MIPS_INS_CLO = 76;;
+let _MIPS_INS_CLTI_S = 77;;
+let _MIPS_INS_CLTI_U = 78;;
+let _MIPS_INS_CLT_S = 79;;
+let _MIPS_INS_CLT_U = 80;;
+let _MIPS_INS_CLZ = 81;;
+let _MIPS_INS_CMPGDU = 82;;
+let _MIPS_INS_CMPGU = 83;;
+let _MIPS_INS_CMPU = 84;;
+let _MIPS_INS_CMP = 85;;
+let _MIPS_INS_COPY_S = 86;;
+let _MIPS_INS_COPY_U = 87;;
+let _MIPS_INS_CTC1 = 88;;
+let _MIPS_INS_CTCMSA = 89;;
+let _MIPS_INS_CVT = 90;;
+let _MIPS_INS_C = 91;;
+let _MIPS_INS_CMPI = 92;;
+let _MIPS_INS_DADD = 93;;
+let _MIPS_INS_DADDI = 94;;
+let _MIPS_INS_DADDIU = 95;;
+let _MIPS_INS_DADDU = 96;;
+let _MIPS_INS_DCLO = 97;;
+let _MIPS_INS_DCLZ = 98;;
+let _MIPS_INS_DERET = 99;;
+let _MIPS_INS_DEXT = 100;;
+let _MIPS_INS_DEXTM = 101;;
+let _MIPS_INS_DEXTU = 102;;
+let _MIPS_INS_DI = 103;;
+let _MIPS_INS_DINS = 104;;
+let _MIPS_INS_DINSM = 105;;
+let _MIPS_INS_DINSU = 106;;
+let _MIPS_INS_DIV_S = 107;;
+let _MIPS_INS_DIV_U = 108;;
+let _MIPS_INS_DLSA = 109;;
+let _MIPS_INS_DMFC0 = 110;;
+let _MIPS_INS_DMFC1 = 111;;
+let _MIPS_INS_DMFC2 = 112;;
+let _MIPS_INS_DMTC0 = 113;;
+let _MIPS_INS_DMTC1 = 114;;
+let _MIPS_INS_DMTC2 = 115;;
+let _MIPS_INS_DMULT = 116;;
+let _MIPS_INS_DMULTU = 117;;
+let _MIPS_INS_DOTP_S = 118;;
+let _MIPS_INS_DOTP_U = 119;;
+let _MIPS_INS_DPADD_S = 120;;
+let _MIPS_INS_DPADD_U = 121;;
+let _MIPS_INS_DPAQX_SA = 122;;
+let _MIPS_INS_DPAQX_S = 123;;
+let _MIPS_INS_DPAQ_SA = 124;;
+let _MIPS_INS_DPAQ_S = 125;;
+let _MIPS_INS_DPAU = 126;;
+let _MIPS_INS_DPAX = 127;;
+let _MIPS_INS_DPA = 128;;
+let _MIPS_INS_DPSQX_SA = 129;;
+let _MIPS_INS_DPSQX_S = 130;;
+let _MIPS_INS_DPSQ_SA = 131;;
+let _MIPS_INS_DPSQ_S = 132;;
+let _MIPS_INS_DPSUB_S = 133;;
+let _MIPS_INS_DPSUB_U = 134;;
+let _MIPS_INS_DPSU = 135;;
+let _MIPS_INS_DPSX = 136;;
+let _MIPS_INS_DPS = 137;;
+let _MIPS_INS_DROTR = 138;;
+let _MIPS_INS_DROTR32 = 139;;
+let _MIPS_INS_DROTRV = 140;;
+let _MIPS_INS_DSBH = 141;;
+let _MIPS_INS_DDIV = 142;;
+let _MIPS_INS_DSHD = 143;;
+let _MIPS_INS_DSLL = 144;;
+let _MIPS_INS_DSLL32 = 145;;
+let _MIPS_INS_DSLLV = 146;;
+let _MIPS_INS_DSRA = 147;;
+let _MIPS_INS_DSRA32 = 148;;
+let _MIPS_INS_DSRAV = 149;;
+let _MIPS_INS_DSRL = 150;;
+let _MIPS_INS_DSRL32 = 151;;
+let _MIPS_INS_DSRLV = 152;;
+let _MIPS_INS_DSUBU = 153;;
+let _MIPS_INS_DDIVU = 154;;
+let _MIPS_INS_DIV = 155;;
+let _MIPS_INS_DIVU = 156;;
+let _MIPS_INS_EI = 157;;
+let _MIPS_INS_ERET = 158;;
+let _MIPS_INS_EXT = 159;;
+let _MIPS_INS_EXTP = 160;;
+let _MIPS_INS_EXTPDP = 161;;
+let _MIPS_INS_EXTPDPV = 162;;
+let _MIPS_INS_EXTPV = 163;;
+let _MIPS_INS_EXTRV_RS = 164;;
+let _MIPS_INS_EXTRV_R = 165;;
+let _MIPS_INS_EXTRV_S = 166;;
+let _MIPS_INS_EXTRV = 167;;
+let _MIPS_INS_EXTR_RS = 168;;
+let _MIPS_INS_EXTR_R = 169;;
+let _MIPS_INS_EXTR_S = 170;;
+let _MIPS_INS_EXTR = 171;;
+let _MIPS_INS_ABS = 172;;
+let _MIPS_INS_FADD = 173;;
+let _MIPS_INS_FCAF = 174;;
+let _MIPS_INS_FCEQ = 175;;
+let _MIPS_INS_FCLASS = 176;;
+let _MIPS_INS_FCLE = 177;;
+let _MIPS_INS_FCLT = 178;;
+let _MIPS_INS_FCNE = 179;;
+let _MIPS_INS_FCOR = 180;;
+let _MIPS_INS_FCUEQ = 181;;
+let _MIPS_INS_FCULE = 182;;
+let _MIPS_INS_FCULT = 183;;
+let _MIPS_INS_FCUNE = 184;;
+let _MIPS_INS_FCUN = 185;;
+let _MIPS_INS_FDIV = 186;;
+let _MIPS_INS_FEXDO = 187;;
+let _MIPS_INS_FEXP2 = 188;;
+let _MIPS_INS_FEXUPL = 189;;
+let _MIPS_INS_FEXUPR = 190;;
+let _MIPS_INS_FFINT_S = 191;;
+let _MIPS_INS_FFINT_U = 192;;
+let _MIPS_INS_FFQL = 193;;
+let _MIPS_INS_FFQR = 194;;
+let _MIPS_INS_FILL = 195;;
+let _MIPS_INS_FLOG2 = 196;;
+let _MIPS_INS_FLOOR = 197;;
+let _MIPS_INS_FMADD = 198;;
+let _MIPS_INS_FMAX_A = 199;;
+let _MIPS_INS_FMAX = 200;;
+let _MIPS_INS_FMIN_A = 201;;
+let _MIPS_INS_FMIN = 202;;
+let _MIPS_INS_MOV = 203;;
+let _MIPS_INS_FMSUB = 204;;
+let _MIPS_INS_FMUL = 205;;
+let _MIPS_INS_MUL = 206;;
+let _MIPS_INS_NEG = 207;;
+let _MIPS_INS_FRCP = 208;;
+let _MIPS_INS_FRINT = 209;;
+let _MIPS_INS_FRSQRT = 210;;
+let _MIPS_INS_FSAF = 211;;
+let _MIPS_INS_FSEQ = 212;;
+let _MIPS_INS_FSLE = 213;;
+let _MIPS_INS_FSLT = 214;;
+let _MIPS_INS_FSNE = 215;;
+let _MIPS_INS_FSOR = 216;;
+let _MIPS_INS_FSQRT = 217;;
+let _MIPS_INS_SQRT = 218;;
+let _MIPS_INS_FSUB = 219;;
+let _MIPS_INS_SUB = 220;;
+let _MIPS_INS_FSUEQ = 221;;
+let _MIPS_INS_FSULE = 222;;
+let _MIPS_INS_FSULT = 223;;
+let _MIPS_INS_FSUNE = 224;;
+let _MIPS_INS_FSUN = 225;;
+let _MIPS_INS_FTINT_S = 226;;
+let _MIPS_INS_FTINT_U = 227;;
+let _MIPS_INS_FTQ = 228;;
+let _MIPS_INS_FTRUNC_S = 229;;
+let _MIPS_INS_FTRUNC_U = 230;;
+let _MIPS_INS_HADD_S = 231;;
+let _MIPS_INS_HADD_U = 232;;
+let _MIPS_INS_HSUB_S = 233;;
+let _MIPS_INS_HSUB_U = 234;;
+let _MIPS_INS_ILVEV = 235;;
+let _MIPS_INS_ILVL = 236;;
+let _MIPS_INS_ILVOD = 237;;
+let _MIPS_INS_ILVR = 238;;
+let _MIPS_INS_INS = 239;;
+let _MIPS_INS_INSERT = 240;;
+let _MIPS_INS_INSV = 241;;
+let _MIPS_INS_INSVE = 242;;
+let _MIPS_INS_J = 243;;
+let _MIPS_INS_JAL = 244;;
+let _MIPS_INS_JALR = 245;;
+let _MIPS_INS_JR = 246;;
+let _MIPS_INS_JRC = 247;;
+let _MIPS_INS_JALRC = 248;;
+let _MIPS_INS_LB = 249;;
+let _MIPS_INS_LBUX = 250;;
+let _MIPS_INS_LBU = 251;;
+let _MIPS_INS_LD = 252;;
+let _MIPS_INS_LDC1 = 253;;
+let _MIPS_INS_LDC2 = 254;;
+let _MIPS_INS_LDI = 255;;
+let _MIPS_INS_LDL = 256;;
+let _MIPS_INS_LDR = 257;;
+let _MIPS_INS_LDXC1 = 258;;
+let _MIPS_INS_LH = 259;;
+let _MIPS_INS_LHX = 260;;
+let _MIPS_INS_LHU = 261;;
+let _MIPS_INS_LL = 262;;
+let _MIPS_INS_LLD = 263;;
+let _MIPS_INS_LSA = 264;;
+let _MIPS_INS_LUXC1 = 265;;
+let _MIPS_INS_LUI = 266;;
+let _MIPS_INS_LW = 267;;
+let _MIPS_INS_LWC1 = 268;;
+let _MIPS_INS_LWC2 = 269;;
+let _MIPS_INS_LWL = 270;;
+let _MIPS_INS_LWR = 271;;
+let _MIPS_INS_LWU = 272;;
+let _MIPS_INS_LWX = 273;;
+let _MIPS_INS_LWXC1 = 274;;
+let _MIPS_INS_LI = 275;;
+let _MIPS_INS_MADD = 276;;
+let _MIPS_INS_MADDR_Q = 277;;
+let _MIPS_INS_MADDU = 278;;
+let _MIPS_INS_MADDV = 279;;
+let _MIPS_INS_MADD_Q = 280;;
+let _MIPS_INS_MAQ_SA = 281;;
+let _MIPS_INS_MAQ_S = 282;;
+let _MIPS_INS_MAXI_S = 283;;
+let _MIPS_INS_MAXI_U = 284;;
+let _MIPS_INS_MAX_A = 285;;
+let _MIPS_INS_MAX_S = 286;;
+let _MIPS_INS_MAX_U = 287;;
+let _MIPS_INS_MFC0 = 288;;
+let _MIPS_INS_MFC1 = 289;;
+let _MIPS_INS_MFC2 = 290;;
+let _MIPS_INS_MFHC1 = 291;;
+let _MIPS_INS_MFHI = 292;;
+let _MIPS_INS_MFLO = 293;;
+let _MIPS_INS_MINI_S = 294;;
+let _MIPS_INS_MINI_U = 295;;
+let _MIPS_INS_MIN_A = 296;;
+let _MIPS_INS_MIN_S = 297;;
+let _MIPS_INS_MIN_U = 298;;
+let _MIPS_INS_MODSUB = 299;;
+let _MIPS_INS_MOD_S = 300;;
+let _MIPS_INS_MOD_U = 301;;
+let _MIPS_INS_MOVE = 302;;
+let _MIPS_INS_MOVF = 303;;
+let _MIPS_INS_MOVN = 304;;
+let _MIPS_INS_MOVT = 305;;
+let _MIPS_INS_MOVZ = 306;;
+let _MIPS_INS_MSUB = 307;;
+let _MIPS_INS_MSUBR_Q = 308;;
+let _MIPS_INS_MSUBU = 309;;
+let _MIPS_INS_MSUBV = 310;;
+let _MIPS_INS_MSUB_Q = 311;;
+let _MIPS_INS_MTC0 = 312;;
+let _MIPS_INS_MTC1 = 313;;
+let _MIPS_INS_MTC2 = 314;;
+let _MIPS_INS_MTHC1 = 315;;
+let _MIPS_INS_MTHI = 316;;
+let _MIPS_INS_MTHLIP = 317;;
+let _MIPS_INS_MTLO = 318;;
+let _MIPS_INS_MULEQ_S = 319;;
+let _MIPS_INS_MULEU_S = 320;;
+let _MIPS_INS_MULQ_RS = 321;;
+let _MIPS_INS_MULQ_S = 322;;
+let _MIPS_INS_MULR_Q = 323;;
+let _MIPS_INS_MULSAQ_S = 324;;
+let _MIPS_INS_MULSA = 325;;
+let _MIPS_INS_MULT = 326;;
+let _MIPS_INS_MULTU = 327;;
+let _MIPS_INS_MULV = 328;;
+let _MIPS_INS_MUL_Q = 329;;
+let _MIPS_INS_MUL_S = 330;;
+let _MIPS_INS_NLOC = 331;;
+let _MIPS_INS_NLZC = 332;;
+let _MIPS_INS_NMADD = 333;;
+let _MIPS_INS_NMSUB = 334;;
+let _MIPS_INS_NOR = 335;;
+let _MIPS_INS_NORI = 336;;
+let _MIPS_INS_NOT = 337;;
+let _MIPS_INS_OR = 338;;
+let _MIPS_INS_ORI = 339;;
+let _MIPS_INS_PACKRL = 340;;
+let _MIPS_INS_PCKEV = 341;;
+let _MIPS_INS_PCKOD = 342;;
+let _MIPS_INS_PCNT = 343;;
+let _MIPS_INS_PICK = 344;;
+let _MIPS_INS_PRECEQU = 345;;
+let _MIPS_INS_PRECEQ = 346;;
+let _MIPS_INS_PRECEU = 347;;
+let _MIPS_INS_PRECRQU_S = 348;;
+let _MIPS_INS_PRECRQ = 349;;
+let _MIPS_INS_PRECRQ_RS = 350;;
+let _MIPS_INS_PRECR = 351;;
+let _MIPS_INS_PRECR_SRA = 352;;
+let _MIPS_INS_PRECR_SRA_R = 353;;
+let _MIPS_INS_PREPEND = 354;;
+let _MIPS_INS_RADDU = 355;;
+let _MIPS_INS_RDDSP = 356;;
+let _MIPS_INS_RDHWR = 357;;
+let _MIPS_INS_REPLV = 358;;
+let _MIPS_INS_REPL = 359;;
+let _MIPS_INS_ROTR = 360;;
+let _MIPS_INS_ROTRV = 361;;
+let _MIPS_INS_ROUND = 362;;
+let _MIPS_INS_SAT_S = 363;;
+let _MIPS_INS_SAT_U = 364;;
+let _MIPS_INS_SB = 365;;
+let _MIPS_INS_SC = 366;;
+let _MIPS_INS_SCD = 367;;
+let _MIPS_INS_SD = 368;;
+let _MIPS_INS_SDC1 = 369;;
+let _MIPS_INS_SDC2 = 370;;
+let _MIPS_INS_SDL = 371;;
+let _MIPS_INS_SDR = 372;;
+let _MIPS_INS_SDXC1 = 373;;
+let _MIPS_INS_SEB = 374;;
+let _MIPS_INS_SEH = 375;;
+let _MIPS_INS_SH = 376;;
+let _MIPS_INS_SHF = 377;;
+let _MIPS_INS_SHILO = 378;;
+let _MIPS_INS_SHILOV = 379;;
+let _MIPS_INS_SHLLV = 380;;
+let _MIPS_INS_SHLLV_S = 381;;
+let _MIPS_INS_SHLL = 382;;
+let _MIPS_INS_SHLL_S = 383;;
+let _MIPS_INS_SHRAV = 384;;
+let _MIPS_INS_SHRAV_R = 385;;
+let _MIPS_INS_SHRA = 386;;
+let _MIPS_INS_SHRA_R = 387;;
+let _MIPS_INS_SHRLV = 388;;
+let _MIPS_INS_SHRL = 389;;
+let _MIPS_INS_SLDI = 390;;
+let _MIPS_INS_SLD = 391;;
+let _MIPS_INS_SLL = 392;;
+let _MIPS_INS_SLLI = 393;;
+let _MIPS_INS_SLLV = 394;;
+let _MIPS_INS_SLT = 395;;
+let _MIPS_INS_SLTI = 396;;
+let _MIPS_INS_SLTIU = 397;;
+let _MIPS_INS_SLTU = 398;;
+let _MIPS_INS_SPLATI = 399;;
+let _MIPS_INS_SPLAT = 400;;
+let _MIPS_INS_SRA = 401;;
+let _MIPS_INS_SRAI = 402;;
+let _MIPS_INS_SRARI = 403;;
+let _MIPS_INS_SRAR = 404;;
+let _MIPS_INS_SRAV = 405;;
+let _MIPS_INS_SRL = 406;;
+let _MIPS_INS_SRLI = 407;;
+let _MIPS_INS_SRLRI = 408;;
+let _MIPS_INS_SRLR = 409;;
+let _MIPS_INS_SRLV = 410;;
+let _MIPS_INS_ST = 411;;
+let _MIPS_INS_SUBQH = 412;;
+let _MIPS_INS_SUBQH_R = 413;;
+let _MIPS_INS_SUBQ = 414;;
+let _MIPS_INS_SUBQ_S = 415;;
+let _MIPS_INS_SUBSUS_U = 416;;
+let _MIPS_INS_SUBSUU_S = 417;;
+let _MIPS_INS_SUBS_S = 418;;
+let _MIPS_INS_SUBS_U = 419;;
+let _MIPS_INS_SUBUH = 420;;
+let _MIPS_INS_SUBUH_R = 421;;
+let _MIPS_INS_SUBU = 422;;
+let _MIPS_INS_SUBU_S = 423;;
+let _MIPS_INS_SUBVI = 424;;
+let _MIPS_INS_SUBV = 425;;
+let _MIPS_INS_SUXC1 = 426;;
+let _MIPS_INS_SW = 427;;
+let _MIPS_INS_SWC1 = 428;;
+let _MIPS_INS_SWC2 = 429;;
+let _MIPS_INS_SWL = 430;;
+let _MIPS_INS_SWR = 431;;
+let _MIPS_INS_SWXC1 = 432;;
+let _MIPS_INS_SYNC = 433;;
+let _MIPS_INS_SYSCALL = 434;;
+let _MIPS_INS_TEQ = 435;;
+let _MIPS_INS_TEQI = 436;;
+let _MIPS_INS_TGE = 437;;
+let _MIPS_INS_TGEI = 438;;
+let _MIPS_INS_TGEIU = 439;;
+let _MIPS_INS_TGEU = 440;;
+let _MIPS_INS_TLT = 441;;
+let _MIPS_INS_TLTI = 442;;
+let _MIPS_INS_TLTIU = 443;;
+let _MIPS_INS_TLTU = 444;;
+let _MIPS_INS_TNE = 445;;
+let _MIPS_INS_TNEI = 446;;
+let _MIPS_INS_TRUNC = 447;;
+let _MIPS_INS_VSHF = 448;;
+let _MIPS_INS_WAIT = 449;;
+let _MIPS_INS_WRDSP = 450;;
+let _MIPS_INS_WSBH = 451;;
+let _MIPS_INS_XOR = 452;;
+let _MIPS_INS_XORI = 453;;
+
+(* some alias instructions *)
+let _MIPS_INS_NOP = 454;;
+let _MIPS_INS_NEGU = 455;;
+let _MIPS_INS_MAX = 456;;
+
+(* Group of MIPS instructions *)
+
+let _MIPS_GRP_INVALID = 0;;
+let _MIPS_GRP_BITCOUNT = 1;;
+let _MIPS_GRP_DSP = 2;;
+let _MIPS_GRP_DSPR2 = 3;;
+let _MIPS_GRP_FPIDX = 4;;
+let _MIPS_GRP_MSA = 5;;
+let _MIPS_GRP_MIPS32R2 = 6;;
+let _MIPS_GRP_MIPS64 = 7;;
+let _MIPS_GRP_MIPS64R2 = 8;;
+let _MIPS_GRP_SEINREG = 9;;
+let _MIPS_GRP_STDENC = 10;;
+let _MIPS_GRP_SWAP = 11;;
+let _MIPS_GRP_MICROMIPS = 12;;
+let _MIPS_GRP_MIPS16MODE = 13;;
+let _MIPS_GRP_FP64BIT = 14;;
+let _MIPS_GRP_NONANSFPMATH = 15;;
+let _MIPS_GRP_NOTFP64BIT = 16;;
+let _MIPS_GRP_NOTINMICROMIPS = 17;;
+let _MIPS_GRP_NOTNACL = 18;;
+let _MIPS_GRP_JUMP = 19;;
+let _MIPS_GRP_MAX = 20;;
diff --git a/bindings/ocaml/ppc.ml b/bindings/ocaml/ppc.ml
index e3ea8c5..7af26dd 100644
--- a/bindings/ocaml/ppc.ml
+++ b/bindings/ocaml/ppc.ml
@@ -1,6 +1,7 @@
 (* Capstone Disassembler Engine
  * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
 
+open Ppc_const
 
 type ppc_op_mem = {
 	base: int;
@@ -21,634 +22,3 @@
 	operands: ppc_op array;
 }
 
-
-(*  PPC branch codes for some branch instructions *)
-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_LT_MINUS = (0 lsl 5) lor 14;;
-let _PPC_BC_LE_MINUS = (1 lsl 5) lor 6;;
-let _PPC_BC_EQ_MINUS = (2 lsl 5) lor 14;;
-let _PPC_BC_GE_MINUS = (0 lsl 5) lor 6;;
-let _PPC_BC_GT_MINUS = (1 lsl 5) lor 14;;
-let _PPC_BC_NE_MINUS = (2 lsl 5) lor 6;;
-let _PPC_BC_UN_MINUS = (3 lsl 5) lor 14;;
-let _PPC_BC_NU_MINUS = (3 lsl 5) lor 6;;
-let _PPC_BC_LT_PLUS = (0 lsl 5) lor 15;;
-let _PPC_BC_LE_PLUS = (1 lsl 5) lor 7;;
-let _PPC_BC_EQ_PLUS = (2 lsl 5) lor 15;;
-let _PPC_BC_GE_PLUS = (0 lsl 5) lor 7;;
-let _PPC_BC_GT_PLUS = (1 lsl 5) lor 15;;
-let _PPC_BC_NE_PLUS = (2 lsl 5) lor 7;;
-let _PPC_BC_UN_PLUS = (3 lsl 5) lor 15;;
-let _PPC_BC_NU_PLUS = (3 lsl 5) lor 7;;
-
-(*  PPC branch hint for some branch instructions *)
-
-let _PPC_BH_NO = 0;;
-let _PPC_BH_PLUS = 1;;
-let _PPC_BH_MINUS = 2;;
-
-(*  Operand type for instruction's operands *)
-
-let _PPC_OP_INVALID = 0;;
-let _PPC_OP_REG = 1;;
-let _PPC_OP_IMM = 2;;
-let _PPC_OP_MEM = 3;;
-
-(*  PPC registers *)
-
-let _PPC_REG_INVALID = 0;;
-let _PPC_REG_CARRY = 1;;
-let _PPC_REG_CR0 = 2;;
-let _PPC_REG_CR1 = 3;;
-let _PPC_REG_CR2 = 4;;
-let _PPC_REG_CR3 = 5;;
-let _PPC_REG_CR4 = 6;;
-let _PPC_REG_CR5 = 7;;
-let _PPC_REG_CR6 = 8;;
-let _PPC_REG_CR7 = 9;;
-let _PPC_REG_CR8 = 10;;
-let _PPC_REG_CR9 = 11;;
-let _PPC_REG_CR10 = 12;;
-let _PPC_REG_CR11 = 13;;
-let _PPC_REG_CR12 = 14;;
-let _PPC_REG_CR13 = 15;;
-let _PPC_REG_CR14 = 16;;
-let _PPC_REG_CR15 = 17;;
-let _PPC_REG_CR16 = 18;;
-let _PPC_REG_CR17 = 19;;
-let _PPC_REG_CR18 = 20;;
-let _PPC_REG_CR19 = 21;;
-let _PPC_REG_CR20 = 22;;
-let _PPC_REG_CR21 = 23;;
-let _PPC_REG_CR22 = 24;;
-let _PPC_REG_CR23 = 25;;
-let _PPC_REG_CR24 = 26;;
-let _PPC_REG_CR25 = 27;;
-let _PPC_REG_CR26 = 28;;
-let _PPC_REG_CR27 = 29;;
-let _PPC_REG_CR28 = 30;;
-let _PPC_REG_CR29 = 31;;
-let _PPC_REG_CR30 = 32;;
-let _PPC_REG_CR31 = 33;;
-let _PPC_REG_CTR = 34;;
-let _PPC_REG_F0 = 35;;
-let _PPC_REG_F1 = 36;;
-let _PPC_REG_F2 = 37;;
-let _PPC_REG_F3 = 38;;
-let _PPC_REG_F4 = 39;;
-let _PPC_REG_F5 = 40;;
-let _PPC_REG_F6 = 41;;
-let _PPC_REG_F7 = 42;;
-let _PPC_REG_F8 = 43;;
-let _PPC_REG_F9 = 44;;
-let _PPC_REG_F10 = 45;;
-let _PPC_REG_F11 = 46;;
-let _PPC_REG_F12 = 47;;
-let _PPC_REG_F13 = 48;;
-let _PPC_REG_F14 = 49;;
-let _PPC_REG_F15 = 50;;
-let _PPC_REG_F16 = 51;;
-let _PPC_REG_F17 = 52;;
-let _PPC_REG_F18 = 53;;
-let _PPC_REG_F19 = 54;;
-let _PPC_REG_F20 = 55;;
-let _PPC_REG_F21 = 56;;
-let _PPC_REG_F22 = 57;;
-let _PPC_REG_F23 = 58;;
-let _PPC_REG_F24 = 59;;
-let _PPC_REG_F25 = 60;;
-let _PPC_REG_F26 = 61;;
-let _PPC_REG_F27 = 62;;
-let _PPC_REG_F28 = 63;;
-let _PPC_REG_F29 = 64;;
-let _PPC_REG_F30 = 65;;
-let _PPC_REG_F31 = 66;;
-let _PPC_REG_LR = 67;;
-let _PPC_REG_R0 = 68;;
-let _PPC_REG_R1 = 69;;
-let _PPC_REG_R2 = 70;;
-let _PPC_REG_R3 = 71;;
-let _PPC_REG_R4 = 72;;
-let _PPC_REG_R5 = 73;;
-let _PPC_REG_R6 = 74;;
-let _PPC_REG_R7 = 75;;
-let _PPC_REG_R8 = 76;;
-let _PPC_REG_R9 = 77;;
-let _PPC_REG_R10 = 78;;
-let _PPC_REG_R11 = 79;;
-let _PPC_REG_R12 = 80;;
-let _PPC_REG_R13 = 81;;
-let _PPC_REG_R14 = 82;;
-let _PPC_REG_R15 = 83;;
-let _PPC_REG_R16 = 84;;
-let _PPC_REG_R17 = 85;;
-let _PPC_REG_R18 = 86;;
-let _PPC_REG_R19 = 87;;
-let _PPC_REG_R20 = 88;;
-let _PPC_REG_R21 = 89;;
-let _PPC_REG_R22 = 90;;
-let _PPC_REG_R23 = 91;;
-let _PPC_REG_R24 = 92;;
-let _PPC_REG_R25 = 93;;
-let _PPC_REG_R26 = 94;;
-let _PPC_REG_R27 = 95;;
-let _PPC_REG_R28 = 96;;
-let _PPC_REG_R29 = 97;;
-let _PPC_REG_R30 = 98;;
-let _PPC_REG_R31 = 99;;
-let _PPC_REG_V0 = 100;;
-let _PPC_REG_V1 = 101;;
-let _PPC_REG_V2 = 102;;
-let _PPC_REG_V3 = 103;;
-let _PPC_REG_V4 = 104;;
-let _PPC_REG_V5 = 105;;
-let _PPC_REG_V6 = 106;;
-let _PPC_REG_V7 = 107;;
-let _PPC_REG_V8 = 108;;
-let _PPC_REG_V9 = 109;;
-let _PPC_REG_V10 = 110;;
-let _PPC_REG_V11 = 111;;
-let _PPC_REG_V12 = 112;;
-let _PPC_REG_V13 = 113;;
-let _PPC_REG_V14 = 114;;
-let _PPC_REG_V15 = 115;;
-let _PPC_REG_V16 = 116;;
-let _PPC_REG_V17 = 117;;
-let _PPC_REG_V18 = 118;;
-let _PPC_REG_V19 = 119;;
-let _PPC_REG_V20 = 120;;
-let _PPC_REG_V21 = 121;;
-let _PPC_REG_V22 = 122;;
-let _PPC_REG_V23 = 123;;
-let _PPC_REG_V24 = 124;;
-let _PPC_REG_V25 = 125;;
-let _PPC_REG_V26 = 126;;
-let _PPC_REG_V27 = 127;;
-let _PPC_REG_V28 = 128;;
-let _PPC_REG_V29 = 129;;
-let _PPC_REG_V30 = 130;;
-let _PPC_REG_V31 = 131;;
-let _PPC_REG_VRSAVE = 132;;
-let _PPC_REG_RM = 133;;
-let _PPC_REG_CTR8 = 134;;
-let _PPC_REG_LR8 = 135;;
-let _PPC_REG_CR1EQ = 136;;
-let _PPC_REG_MAX = 137;;
-
-(*  PPC instruction *)
-
-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_ADDZE = 8;;
-let _PPC_INS_AND = 9;;
-let _PPC_INS_ANDC = 10;;
-let _PPC_INS_ANDIS = 11;;
-let _PPC_INS_ANDI = 12;;
-let _PPC_INS_B = 13;;
-let _PPC_INS_BA = 14;;
-let _PPC_INS_BCL = 15;;
-let _PPC_INS_BCTR = 16;;
-let _PPC_INS_BCTRL = 17;;
-let _PPC_INS_BDNZ = 18;;
-let _PPC_INS_BDNZA = 19;;
-let _PPC_INS_BDNZL = 20;;
-let _PPC_INS_BDNZLA = 21;;
-let _PPC_INS_BDNZLR = 22;;
-let _PPC_INS_BDNZLRL = 23;;
-let _PPC_INS_BDZ = 24;;
-let _PPC_INS_BDZA = 25;;
-let _PPC_INS_BDZL = 26;;
-let _PPC_INS_BDZLA = 27;;
-let _PPC_INS_BDZLR = 28;;
-let _PPC_INS_BDZLRL = 29;;
-let _PPC_INS_BL = 30;;
-let _PPC_INS_BLA = 31;;
-let _PPC_INS_BLR = 32;;
-let _PPC_INS_BLRL = 33;;
-let _PPC_INS_CMPD = 34;;
-let _PPC_INS_CMPDI = 35;;
-let _PPC_INS_CMPLD = 36;;
-let _PPC_INS_CMPLDI = 37;;
-let _PPC_INS_CMPLW = 38;;
-let _PPC_INS_CMPLWI = 39;;
-let _PPC_INS_CMPW = 40;;
-let _PPC_INS_CMPWI = 41;;
-let _PPC_INS_CNTLZD = 42;;
-let _PPC_INS_CNTLZW = 43;;
-let _PPC_INS_CREQV = 44;;
-let _PPC_INS_CRXOR = 45;;
-let _PPC_INS_CRAND = 46;;
-let _PPC_INS_CRANDC = 47;;
-let _PPC_INS_CRNAND = 48;;
-let _PPC_INS_CRNOR = 49;;
-let _PPC_INS_CROR = 50;;
-let _PPC_INS_CRORC = 51;;
-let _PPC_INS_DCBA = 52;;
-let _PPC_INS_DCBF = 53;;
-let _PPC_INS_DCBI = 54;;
-let _PPC_INS_DCBST = 55;;
-let _PPC_INS_DCBT = 56;;
-let _PPC_INS_DCBTST = 57;;
-let _PPC_INS_DCBZ = 58;;
-let _PPC_INS_DCBZL = 59;;
-let _PPC_INS_DIVD = 60;;
-let _PPC_INS_DIVDU = 61;;
-let _PPC_INS_DIVW = 62;;
-let _PPC_INS_DIVWU = 63;;
-let _PPC_INS_DSS = 64;;
-let _PPC_INS_DSSALL = 65;;
-let _PPC_INS_DST = 66;;
-let _PPC_INS_DSTST = 67;;
-let _PPC_INS_DSTSTT = 68;;
-let _PPC_INS_DSTT = 69;;
-let _PPC_INS_EIEIO = 70;;
-let _PPC_INS_EQV = 71;;
-let _PPC_INS_EXTSB = 72;;
-let _PPC_INS_EXTSH = 73;;
-let _PPC_INS_EXTSW = 74;;
-let _PPC_INS_FABS = 75;;
-let _PPC_INS_FADD = 76;;
-let _PPC_INS_FADDS = 77;;
-let _PPC_INS_FCFID = 78;;
-let _PPC_INS_FCFIDS = 79;;
-let _PPC_INS_FCFIDU = 80;;
-let _PPC_INS_FCFIDUS = 81;;
-let _PPC_INS_FCMPU = 82;;
-let _PPC_INS_FCPSGN = 83;;
-let _PPC_INS_FCTID = 84;;
-let _PPC_INS_FCTIDUZ = 85;;
-let _PPC_INS_FCTIDZ = 86;;
-let _PPC_INS_FCTIW = 87;;
-let _PPC_INS_FCTIWUZ = 88;;
-let _PPC_INS_FCTIWZ = 89;;
-let _PPC_INS_FDIV = 90;;
-let _PPC_INS_FDIVS = 91;;
-let _PPC_INS_FMADD = 92;;
-let _PPC_INS_FMADDS = 93;;
-let _PPC_INS_FMR = 94;;
-let _PPC_INS_FMSUB = 95;;
-let _PPC_INS_FMSUBS = 96;;
-let _PPC_INS_FMUL = 97;;
-let _PPC_INS_FMULS = 98;;
-let _PPC_INS_FNABS = 99;;
-let _PPC_INS_FNEG = 100;;
-let _PPC_INS_FNMADD = 101;;
-let _PPC_INS_FNMADDS = 102;;
-let _PPC_INS_FNMSUB = 103;;
-let _PPC_INS_FNMSUBS = 104;;
-let _PPC_INS_FRE = 105;;
-let _PPC_INS_FRES = 106;;
-let _PPC_INS_FRIM = 107;;
-let _PPC_INS_FRIN = 108;;
-let _PPC_INS_FRIP = 109;;
-let _PPC_INS_FRIZ = 110;;
-let _PPC_INS_FRSP = 111;;
-let _PPC_INS_FRSQRTE = 112;;
-let _PPC_INS_FRSQRTES = 113;;
-let _PPC_INS_FSEL = 114;;
-let _PPC_INS_FSQRT = 115;;
-let _PPC_INS_FSQRTS = 116;;
-let _PPC_INS_FSUB = 117;;
-let _PPC_INS_FSUBS = 118;;
-let _PPC_INS_ICBI = 119;;
-let _PPC_INS_ISEL = 120;;
-let _PPC_INS_ISYNC = 121;;
-let _PPC_INS_LA = 122;;
-let _PPC_INS_LBZ = 123;;
-let _PPC_INS_LBZU = 124;;
-let _PPC_INS_LBZUX = 125;;
-let _PPC_INS_LBZX = 126;;
-let _PPC_INS_LD = 127;;
-let _PPC_INS_LDARX = 128;;
-let _PPC_INS_LDBRX = 129;;
-let _PPC_INS_LDU = 130;;
-let _PPC_INS_LDUX = 131;;
-let _PPC_INS_LDX = 132;;
-let _PPC_INS_LFD = 133;;
-let _PPC_INS_LFDU = 134;;
-let _PPC_INS_LFDUX = 135;;
-let _PPC_INS_LFDX = 136;;
-let _PPC_INS_LFIWAX = 137;;
-let _PPC_INS_LFIWZX = 138;;
-let _PPC_INS_LFS = 139;;
-let _PPC_INS_LFSU = 140;;
-let _PPC_INS_LFSUX = 141;;
-let _PPC_INS_LFSX = 142;;
-let _PPC_INS_LHA = 143;;
-let _PPC_INS_LHAU = 144;;
-let _PPC_INS_LHAUX = 145;;
-let _PPC_INS_LHAX = 146;;
-let _PPC_INS_LHBRX = 147;;
-let _PPC_INS_LHZ = 148;;
-let _PPC_INS_LHZU = 149;;
-let _PPC_INS_LHZUX = 150;;
-let _PPC_INS_LHZX = 151;;
-let _PPC_INS_LI = 152;;
-let _PPC_INS_LIS = 153;;
-let _PPC_INS_LMW = 154;;
-let _PPC_INS_LVEBX = 155;;
-let _PPC_INS_LVEHX = 156;;
-let _PPC_INS_LVEWX = 157;;
-let _PPC_INS_LVSL = 158;;
-let _PPC_INS_LVSR = 159;;
-let _PPC_INS_LVX = 160;;
-let _PPC_INS_LVXL = 161;;
-let _PPC_INS_LWA = 162;;
-let _PPC_INS_LWARX = 163;;
-let _PPC_INS_LWAUX = 164;;
-let _PPC_INS_LWAX = 165;;
-let _PPC_INS_LWBRX = 166;;
-let _PPC_INS_LWZ = 167;;
-let _PPC_INS_LWZU = 168;;
-let _PPC_INS_LWZUX = 169;;
-let _PPC_INS_LWZX = 170;;
-let _PPC_INS_MCRF = 171;;
-let _PPC_INS_MFCR = 172;;
-let _PPC_INS_MFCTR = 173;;
-let _PPC_INS_MFFS = 174;;
-let _PPC_INS_MFLR = 175;;
-let _PPC_INS_MFMSR = 176;;
-let _PPC_INS_MFOCRF = 177;;
-let _PPC_INS_MFSPR = 178;;
-let _PPC_INS_MFTB = 179;;
-let _PPC_INS_MFVSCR = 180;;
-let _PPC_INS_MSYNC = 181;;
-let _PPC_INS_MTCRF = 182;;
-let _PPC_INS_MTCTR = 183;;
-let _PPC_INS_MTFSB0 = 184;;
-let _PPC_INS_MTFSB1 = 185;;
-let _PPC_INS_MTFSF = 186;;
-let _PPC_INS_MTLR = 187;;
-let _PPC_INS_MTMSR = 188;;
-let _PPC_INS_MTMSRD = 189;;
-let _PPC_INS_MTOCRF = 190;;
-let _PPC_INS_MTSPR = 191;;
-let _PPC_INS_MTVSCR = 192;;
-let _PPC_INS_MULHD = 193;;
-let _PPC_INS_MULHDU = 194;;
-let _PPC_INS_MULHW = 195;;
-let _PPC_INS_MULHWU = 196;;
-let _PPC_INS_MULLD = 197;;
-let _PPC_INS_MULLI = 198;;
-let _PPC_INS_MULLW = 199;;
-let _PPC_INS_NAND = 200;;
-let _PPC_INS_NEG = 201;;
-let _PPC_INS_NOP = 202;;
-let _PPC_INS_ORI = 203;;
-let _PPC_INS_NOR = 204;;
-let _PPC_INS_OR = 205;;
-let _PPC_INS_ORC = 206;;
-let _PPC_INS_ORIS = 207;;
-let _PPC_INS_POPCNTD = 208;;
-let _PPC_INS_POPCNTW = 209;;
-let _PPC_INS_RLDCL = 210;;
-let _PPC_INS_RLDCR = 211;;
-let _PPC_INS_RLDIC = 212;;
-let _PPC_INS_RLDICL = 213;;
-let _PPC_INS_RLDICR = 214;;
-let _PPC_INS_RLDIMI = 215;;
-let _PPC_INS_RLWIMI = 216;;
-let _PPC_INS_RLWINM = 217;;
-let _PPC_INS_RLWNM = 218;;
-let _PPC_INS_SC = 219;;
-let _PPC_INS_SLBIA = 220;;
-let _PPC_INS_SLBIE = 221;;
-let _PPC_INS_SLBMFEE = 222;;
-let _PPC_INS_SLBMTE = 223;;
-let _PPC_INS_SLD = 224;;
-let _PPC_INS_SLW = 225;;
-let _PPC_INS_SRAD = 226;;
-let _PPC_INS_SRADI = 227;;
-let _PPC_INS_SRAW = 228;;
-let _PPC_INS_SRAWI = 229;;
-let _PPC_INS_SRD = 230;;
-let _PPC_INS_SRW = 231;;
-let _PPC_INS_STB = 232;;
-let _PPC_INS_STBU = 233;;
-let _PPC_INS_STBUX = 234;;
-let _PPC_INS_STBX = 235;;
-let _PPC_INS_STD = 236;;
-let _PPC_INS_STDBRX = 237;;
-let _PPC_INS_STDCX = 238;;
-let _PPC_INS_STDU = 239;;
-let _PPC_INS_STDUX = 240;;
-let _PPC_INS_STDX = 241;;
-let _PPC_INS_STFD = 242;;
-let _PPC_INS_STFDU = 243;;
-let _PPC_INS_STFDUX = 244;;
-let _PPC_INS_STFDX = 245;;
-let _PPC_INS_STFIWX = 246;;
-let _PPC_INS_STFS = 247;;
-let _PPC_INS_STFSU = 248;;
-let _PPC_INS_STFSUX = 249;;
-let _PPC_INS_STFSX = 250;;
-let _PPC_INS_STH = 251;;
-let _PPC_INS_STHBRX = 252;;
-let _PPC_INS_STHU = 253;;
-let _PPC_INS_STHUX = 254;;
-let _PPC_INS_STHX = 255;;
-let _PPC_INS_STMW = 256;;
-let _PPC_INS_STVEBX = 257;;
-let _PPC_INS_STVEHX = 258;;
-let _PPC_INS_STVEWX = 259;;
-let _PPC_INS_STVX = 260;;
-let _PPC_INS_STVXL = 261;;
-let _PPC_INS_STW = 262;;
-let _PPC_INS_STWBRX = 263;;
-let _PPC_INS_STWCX = 264;;
-let _PPC_INS_STWU = 265;;
-let _PPC_INS_STWUX = 266;;
-let _PPC_INS_STWX = 267;;
-let _PPC_INS_SUBF = 268;;
-let _PPC_INS_SUBFC = 269;;
-let _PPC_INS_SUBFE = 270;;
-let _PPC_INS_SUBFIC = 271;;
-let _PPC_INS_SUBFME = 272;;
-let _PPC_INS_SUBFZE = 273;;
-let _PPC_INS_SYNC = 274;;
-let _PPC_INS_TD = 275;;
-let _PPC_INS_TDI = 276;;
-let _PPC_INS_TLBIE = 277;;
-let _PPC_INS_TLBIEL = 278;;
-let _PPC_INS_TLBSYNC = 279;;
-let _PPC_INS_TRAP = 280;;
-let _PPC_INS_TW = 281;;
-let _PPC_INS_TWI = 282;;
-let _PPC_INS_VADDCUW = 283;;
-let _PPC_INS_VADDFP = 284;;
-let _PPC_INS_VADDSBS = 285;;
-let _PPC_INS_VADDSHS = 286;;
-let _PPC_INS_VADDSWS = 287;;
-let _PPC_INS_VADDUBM = 288;;
-let _PPC_INS_VADDUBS = 289;;
-let _PPC_INS_VADDUHM = 290;;
-let _PPC_INS_VADDUHS = 291;;
-let _PPC_INS_VADDUWM = 292;;
-let _PPC_INS_VADDUWS = 293;;
-let _PPC_INS_VAND = 294;;
-let _PPC_INS_VANDC = 295;;
-let _PPC_INS_VAVGSB = 296;;
-let _PPC_INS_VAVGSH = 297;;
-let _PPC_INS_VAVGSW = 298;;
-let _PPC_INS_VAVGUB = 299;;
-let _PPC_INS_VAVGUH = 300;;
-let _PPC_INS_VAVGUW = 301;;
-let _PPC_INS_VCFSX = 302;;
-let _PPC_INS_VCFUX = 303;;
-let _PPC_INS_VCMPBFP = 304;;
-let _PPC_INS_VCMPEQFP = 305;;
-let _PPC_INS_VCMPEQUB = 306;;
-let _PPC_INS_VCMPEQUH = 307;;
-let _PPC_INS_VCMPEQUW = 308;;
-let _PPC_INS_VCMPGEFP = 309;;
-let _PPC_INS_VCMPGTFP = 310;;
-let _PPC_INS_VCMPGTSB = 311;;
-let _PPC_INS_VCMPGTSH = 312;;
-let _PPC_INS_VCMPGTSW = 313;;
-let _PPC_INS_VCMPGTUB = 314;;
-let _PPC_INS_VCMPGTUH = 315;;
-let _PPC_INS_VCMPGTUW = 316;;
-let _PPC_INS_VCTSXS = 317;;
-let _PPC_INS_VCTUXS = 318;;
-let _PPC_INS_VEXPTEFP = 319;;
-let _PPC_INS_VLOGEFP = 320;;
-let _PPC_INS_VMADDFP = 321;;
-let _PPC_INS_VMAXFP = 322;;
-let _PPC_INS_VMAXSB = 323;;
-let _PPC_INS_VMAXSH = 324;;
-let _PPC_INS_VMAXSW = 325;;
-let _PPC_INS_VMAXUB = 326;;
-let _PPC_INS_VMAXUH = 327;;
-let _PPC_INS_VMAXUW = 328;;
-let _PPC_INS_VMHADDSHS = 329;;
-let _PPC_INS_VMHRADDSHS = 330;;
-let _PPC_INS_VMINFP = 331;;
-let _PPC_INS_VMINSB = 332;;
-let _PPC_INS_VMINSH = 333;;
-let _PPC_INS_VMINSW = 334;;
-let _PPC_INS_VMINUB = 335;;
-let _PPC_INS_VMINUH = 336;;
-let _PPC_INS_VMINUW = 337;;
-let _PPC_INS_VMLADDUHM = 338;;
-let _PPC_INS_VMRGHB = 339;;
-let _PPC_INS_VMRGHH = 340;;
-let _PPC_INS_VMRGHW = 341;;
-let _PPC_INS_VMRGLB = 342;;
-let _PPC_INS_VMRGLH = 343;;
-let _PPC_INS_VMRGLW = 344;;
-let _PPC_INS_VMSUMMBM = 345;;
-let _PPC_INS_VMSUMSHM = 346;;
-let _PPC_INS_VMSUMSHS = 347;;
-let _PPC_INS_VMSUMUBM = 348;;
-let _PPC_INS_VMSUMUHM = 349;;
-let _PPC_INS_VMSUMUHS = 350;;
-let _PPC_INS_VMULESB = 351;;
-let _PPC_INS_VMULESH = 352;;
-let _PPC_INS_VMULEUB = 353;;
-let _PPC_INS_VMULEUH = 354;;
-let _PPC_INS_VMULOSB = 355;;
-let _PPC_INS_VMULOSH = 356;;
-let _PPC_INS_VMULOUB = 357;;
-let _PPC_INS_VMULOUH = 358;;
-let _PPC_INS_VNMSUBFP = 359;;
-let _PPC_INS_VNOR = 360;;
-let _PPC_INS_VOR = 361;;
-let _PPC_INS_VPERM = 362;;
-let _PPC_INS_VPKPX = 363;;
-let _PPC_INS_VPKSHSS = 364;;
-let _PPC_INS_VPKSHUS = 365;;
-let _PPC_INS_VPKSWSS = 366;;
-let _PPC_INS_VPKSWUS = 367;;
-let _PPC_INS_VPKUHUM = 368;;
-let _PPC_INS_VPKUHUS = 369;;
-let _PPC_INS_VPKUWUM = 370;;
-let _PPC_INS_VPKUWUS = 371;;
-let _PPC_INS_VREFP = 372;;
-let _PPC_INS_VRFIM = 373;;
-let _PPC_INS_VRFIN = 374;;
-let _PPC_INS_VRFIP = 375;;
-let _PPC_INS_VRFIZ = 376;;
-let _PPC_INS_VRLB = 377;;
-let _PPC_INS_VRLH = 378;;
-let _PPC_INS_VRLW = 379;;
-let _PPC_INS_VRSQRTEFP = 380;;
-let _PPC_INS_VSEL = 381;;
-let _PPC_INS_VSL = 382;;
-let _PPC_INS_VSLB = 383;;
-let _PPC_INS_VSLDOI = 384;;
-let _PPC_INS_VSLH = 385;;
-let _PPC_INS_VSLO = 386;;
-let _PPC_INS_VSLW = 387;;
-let _PPC_INS_VSPLTB = 388;;
-let _PPC_INS_VSPLTH = 389;;
-let _PPC_INS_VSPLTISB = 390;;
-let _PPC_INS_VSPLTISH = 391;;
-let _PPC_INS_VSPLTISW = 392;;
-let _PPC_INS_VSPLTW = 393;;
-let _PPC_INS_VSR = 394;;
-let _PPC_INS_VSRAB = 395;;
-let _PPC_INS_VSRAH = 396;;
-let _PPC_INS_VSRAW = 397;;
-let _PPC_INS_VSRB = 398;;
-let _PPC_INS_VSRH = 399;;
-let _PPC_INS_VSRO = 400;;
-let _PPC_INS_VSRW = 401;;
-let _PPC_INS_VSUBCUW = 402;;
-let _PPC_INS_VSUBFP = 403;;
-let _PPC_INS_VSUBSBS = 404;;
-let _PPC_INS_VSUBSHS = 405;;
-let _PPC_INS_VSUBSWS = 406;;
-let _PPC_INS_VSUBUBM = 407;;
-let _PPC_INS_VSUBUBS = 408;;
-let _PPC_INS_VSUBUHM = 409;;
-let _PPC_INS_VSUBUHS = 410;;
-let _PPC_INS_VSUBUWM = 411;;
-let _PPC_INS_VSUBUWS = 412;;
-let _PPC_INS_VSUM2SWS = 413;;
-let _PPC_INS_VSUM4SBS = 414;;
-let _PPC_INS_VSUM4SHS = 415;;
-let _PPC_INS_VSUM4UBS = 416;;
-let _PPC_INS_VSUMSWS = 417;;
-let _PPC_INS_VUPKHPX = 418;;
-let _PPC_INS_VUPKHSB = 419;;
-let _PPC_INS_VUPKHSH = 420;;
-let _PPC_INS_VUPKLPX = 421;;
-let _PPC_INS_VUPKLSB = 422;;
-let _PPC_INS_VUPKLSH = 423;;
-let _PPC_INS_VXOR = 424;;
-let _PPC_INS_WAIT = 425;;
-let _PPC_INS_XOR = 426;;
-let _PPC_INS_XORI = 427;;
-let _PPC_INS_XORIS = 428;;
-let _PPC_INS_BC = 429;;
-let _PPC_INS_BCA = 430;;
-let _PPC_INS_BCCTR = 431;;
-let _PPC_INS_BCCTRL = 432;;
-let _PPC_INS_BCLA = 433;;
-let _PPC_INS_BCLR = 434;;
-let _PPC_INS_BCLRL = 435;;
-let _PPC_INS_MAX = 436;;
-
-(*  Group of PPC instructions *)
-
-let _PPC_GRP_INVALID = 0;;
-let _PPC_GRP_ALTIVEC = 1;;
-let _PPC_GRP_MODE32 = 2;;
-let _PPC_GRP_MODE64 = 3;;
-let _PPC_GRP_BOOKE = 4;;
-let _PPC_GRP_NOTBOOKE = 5;;
-let _PPC_GRP_JUMP = 6;;
-let _PPC_GRP_MAX = 7;;
diff --git a/bindings/ocaml/ppc_const.ml b/bindings/ocaml/ppc_const.ml
new file mode 100644
index 0000000..372a96a
--- /dev/null
+++ b/bindings/ocaml/ppc_const.ml
@@ -0,0 +1,632 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [ppc_const.ml] *)
+
+(* PPC branch codes for some branch instructions *)
+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_LT_MINUS = (0 lsl 5) lor 14;;
+let _PPC_BC_LE_MINUS = (1 lsl 5) lor 6;;
+let _PPC_BC_EQ_MINUS = (2 lsl 5) lor 14;;
+let _PPC_BC_GE_MINUS = (0 lsl 5) lor 6;;
+let _PPC_BC_GT_MINUS = (1 lsl 5) lor 14;;
+let _PPC_BC_NE_MINUS = (2 lsl 5) lor 6;;
+let _PPC_BC_UN_MINUS = (3 lsl 5) lor 14;;
+let _PPC_BC_NU_MINUS = (3 lsl 5) lor 6;;
+let _PPC_BC_LT_PLUS = (0 lsl 5) lor 15;;
+let _PPC_BC_LE_PLUS = (1 lsl 5) lor 7;;
+let _PPC_BC_EQ_PLUS = (2 lsl 5) lor 15;;
+let _PPC_BC_GE_PLUS = (0 lsl 5) lor 7;;
+let _PPC_BC_GT_PLUS = (1 lsl 5) lor 15;;
+let _PPC_BC_NE_PLUS = (2 lsl 5) lor 7;;
+let _PPC_BC_UN_PLUS = (3 lsl 5) lor 15;;
+let _PPC_BC_NU_PLUS = (3 lsl 5) lor 7;;
+
+(* PPC branch hint for some branch instructions *)
+
+let _PPC_BH_NO = 0;;
+let _PPC_BH_PLUS = 1;;
+let _PPC_BH_MINUS = 2;;
+
+(* Operand type for instruction's operands *)
+
+let _PPC_OP_INVALID = 0;;
+let _PPC_OP_REG = 1;;
+let _PPC_OP_IMM = 2;;
+let _PPC_OP_MEM = 3;;
+
+(* PPC registers *)
+
+let _PPC_REG_INVALID = 0;;
+let _PPC_REG_CARRY = 1;;
+let _PPC_REG_CR0 = 2;;
+let _PPC_REG_CR1 = 3;;
+let _PPC_REG_CR2 = 4;;
+let _PPC_REG_CR3 = 5;;
+let _PPC_REG_CR4 = 6;;
+let _PPC_REG_CR5 = 7;;
+let _PPC_REG_CR6 = 8;;
+let _PPC_REG_CR7 = 9;;
+let _PPC_REG_CR8 = 10;;
+let _PPC_REG_CR9 = 11;;
+let _PPC_REG_CR10 = 12;;
+let _PPC_REG_CR11 = 13;;
+let _PPC_REG_CR12 = 14;;
+let _PPC_REG_CR13 = 15;;
+let _PPC_REG_CR14 = 16;;
+let _PPC_REG_CR15 = 17;;
+let _PPC_REG_CR16 = 18;;
+let _PPC_REG_CR17 = 19;;
+let _PPC_REG_CR18 = 20;;
+let _PPC_REG_CR19 = 21;;
+let _PPC_REG_CR20 = 22;;
+let _PPC_REG_CR21 = 23;;
+let _PPC_REG_CR22 = 24;;
+let _PPC_REG_CR23 = 25;;
+let _PPC_REG_CR24 = 26;;
+let _PPC_REG_CR25 = 27;;
+let _PPC_REG_CR26 = 28;;
+let _PPC_REG_CR27 = 29;;
+let _PPC_REG_CR28 = 30;;
+let _PPC_REG_CR29 = 31;;
+let _PPC_REG_CR30 = 32;;
+let _PPC_REG_CR31 = 33;;
+let _PPC_REG_CTR = 34;;
+let _PPC_REG_F0 = 35;;
+let _PPC_REG_F1 = 36;;
+let _PPC_REG_F2 = 37;;
+let _PPC_REG_F3 = 38;;
+let _PPC_REG_F4 = 39;;
+let _PPC_REG_F5 = 40;;
+let _PPC_REG_F6 = 41;;
+let _PPC_REG_F7 = 42;;
+let _PPC_REG_F8 = 43;;
+let _PPC_REG_F9 = 44;;
+let _PPC_REG_F10 = 45;;
+let _PPC_REG_F11 = 46;;
+let _PPC_REG_F12 = 47;;
+let _PPC_REG_F13 = 48;;
+let _PPC_REG_F14 = 49;;
+let _PPC_REG_F15 = 50;;
+let _PPC_REG_F16 = 51;;
+let _PPC_REG_F17 = 52;;
+let _PPC_REG_F18 = 53;;
+let _PPC_REG_F19 = 54;;
+let _PPC_REG_F20 = 55;;
+let _PPC_REG_F21 = 56;;
+let _PPC_REG_F22 = 57;;
+let _PPC_REG_F23 = 58;;
+let _PPC_REG_F24 = 59;;
+let _PPC_REG_F25 = 60;;
+let _PPC_REG_F26 = 61;;
+let _PPC_REG_F27 = 62;;
+let _PPC_REG_F28 = 63;;
+let _PPC_REG_F29 = 64;;
+let _PPC_REG_F30 = 65;;
+let _PPC_REG_F31 = 66;;
+let _PPC_REG_LR = 67;;
+let _PPC_REG_R0 = 68;;
+let _PPC_REG_R1 = 69;;
+let _PPC_REG_R2 = 70;;
+let _PPC_REG_R3 = 71;;
+let _PPC_REG_R4 = 72;;
+let _PPC_REG_R5 = 73;;
+let _PPC_REG_R6 = 74;;
+let _PPC_REG_R7 = 75;;
+let _PPC_REG_R8 = 76;;
+let _PPC_REG_R9 = 77;;
+let _PPC_REG_R10 = 78;;
+let _PPC_REG_R11 = 79;;
+let _PPC_REG_R12 = 80;;
+let _PPC_REG_R13 = 81;;
+let _PPC_REG_R14 = 82;;
+let _PPC_REG_R15 = 83;;
+let _PPC_REG_R16 = 84;;
+let _PPC_REG_R17 = 85;;
+let _PPC_REG_R18 = 86;;
+let _PPC_REG_R19 = 87;;
+let _PPC_REG_R20 = 88;;
+let _PPC_REG_R21 = 89;;
+let _PPC_REG_R22 = 90;;
+let _PPC_REG_R23 = 91;;
+let _PPC_REG_R24 = 92;;
+let _PPC_REG_R25 = 93;;
+let _PPC_REG_R26 = 94;;
+let _PPC_REG_R27 = 95;;
+let _PPC_REG_R28 = 96;;
+let _PPC_REG_R29 = 97;;
+let _PPC_REG_R30 = 98;;
+let _PPC_REG_R31 = 99;;
+let _PPC_REG_V0 = 100;;
+let _PPC_REG_V1 = 101;;
+let _PPC_REG_V2 = 102;;
+let _PPC_REG_V3 = 103;;
+let _PPC_REG_V4 = 104;;
+let _PPC_REG_V5 = 105;;
+let _PPC_REG_V6 = 106;;
+let _PPC_REG_V7 = 107;;
+let _PPC_REG_V8 = 108;;
+let _PPC_REG_V9 = 109;;
+let _PPC_REG_V10 = 110;;
+let _PPC_REG_V11 = 111;;
+let _PPC_REG_V12 = 112;;
+let _PPC_REG_V13 = 113;;
+let _PPC_REG_V14 = 114;;
+let _PPC_REG_V15 = 115;;
+let _PPC_REG_V16 = 116;;
+let _PPC_REG_V17 = 117;;
+let _PPC_REG_V18 = 118;;
+let _PPC_REG_V19 = 119;;
+let _PPC_REG_V20 = 120;;
+let _PPC_REG_V21 = 121;;
+let _PPC_REG_V22 = 122;;
+let _PPC_REG_V23 = 123;;
+let _PPC_REG_V24 = 124;;
+let _PPC_REG_V25 = 125;;
+let _PPC_REG_V26 = 126;;
+let _PPC_REG_V27 = 127;;
+let _PPC_REG_V28 = 128;;
+let _PPC_REG_V29 = 129;;
+let _PPC_REG_V30 = 130;;
+let _PPC_REG_V31 = 131;;
+let _PPC_REG_VRSAVE = 132;;
+let _PPC_REG_RM = 133;;
+let _PPC_REG_CTR8 = 134;;
+let _PPC_REG_LR8 = 135;;
+let _PPC_REG_CR1EQ = 136;;
+let _PPC_REG_MAX = 137;;
+
+(* PPC instruction *)
+
+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_ADDZE = 8;;
+let _PPC_INS_AND = 9;;
+let _PPC_INS_ANDC = 10;;
+let _PPC_INS_ANDIS = 11;;
+let _PPC_INS_ANDI = 12;;
+let _PPC_INS_B = 13;;
+let _PPC_INS_BA = 14;;
+let _PPC_INS_BCL = 15;;
+let _PPC_INS_BCTR = 16;;
+let _PPC_INS_BCTRL = 17;;
+let _PPC_INS_BDNZ = 18;;
+let _PPC_INS_BDNZA = 19;;
+let _PPC_INS_BDNZL = 20;;
+let _PPC_INS_BDNZLA = 21;;
+let _PPC_INS_BDNZLR = 22;;
+let _PPC_INS_BDNZLRL = 23;;
+let _PPC_INS_BDZ = 24;;
+let _PPC_INS_BDZA = 25;;
+let _PPC_INS_BDZL = 26;;
+let _PPC_INS_BDZLA = 27;;
+let _PPC_INS_BDZLR = 28;;
+let _PPC_INS_BDZLRL = 29;;
+let _PPC_INS_BL = 30;;
+let _PPC_INS_BLA = 31;;
+let _PPC_INS_BLR = 32;;
+let _PPC_INS_BLRL = 33;;
+let _PPC_INS_CMPD = 34;;
+let _PPC_INS_CMPDI = 35;;
+let _PPC_INS_CMPLD = 36;;
+let _PPC_INS_CMPLDI = 37;;
+let _PPC_INS_CMPLW = 38;;
+let _PPC_INS_CMPLWI = 39;;
+let _PPC_INS_CMPW = 40;;
+let _PPC_INS_CMPWI = 41;;
+let _PPC_INS_CNTLZD = 42;;
+let _PPC_INS_CNTLZW = 43;;
+let _PPC_INS_CREQV = 44;;
+let _PPC_INS_CRXOR = 45;;
+let _PPC_INS_CRAND = 46;;
+let _PPC_INS_CRANDC = 47;;
+let _PPC_INS_CRNAND = 48;;
+let _PPC_INS_CRNOR = 49;;
+let _PPC_INS_CROR = 50;;
+let _PPC_INS_CRORC = 51;;
+let _PPC_INS_DCBA = 52;;
+let _PPC_INS_DCBF = 53;;
+let _PPC_INS_DCBI = 54;;
+let _PPC_INS_DCBST = 55;;
+let _PPC_INS_DCBT = 56;;
+let _PPC_INS_DCBTST = 57;;
+let _PPC_INS_DCBZ = 58;;
+let _PPC_INS_DCBZL = 59;;
+let _PPC_INS_DIVD = 60;;
+let _PPC_INS_DIVDU = 61;;
+let _PPC_INS_DIVW = 62;;
+let _PPC_INS_DIVWU = 63;;
+let _PPC_INS_DSS = 64;;
+let _PPC_INS_DSSALL = 65;;
+let _PPC_INS_DST = 66;;
+let _PPC_INS_DSTST = 67;;
+let _PPC_INS_DSTSTT = 68;;
+let _PPC_INS_DSTT = 69;;
+let _PPC_INS_EIEIO = 70;;
+let _PPC_INS_EQV = 71;;
+let _PPC_INS_EXTSB = 72;;
+let _PPC_INS_EXTSH = 73;;
+let _PPC_INS_EXTSW = 74;;
+let _PPC_INS_FABS = 75;;
+let _PPC_INS_FADD = 76;;
+let _PPC_INS_FADDS = 77;;
+let _PPC_INS_FCFID = 78;;
+let _PPC_INS_FCFIDS = 79;;
+let _PPC_INS_FCFIDU = 80;;
+let _PPC_INS_FCFIDUS = 81;;
+let _PPC_INS_FCMPU = 82;;
+let _PPC_INS_FCPSGN = 83;;
+let _PPC_INS_FCTID = 84;;
+let _PPC_INS_FCTIDUZ = 85;;
+let _PPC_INS_FCTIDZ = 86;;
+let _PPC_INS_FCTIW = 87;;
+let _PPC_INS_FCTIWUZ = 88;;
+let _PPC_INS_FCTIWZ = 89;;
+let _PPC_INS_FDIV = 90;;
+let _PPC_INS_FDIVS = 91;;
+let _PPC_INS_FMADD = 92;;
+let _PPC_INS_FMADDS = 93;;
+let _PPC_INS_FMR = 94;;
+let _PPC_INS_FMSUB = 95;;
+let _PPC_INS_FMSUBS = 96;;
+let _PPC_INS_FMUL = 97;;
+let _PPC_INS_FMULS = 98;;
+let _PPC_INS_FNABS = 99;;
+let _PPC_INS_FNEG = 100;;
+let _PPC_INS_FNMADD = 101;;
+let _PPC_INS_FNMADDS = 102;;
+let _PPC_INS_FNMSUB = 103;;
+let _PPC_INS_FNMSUBS = 104;;
+let _PPC_INS_FRE = 105;;
+let _PPC_INS_FRES = 106;;
+let _PPC_INS_FRIM = 107;;
+let _PPC_INS_FRIN = 108;;
+let _PPC_INS_FRIP = 109;;
+let _PPC_INS_FRIZ = 110;;
+let _PPC_INS_FRSP = 111;;
+let _PPC_INS_FRSQRTE = 112;;
+let _PPC_INS_FRSQRTES = 113;;
+let _PPC_INS_FSEL = 114;;
+let _PPC_INS_FSQRT = 115;;
+let _PPC_INS_FSQRTS = 116;;
+let _PPC_INS_FSUB = 117;;
+let _PPC_INS_FSUBS = 118;;
+let _PPC_INS_ICBI = 119;;
+let _PPC_INS_ISEL = 120;;
+let _PPC_INS_ISYNC = 121;;
+let _PPC_INS_LA = 122;;
+let _PPC_INS_LBZ = 123;;
+let _PPC_INS_LBZU = 124;;
+let _PPC_INS_LBZUX = 125;;
+let _PPC_INS_LBZX = 126;;
+let _PPC_INS_LD = 127;;
+let _PPC_INS_LDARX = 128;;
+let _PPC_INS_LDBRX = 129;;
+let _PPC_INS_LDU = 130;;
+let _PPC_INS_LDUX = 131;;
+let _PPC_INS_LDX = 132;;
+let _PPC_INS_LFD = 133;;
+let _PPC_INS_LFDU = 134;;
+let _PPC_INS_LFDUX = 135;;
+let _PPC_INS_LFDX = 136;;
+let _PPC_INS_LFIWAX = 137;;
+let _PPC_INS_LFIWZX = 138;;
+let _PPC_INS_LFS = 139;;
+let _PPC_INS_LFSU = 140;;
+let _PPC_INS_LFSUX = 141;;
+let _PPC_INS_LFSX = 142;;
+let _PPC_INS_LHA = 143;;
+let _PPC_INS_LHAU = 144;;
+let _PPC_INS_LHAUX = 145;;
+let _PPC_INS_LHAX = 146;;
+let _PPC_INS_LHBRX = 147;;
+let _PPC_INS_LHZ = 148;;
+let _PPC_INS_LHZU = 149;;
+let _PPC_INS_LHZUX = 150;;
+let _PPC_INS_LHZX = 151;;
+let _PPC_INS_LI = 152;;
+let _PPC_INS_LIS = 153;;
+let _PPC_INS_LMW = 154;;
+let _PPC_INS_LVEBX = 155;;
+let _PPC_INS_LVEHX = 156;;
+let _PPC_INS_LVEWX = 157;;
+let _PPC_INS_LVSL = 158;;
+let _PPC_INS_LVSR = 159;;
+let _PPC_INS_LVX = 160;;
+let _PPC_INS_LVXL = 161;;
+let _PPC_INS_LWA = 162;;
+let _PPC_INS_LWARX = 163;;
+let _PPC_INS_LWAUX = 164;;
+let _PPC_INS_LWAX = 165;;
+let _PPC_INS_LWBRX = 166;;
+let _PPC_INS_LWZ = 167;;
+let _PPC_INS_LWZU = 168;;
+let _PPC_INS_LWZUX = 169;;
+let _PPC_INS_LWZX = 170;;
+let _PPC_INS_MCRF = 171;;
+let _PPC_INS_MFCR = 172;;
+let _PPC_INS_MFCTR = 173;;
+let _PPC_INS_MFFS = 174;;
+let _PPC_INS_MFLR = 175;;
+let _PPC_INS_MFMSR = 176;;
+let _PPC_INS_MFOCRF = 177;;
+let _PPC_INS_MFSPR = 178;;
+let _PPC_INS_MFTB = 179;;
+let _PPC_INS_MFVSCR = 180;;
+let _PPC_INS_MSYNC = 181;;
+let _PPC_INS_MTCRF = 182;;
+let _PPC_INS_MTCTR = 183;;
+let _PPC_INS_MTFSB0 = 184;;
+let _PPC_INS_MTFSB1 = 185;;
+let _PPC_INS_MTFSF = 186;;
+let _PPC_INS_MTLR = 187;;
+let _PPC_INS_MTMSR = 188;;
+let _PPC_INS_MTMSRD = 189;;
+let _PPC_INS_MTOCRF = 190;;
+let _PPC_INS_MTSPR = 191;;
+let _PPC_INS_MTVSCR = 192;;
+let _PPC_INS_MULHD = 193;;
+let _PPC_INS_MULHDU = 194;;
+let _PPC_INS_MULHW = 195;;
+let _PPC_INS_MULHWU = 196;;
+let _PPC_INS_MULLD = 197;;
+let _PPC_INS_MULLI = 198;;
+let _PPC_INS_MULLW = 199;;
+let _PPC_INS_NAND = 200;;
+let _PPC_INS_NEG = 201;;
+let _PPC_INS_NOP = 202;;
+let _PPC_INS_ORI = 203;;
+let _PPC_INS_NOR = 204;;
+let _PPC_INS_OR = 205;;
+let _PPC_INS_ORC = 206;;
+let _PPC_INS_ORIS = 207;;
+let _PPC_INS_POPCNTD = 208;;
+let _PPC_INS_POPCNTW = 209;;
+let _PPC_INS_RLDCL = 210;;
+let _PPC_INS_RLDCR = 211;;
+let _PPC_INS_RLDIC = 212;;
+let _PPC_INS_RLDICL = 213;;
+let _PPC_INS_RLDICR = 214;;
+let _PPC_INS_RLDIMI = 215;;
+let _PPC_INS_RLWIMI = 216;;
+let _PPC_INS_RLWINM = 217;;
+let _PPC_INS_RLWNM = 218;;
+let _PPC_INS_SC = 219;;
+let _PPC_INS_SLBIA = 220;;
+let _PPC_INS_SLBIE = 221;;
+let _PPC_INS_SLBMFEE = 222;;
+let _PPC_INS_SLBMTE = 223;;
+let _PPC_INS_SLD = 224;;
+let _PPC_INS_SLW = 225;;
+let _PPC_INS_SRAD = 226;;
+let _PPC_INS_SRADI = 227;;
+let _PPC_INS_SRAW = 228;;
+let _PPC_INS_SRAWI = 229;;
+let _PPC_INS_SRD = 230;;
+let _PPC_INS_SRW = 231;;
+let _PPC_INS_STB = 232;;
+let _PPC_INS_STBU = 233;;
+let _PPC_INS_STBUX = 234;;
+let _PPC_INS_STBX = 235;;
+let _PPC_INS_STD = 236;;
+let _PPC_INS_STDBRX = 237;;
+let _PPC_INS_STDCX = 238;;
+let _PPC_INS_STDU = 239;;
+let _PPC_INS_STDUX = 240;;
+let _PPC_INS_STDX = 241;;
+let _PPC_INS_STFD = 242;;
+let _PPC_INS_STFDU = 243;;
+let _PPC_INS_STFDUX = 244;;
+let _PPC_INS_STFDX = 245;;
+let _PPC_INS_STFIWX = 246;;
+let _PPC_INS_STFS = 247;;
+let _PPC_INS_STFSU = 248;;
+let _PPC_INS_STFSUX = 249;;
+let _PPC_INS_STFSX = 250;;
+let _PPC_INS_STH = 251;;
+let _PPC_INS_STHBRX = 252;;
+let _PPC_INS_STHU = 253;;
+let _PPC_INS_STHUX = 254;;
+let _PPC_INS_STHX = 255;;
+let _PPC_INS_STMW = 256;;
+let _PPC_INS_STVEBX = 257;;
+let _PPC_INS_STVEHX = 258;;
+let _PPC_INS_STVEWX = 259;;
+let _PPC_INS_STVX = 260;;
+let _PPC_INS_STVXL = 261;;
+let _PPC_INS_STW = 262;;
+let _PPC_INS_STWBRX = 263;;
+let _PPC_INS_STWCX = 264;;
+let _PPC_INS_STWU = 265;;
+let _PPC_INS_STWUX = 266;;
+let _PPC_INS_STWX = 267;;
+let _PPC_INS_SUBF = 268;;
+let _PPC_INS_SUBFC = 269;;
+let _PPC_INS_SUBFE = 270;;
+let _PPC_INS_SUBFIC = 271;;
+let _PPC_INS_SUBFME = 272;;
+let _PPC_INS_SUBFZE = 273;;
+let _PPC_INS_SYNC = 274;;
+let _PPC_INS_TD = 275;;
+let _PPC_INS_TDI = 276;;
+let _PPC_INS_TLBIE = 277;;
+let _PPC_INS_TLBIEL = 278;;
+let _PPC_INS_TLBSYNC = 279;;
+let _PPC_INS_TRAP = 280;;
+let _PPC_INS_TW = 281;;
+let _PPC_INS_TWI = 282;;
+let _PPC_INS_VADDCUW = 283;;
+let _PPC_INS_VADDFP = 284;;
+let _PPC_INS_VADDSBS = 285;;
+let _PPC_INS_VADDSHS = 286;;
+let _PPC_INS_VADDSWS = 287;;
+let _PPC_INS_VADDUBM = 288;;
+let _PPC_INS_VADDUBS = 289;;
+let _PPC_INS_VADDUHM = 290;;
+let _PPC_INS_VADDUHS = 291;;
+let _PPC_INS_VADDUWM = 292;;
+let _PPC_INS_VADDUWS = 293;;
+let _PPC_INS_VAND = 294;;
+let _PPC_INS_VANDC = 295;;
+let _PPC_INS_VAVGSB = 296;;
+let _PPC_INS_VAVGSH = 297;;
+let _PPC_INS_VAVGSW = 298;;
+let _PPC_INS_VAVGUB = 299;;
+let _PPC_INS_VAVGUH = 300;;
+let _PPC_INS_VAVGUW = 301;;
+let _PPC_INS_VCFSX = 302;;
+let _PPC_INS_VCFUX = 303;;
+let _PPC_INS_VCMPBFP = 304;;
+let _PPC_INS_VCMPEQFP = 305;;
+let _PPC_INS_VCMPEQUB = 306;;
+let _PPC_INS_VCMPEQUH = 307;;
+let _PPC_INS_VCMPEQUW = 308;;
+let _PPC_INS_VCMPGEFP = 309;;
+let _PPC_INS_VCMPGTFP = 310;;
+let _PPC_INS_VCMPGTSB = 311;;
+let _PPC_INS_VCMPGTSH = 312;;
+let _PPC_INS_VCMPGTSW = 313;;
+let _PPC_INS_VCMPGTUB = 314;;
+let _PPC_INS_VCMPGTUH = 315;;
+let _PPC_INS_VCMPGTUW = 316;;
+let _PPC_INS_VCTSXS = 317;;
+let _PPC_INS_VCTUXS = 318;;
+let _PPC_INS_VEXPTEFP = 319;;
+let _PPC_INS_VLOGEFP = 320;;
+let _PPC_INS_VMADDFP = 321;;
+let _PPC_INS_VMAXFP = 322;;
+let _PPC_INS_VMAXSB = 323;;
+let _PPC_INS_VMAXSH = 324;;
+let _PPC_INS_VMAXSW = 325;;
+let _PPC_INS_VMAXUB = 326;;
+let _PPC_INS_VMAXUH = 327;;
+let _PPC_INS_VMAXUW = 328;;
+let _PPC_INS_VMHADDSHS = 329;;
+let _PPC_INS_VMHRADDSHS = 330;;
+let _PPC_INS_VMINFP = 331;;
+let _PPC_INS_VMINSB = 332;;
+let _PPC_INS_VMINSH = 333;;
+let _PPC_INS_VMINSW = 334;;
+let _PPC_INS_VMINUB = 335;;
+let _PPC_INS_VMINUH = 336;;
+let _PPC_INS_VMINUW = 337;;
+let _PPC_INS_VMLADDUHM = 338;;
+let _PPC_INS_VMRGHB = 339;;
+let _PPC_INS_VMRGHH = 340;;
+let _PPC_INS_VMRGHW = 341;;
+let _PPC_INS_VMRGLB = 342;;
+let _PPC_INS_VMRGLH = 343;;
+let _PPC_INS_VMRGLW = 344;;
+let _PPC_INS_VMSUMMBM = 345;;
+let _PPC_INS_VMSUMSHM = 346;;
+let _PPC_INS_VMSUMSHS = 347;;
+let _PPC_INS_VMSUMUBM = 348;;
+let _PPC_INS_VMSUMUHM = 349;;
+let _PPC_INS_VMSUMUHS = 350;;
+let _PPC_INS_VMULESB = 351;;
+let _PPC_INS_VMULESH = 352;;
+let _PPC_INS_VMULEUB = 353;;
+let _PPC_INS_VMULEUH = 354;;
+let _PPC_INS_VMULOSB = 355;;
+let _PPC_INS_VMULOSH = 356;;
+let _PPC_INS_VMULOUB = 357;;
+let _PPC_INS_VMULOUH = 358;;
+let _PPC_INS_VNMSUBFP = 359;;
+let _PPC_INS_VNOR = 360;;
+let _PPC_INS_VOR = 361;;
+let _PPC_INS_VPERM = 362;;
+let _PPC_INS_VPKPX = 363;;
+let _PPC_INS_VPKSHSS = 364;;
+let _PPC_INS_VPKSHUS = 365;;
+let _PPC_INS_VPKSWSS = 366;;
+let _PPC_INS_VPKSWUS = 367;;
+let _PPC_INS_VPKUHUM = 368;;
+let _PPC_INS_VPKUHUS = 369;;
+let _PPC_INS_VPKUWUM = 370;;
+let _PPC_INS_VPKUWUS = 371;;
+let _PPC_INS_VREFP = 372;;
+let _PPC_INS_VRFIM = 373;;
+let _PPC_INS_VRFIN = 374;;
+let _PPC_INS_VRFIP = 375;;
+let _PPC_INS_VRFIZ = 376;;
+let _PPC_INS_VRLB = 377;;
+let _PPC_INS_VRLH = 378;;
+let _PPC_INS_VRLW = 379;;
+let _PPC_INS_VRSQRTEFP = 380;;
+let _PPC_INS_VSEL = 381;;
+let _PPC_INS_VSL = 382;;
+let _PPC_INS_VSLB = 383;;
+let _PPC_INS_VSLDOI = 384;;
+let _PPC_INS_VSLH = 385;;
+let _PPC_INS_VSLO = 386;;
+let _PPC_INS_VSLW = 387;;
+let _PPC_INS_VSPLTB = 388;;
+let _PPC_INS_VSPLTH = 389;;
+let _PPC_INS_VSPLTISB = 390;;
+let _PPC_INS_VSPLTISH = 391;;
+let _PPC_INS_VSPLTISW = 392;;
+let _PPC_INS_VSPLTW = 393;;
+let _PPC_INS_VSR = 394;;
+let _PPC_INS_VSRAB = 395;;
+let _PPC_INS_VSRAH = 396;;
+let _PPC_INS_VSRAW = 397;;
+let _PPC_INS_VSRB = 398;;
+let _PPC_INS_VSRH = 399;;
+let _PPC_INS_VSRO = 400;;
+let _PPC_INS_VSRW = 401;;
+let _PPC_INS_VSUBCUW = 402;;
+let _PPC_INS_VSUBFP = 403;;
+let _PPC_INS_VSUBSBS = 404;;
+let _PPC_INS_VSUBSHS = 405;;
+let _PPC_INS_VSUBSWS = 406;;
+let _PPC_INS_VSUBUBM = 407;;
+let _PPC_INS_VSUBUBS = 408;;
+let _PPC_INS_VSUBUHM = 409;;
+let _PPC_INS_VSUBUHS = 410;;
+let _PPC_INS_VSUBUWM = 411;;
+let _PPC_INS_VSUBUWS = 412;;
+let _PPC_INS_VSUM2SWS = 413;;
+let _PPC_INS_VSUM4SBS = 414;;
+let _PPC_INS_VSUM4SHS = 415;;
+let _PPC_INS_VSUM4UBS = 416;;
+let _PPC_INS_VSUMSWS = 417;;
+let _PPC_INS_VUPKHPX = 418;;
+let _PPC_INS_VUPKHSB = 419;;
+let _PPC_INS_VUPKHSH = 420;;
+let _PPC_INS_VUPKLPX = 421;;
+let _PPC_INS_VUPKLSB = 422;;
+let _PPC_INS_VUPKLSH = 423;;
+let _PPC_INS_VXOR = 424;;
+let _PPC_INS_WAIT = 425;;
+let _PPC_INS_XOR = 426;;
+let _PPC_INS_XORI = 427;;
+let _PPC_INS_XORIS = 428;;
+let _PPC_INS_BC = 429;;
+let _PPC_INS_BCA = 430;;
+let _PPC_INS_BCCTR = 431;;
+let _PPC_INS_BCCTRL = 432;;
+let _PPC_INS_BCLA = 433;;
+let _PPC_INS_BCLR = 434;;
+let _PPC_INS_BCLRL = 435;;
+let _PPC_INS_MAX = 436;;
+
+(* Group of PPC instructions *)
+
+let _PPC_GRP_INVALID = 0;;
+let _PPC_GRP_ALTIVEC = 1;;
+let _PPC_GRP_MODE32 = 2;;
+let _PPC_GRP_MODE64 = 3;;
+let _PPC_GRP_BOOKE = 4;;
+let _PPC_GRP_NOTBOOKE = 5;;
+let _PPC_GRP_JUMP = 6;;
+let _PPC_GRP_MAX = 7;;
diff --git a/bindings/ocaml/sparc.ml b/bindings/ocaml/sparc.ml
index e32dac3..45f27f8 100644
--- a/bindings/ocaml/sparc.ml
+++ b/bindings/ocaml/sparc.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
 
+open Sparc_const
+
 type sparc_op_mem = {
 	base: int;
 	index: int;
@@ -20,444 +22,3 @@
 	operands: sparc_op array;
 }
 
-(*  Enums corresponding to Sparc condition codes, both icc's and fcc's. *)
-
-let _SPARC_CC_INVALID = 0;;
-
-(*  Integer condition codes *)
-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;;
-
-(*  Floating condition codes *)
-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;;
-
-(*  Branch hint *)
-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;;
-
-(*  Operand type for instruction's operands *)
-
-let _SPARC_OP_INVALID = 0;;
-let _SPARC_OP_REG = 1;;
-let _SPARC_OP_IMM = 2;;
-let _SPARC_OP_MEM = 3;;
-
-(*  SPARC registers *)
-
-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_MAX = 87;;
-let _SPARC_REG_O6 = _SPARC_REG_SP;;
-let _SPARC_REG_I6 = _SPARC_REG_FP;;
-
-(*  SPARC instruction *)
-
-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_BA = 16;;
-let _SPARC_INS_B = 17;;
-let _SPARC_INS_JMP = 18;;
-let _SPARC_INS_BMASK = 19;;
-let _SPARC_INS_FB = 20;;
-let _SPARC_INS_BRGEZ = 21;;
-let _SPARC_INS_BRGZ = 22;;
-let _SPARC_INS_BRLEZ = 23;;
-let _SPARC_INS_BRLZ = 24;;
-let _SPARC_INS_BRNZ = 25;;
-let _SPARC_INS_BRZ = 26;;
-let _SPARC_INS_BSHUFFLE = 27;;
-let _SPARC_INS_CALL = 28;;
-let _SPARC_INS_CASX = 29;;
-let _SPARC_INS_CAS = 30;;
-let _SPARC_INS_CMASK16 = 31;;
-let _SPARC_INS_CMASK32 = 32;;
-let _SPARC_INS_CMASK8 = 33;;
-let _SPARC_INS_CMP = 34;;
-let _SPARC_INS_EDGE16 = 35;;
-let _SPARC_INS_EDGE16L = 36;;
-let _SPARC_INS_EDGE16LN = 37;;
-let _SPARC_INS_EDGE16N = 38;;
-let _SPARC_INS_EDGE32 = 39;;
-let _SPARC_INS_EDGE32L = 40;;
-let _SPARC_INS_EDGE32LN = 41;;
-let _SPARC_INS_EDGE32N = 42;;
-let _SPARC_INS_EDGE8 = 43;;
-let _SPARC_INS_EDGE8L = 44;;
-let _SPARC_INS_EDGE8LN = 45;;
-let _SPARC_INS_EDGE8N = 46;;
-let _SPARC_INS_FABSD = 47;;
-let _SPARC_INS_FABSQ = 48;;
-let _SPARC_INS_FABSS = 49;;
-let _SPARC_INS_FADDD = 50;;
-let _SPARC_INS_FADDQ = 51;;
-let _SPARC_INS_FADDS = 52;;
-let _SPARC_INS_FALIGNDATA = 53;;
-let _SPARC_INS_FAND = 54;;
-let _SPARC_INS_FANDNOT1 = 55;;
-let _SPARC_INS_FANDNOT1S = 56;;
-let _SPARC_INS_FANDNOT2 = 57;;
-let _SPARC_INS_FANDNOT2S = 58;;
-let _SPARC_INS_FANDS = 59;;
-let _SPARC_INS_FCHKSM16 = 60;;
-let _SPARC_INS_FCMPD = 61;;
-let _SPARC_INS_FCMPEQ16 = 62;;
-let _SPARC_INS_FCMPEQ32 = 63;;
-let _SPARC_INS_FCMPGT16 = 64;;
-let _SPARC_INS_FCMPGT32 = 65;;
-let _SPARC_INS_FCMPLE16 = 66;;
-let _SPARC_INS_FCMPLE32 = 67;;
-let _SPARC_INS_FCMPNE16 = 68;;
-let _SPARC_INS_FCMPNE32 = 69;;
-let _SPARC_INS_FCMPQ = 70;;
-let _SPARC_INS_FCMPS = 71;;
-let _SPARC_INS_FDIVD = 72;;
-let _SPARC_INS_FDIVQ = 73;;
-let _SPARC_INS_FDIVS = 74;;
-let _SPARC_INS_FDMULQ = 75;;
-let _SPARC_INS_FDTOI = 76;;
-let _SPARC_INS_FDTOQ = 77;;
-let _SPARC_INS_FDTOS = 78;;
-let _SPARC_INS_FDTOX = 79;;
-let _SPARC_INS_FEXPAND = 80;;
-let _SPARC_INS_FHADDD = 81;;
-let _SPARC_INS_FHADDS = 82;;
-let _SPARC_INS_FHSUBD = 83;;
-let _SPARC_INS_FHSUBS = 84;;
-let _SPARC_INS_FITOD = 85;;
-let _SPARC_INS_FITOQ = 86;;
-let _SPARC_INS_FITOS = 87;;
-let _SPARC_INS_FLCMPD = 88;;
-let _SPARC_INS_FLCMPS = 89;;
-let _SPARC_INS_FLUSHW = 90;;
-let _SPARC_INS_FMEAN16 = 91;;
-let _SPARC_INS_FMOVD = 92;;
-let _SPARC_INS_FMOVQ = 93;;
-let _SPARC_INS_FMOVRDGEZ = 94;;
-let _SPARC_INS_FMOVRQGEZ = 95;;
-let _SPARC_INS_FMOVRSGEZ = 96;;
-let _SPARC_INS_FMOVRDGZ = 97;;
-let _SPARC_INS_FMOVRQGZ = 98;;
-let _SPARC_INS_FMOVRSGZ = 99;;
-let _SPARC_INS_FMOVRDLEZ = 100;;
-let _SPARC_INS_FMOVRQLEZ = 101;;
-let _SPARC_INS_FMOVRSLEZ = 102;;
-let _SPARC_INS_FMOVRDLZ = 103;;
-let _SPARC_INS_FMOVRQLZ = 104;;
-let _SPARC_INS_FMOVRSLZ = 105;;
-let _SPARC_INS_FMOVRDNZ = 106;;
-let _SPARC_INS_FMOVRQNZ = 107;;
-let _SPARC_INS_FMOVRSNZ = 108;;
-let _SPARC_INS_FMOVRDZ = 109;;
-let _SPARC_INS_FMOVRQZ = 110;;
-let _SPARC_INS_FMOVRSZ = 111;;
-let _SPARC_INS_FMOVS = 112;;
-let _SPARC_INS_FMUL8SUX16 = 113;;
-let _SPARC_INS_FMUL8ULX16 = 114;;
-let _SPARC_INS_FMUL8X16 = 115;;
-let _SPARC_INS_FMUL8X16AL = 116;;
-let _SPARC_INS_FMUL8X16AU = 117;;
-let _SPARC_INS_FMULD = 118;;
-let _SPARC_INS_FMULD8SUX16 = 119;;
-let _SPARC_INS_FMULD8ULX16 = 120;;
-let _SPARC_INS_FMULQ = 121;;
-let _SPARC_INS_FMULS = 122;;
-let _SPARC_INS_FNADDD = 123;;
-let _SPARC_INS_FNADDS = 124;;
-let _SPARC_INS_FNAND = 125;;
-let _SPARC_INS_FNANDS = 126;;
-let _SPARC_INS_FNEGD = 127;;
-let _SPARC_INS_FNEGQ = 128;;
-let _SPARC_INS_FNEGS = 129;;
-let _SPARC_INS_FNHADDD = 130;;
-let _SPARC_INS_FNHADDS = 131;;
-let _SPARC_INS_FNOR = 132;;
-let _SPARC_INS_FNORS = 133;;
-let _SPARC_INS_FNOT1 = 134;;
-let _SPARC_INS_FNOT1S = 135;;
-let _SPARC_INS_FNOT2 = 136;;
-let _SPARC_INS_FNOT2S = 137;;
-let _SPARC_INS_FONE = 138;;
-let _SPARC_INS_FONES = 139;;
-let _SPARC_INS_FOR = 140;;
-let _SPARC_INS_FORNOT1 = 141;;
-let _SPARC_INS_FORNOT1S = 142;;
-let _SPARC_INS_FORNOT2 = 143;;
-let _SPARC_INS_FORNOT2S = 144;;
-let _SPARC_INS_FORS = 145;;
-let _SPARC_INS_FPACK16 = 146;;
-let _SPARC_INS_FPACK32 = 147;;
-let _SPARC_INS_FPACKFIX = 148;;
-let _SPARC_INS_FPADD16 = 149;;
-let _SPARC_INS_FPADD16S = 150;;
-let _SPARC_INS_FPADD32 = 151;;
-let _SPARC_INS_FPADD32S = 152;;
-let _SPARC_INS_FPADD64 = 153;;
-let _SPARC_INS_FPMERGE = 154;;
-let _SPARC_INS_FPSUB16 = 155;;
-let _SPARC_INS_FPSUB16S = 156;;
-let _SPARC_INS_FPSUB32 = 157;;
-let _SPARC_INS_FPSUB32S = 158;;
-let _SPARC_INS_FQTOD = 159;;
-let _SPARC_INS_FQTOI = 160;;
-let _SPARC_INS_FQTOS = 161;;
-let _SPARC_INS_FQTOX = 162;;
-let _SPARC_INS_FSLAS16 = 163;;
-let _SPARC_INS_FSLAS32 = 164;;
-let _SPARC_INS_FSLL16 = 165;;
-let _SPARC_INS_FSLL32 = 166;;
-let _SPARC_INS_FSMULD = 167;;
-let _SPARC_INS_FSQRTD = 168;;
-let _SPARC_INS_FSQRTQ = 169;;
-let _SPARC_INS_FSQRTS = 170;;
-let _SPARC_INS_FSRA16 = 171;;
-let _SPARC_INS_FSRA32 = 172;;
-let _SPARC_INS_FSRC1 = 173;;
-let _SPARC_INS_FSRC1S = 174;;
-let _SPARC_INS_FSRC2 = 175;;
-let _SPARC_INS_FSRC2S = 176;;
-let _SPARC_INS_FSRL16 = 177;;
-let _SPARC_INS_FSRL32 = 178;;
-let _SPARC_INS_FSTOD = 179;;
-let _SPARC_INS_FSTOI = 180;;
-let _SPARC_INS_FSTOQ = 181;;
-let _SPARC_INS_FSTOX = 182;;
-let _SPARC_INS_FSUBD = 183;;
-let _SPARC_INS_FSUBQ = 184;;
-let _SPARC_INS_FSUBS = 185;;
-let _SPARC_INS_FXNOR = 186;;
-let _SPARC_INS_FXNORS = 187;;
-let _SPARC_INS_FXOR = 188;;
-let _SPARC_INS_FXORS = 189;;
-let _SPARC_INS_FXTOD = 190;;
-let _SPARC_INS_FXTOQ = 191;;
-let _SPARC_INS_FXTOS = 192;;
-let _SPARC_INS_FZERO = 193;;
-let _SPARC_INS_FZEROS = 194;;
-let _SPARC_INS_JMPL = 195;;
-let _SPARC_INS_LDD = 196;;
-let _SPARC_INS_LD = 197;;
-let _SPARC_INS_LDQ = 198;;
-let _SPARC_INS_LDSB = 199;;
-let _SPARC_INS_LDSH = 200;;
-let _SPARC_INS_LDSW = 201;;
-let _SPARC_INS_LDUB = 202;;
-let _SPARC_INS_LDUH = 203;;
-let _SPARC_INS_LDX = 204;;
-let _SPARC_INS_LZCNT = 205;;
-let _SPARC_INS_MEMBAR = 206;;
-let _SPARC_INS_MOVDTOX = 207;;
-let _SPARC_INS_MOV = 208;;
-let _SPARC_INS_MOVRGEZ = 209;;
-let _SPARC_INS_MOVRGZ = 210;;
-let _SPARC_INS_MOVRLEZ = 211;;
-let _SPARC_INS_MOVRLZ = 212;;
-let _SPARC_INS_MOVRNZ = 213;;
-let _SPARC_INS_MOVRZ = 214;;
-let _SPARC_INS_MOVSTOSW = 215;;
-let _SPARC_INS_MOVSTOUW = 216;;
-let _SPARC_INS_MULX = 217;;
-let _SPARC_INS_NOP = 218;;
-let _SPARC_INS_ORCC = 219;;
-let _SPARC_INS_ORNCC = 220;;
-let _SPARC_INS_ORN = 221;;
-let _SPARC_INS_OR = 222;;
-let _SPARC_INS_PDIST = 223;;
-let _SPARC_INS_PDISTN = 224;;
-let _SPARC_INS_POPC = 225;;
-let _SPARC_INS_RD = 226;;
-let _SPARC_INS_RESTORE = 227;;
-let _SPARC_INS_RETT = 228;;
-let _SPARC_INS_SAVE = 229;;
-let _SPARC_INS_SDIVCC = 230;;
-let _SPARC_INS_SDIVX = 231;;
-let _SPARC_INS_SDIV = 232;;
-let _SPARC_INS_SETHI = 233;;
-let _SPARC_INS_SHUTDOWN = 234;;
-let _SPARC_INS_SIAM = 235;;
-let _SPARC_INS_SLLX = 236;;
-let _SPARC_INS_SLL = 237;;
-let _SPARC_INS_SMULCC = 238;;
-let _SPARC_INS_SMUL = 239;;
-let _SPARC_INS_SRAX = 240;;
-let _SPARC_INS_SRA = 241;;
-let _SPARC_INS_SRLX = 242;;
-let _SPARC_INS_SRL = 243;;
-let _SPARC_INS_STBAR = 244;;
-let _SPARC_INS_STB = 245;;
-let _SPARC_INS_STD = 246;;
-let _SPARC_INS_ST = 247;;
-let _SPARC_INS_STH = 248;;
-let _SPARC_INS_STQ = 249;;
-let _SPARC_INS_STX = 250;;
-let _SPARC_INS_SUBCC = 251;;
-let _SPARC_INS_SUBX = 252;;
-let _SPARC_INS_SUBXCC = 253;;
-let _SPARC_INS_SUB = 254;;
-let _SPARC_INS_SWAP = 255;;
-let _SPARC_INS_TA = 256;;
-let _SPARC_INS_TADDCCTV = 257;;
-let _SPARC_INS_TADDCC = 258;;
-let _SPARC_INS_T = 259;;
-let _SPARC_INS_TSUBCCTV = 260;;
-let _SPARC_INS_TSUBCC = 261;;
-let _SPARC_INS_UDIVCC = 262;;
-let _SPARC_INS_UDIVX = 263;;
-let _SPARC_INS_UDIV = 264;;
-let _SPARC_INS_UMULCC = 265;;
-let _SPARC_INS_UMULXHI = 266;;
-let _SPARC_INS_UMUL = 267;;
-let _SPARC_INS_UNIMP = 268;;
-let _SPARC_INS_FCMPED = 269;;
-let _SPARC_INS_FCMPEQ = 270;;
-let _SPARC_INS_FCMPES = 271;;
-let _SPARC_INS_WR = 272;;
-let _SPARC_INS_XMULX = 273;;
-let _SPARC_INS_XMULXHI = 274;;
-let _SPARC_INS_XNORCC = 275;;
-let _SPARC_INS_XNOR = 276;;
-let _SPARC_INS_XORCC = 277;;
-let _SPARC_INS_XOR = 278;;
-let _SPARC_INS_MAX = 279;;
-
-(*  Group of SPARC instructions *)
-
-let _SPARC_GRP_INVALID = 0;;
-let _SPARC_GRP_HARDQUAD = 1;;
-let _SPARC_GRP_V9 = 2;;
-let _SPARC_GRP_VIS = 3;;
-let _SPARC_GRP_VIS2 = 4;;
-let _SPARC_GRP_VIS3 = 5;;
-let _SPARC_GRP_32BIT = 6;;
-let _SPARC_GRP_64BIT = 7;;
-let _SPARC_GRP_JUMP = 8;;
-let _SPARC_GRP_MAX = 9;;
diff --git a/bindings/ocaml/sparc_const.ml b/bindings/ocaml/sparc_const.ml
new file mode 100644
index 0000000..b2abcae
--- /dev/null
+++ b/bindings/ocaml/sparc_const.ml
@@ -0,0 +1,444 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [sparc_const.ml] *)
+
+(* Enums corresponding to Sparc condition codes, both icc's and fcc's. *)
+
+let _SPARC_CC_INVALID = 0;;
+
+(* Integer condition codes *)
+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;;
+
+(* Floating condition codes *)
+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;;
+
+(* Branch hint *)
+
+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;;
+
+(* Operand type for instruction's operands *)
+
+let _SPARC_OP_INVALID = 0;;
+let _SPARC_OP_REG = 1;;
+let _SPARC_OP_IMM = 2;;
+let _SPARC_OP_MEM = 3;;
+
+(* SPARC registers *)
+
+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_MAX = 87;;
+let _SPARC_REG_O6 = _SPARC_REG_SP;;
+let _SPARC_REG_I6 = _SPARC_REG_FP;;
+
+(* SPARC instruction *)
+
+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_BA = 16;;
+let _SPARC_INS_B = 17;;
+let _SPARC_INS_JMP = 18;;
+let _SPARC_INS_BMASK = 19;;
+let _SPARC_INS_FB = 20;;
+let _SPARC_INS_BRGEZ = 21;;
+let _SPARC_INS_BRGZ = 22;;
+let _SPARC_INS_BRLEZ = 23;;
+let _SPARC_INS_BRLZ = 24;;
+let _SPARC_INS_BRNZ = 25;;
+let _SPARC_INS_BRZ = 26;;
+let _SPARC_INS_BSHUFFLE = 27;;
+let _SPARC_INS_CALL = 28;;
+let _SPARC_INS_CASX = 29;;
+let _SPARC_INS_CAS = 30;;
+let _SPARC_INS_CMASK16 = 31;;
+let _SPARC_INS_CMASK32 = 32;;
+let _SPARC_INS_CMASK8 = 33;;
+let _SPARC_INS_CMP = 34;;
+let _SPARC_INS_EDGE16 = 35;;
+let _SPARC_INS_EDGE16L = 36;;
+let _SPARC_INS_EDGE16LN = 37;;
+let _SPARC_INS_EDGE16N = 38;;
+let _SPARC_INS_EDGE32 = 39;;
+let _SPARC_INS_EDGE32L = 40;;
+let _SPARC_INS_EDGE32LN = 41;;
+let _SPARC_INS_EDGE32N = 42;;
+let _SPARC_INS_EDGE8 = 43;;
+let _SPARC_INS_EDGE8L = 44;;
+let _SPARC_INS_EDGE8LN = 45;;
+let _SPARC_INS_EDGE8N = 46;;
+let _SPARC_INS_FABSD = 47;;
+let _SPARC_INS_FABSQ = 48;;
+let _SPARC_INS_FABSS = 49;;
+let _SPARC_INS_FADDD = 50;;
+let _SPARC_INS_FADDQ = 51;;
+let _SPARC_INS_FADDS = 52;;
+let _SPARC_INS_FALIGNDATA = 53;;
+let _SPARC_INS_FAND = 54;;
+let _SPARC_INS_FANDNOT1 = 55;;
+let _SPARC_INS_FANDNOT1S = 56;;
+let _SPARC_INS_FANDNOT2 = 57;;
+let _SPARC_INS_FANDNOT2S = 58;;
+let _SPARC_INS_FANDS = 59;;
+let _SPARC_INS_FCHKSM16 = 60;;
+let _SPARC_INS_FCMPD = 61;;
+let _SPARC_INS_FCMPEQ16 = 62;;
+let _SPARC_INS_FCMPEQ32 = 63;;
+let _SPARC_INS_FCMPGT16 = 64;;
+let _SPARC_INS_FCMPGT32 = 65;;
+let _SPARC_INS_FCMPLE16 = 66;;
+let _SPARC_INS_FCMPLE32 = 67;;
+let _SPARC_INS_FCMPNE16 = 68;;
+let _SPARC_INS_FCMPNE32 = 69;;
+let _SPARC_INS_FCMPQ = 70;;
+let _SPARC_INS_FCMPS = 71;;
+let _SPARC_INS_FDIVD = 72;;
+let _SPARC_INS_FDIVQ = 73;;
+let _SPARC_INS_FDIVS = 74;;
+let _SPARC_INS_FDMULQ = 75;;
+let _SPARC_INS_FDTOI = 76;;
+let _SPARC_INS_FDTOQ = 77;;
+let _SPARC_INS_FDTOS = 78;;
+let _SPARC_INS_FDTOX = 79;;
+let _SPARC_INS_FEXPAND = 80;;
+let _SPARC_INS_FHADDD = 81;;
+let _SPARC_INS_FHADDS = 82;;
+let _SPARC_INS_FHSUBD = 83;;
+let _SPARC_INS_FHSUBS = 84;;
+let _SPARC_INS_FITOD = 85;;
+let _SPARC_INS_FITOQ = 86;;
+let _SPARC_INS_FITOS = 87;;
+let _SPARC_INS_FLCMPD = 88;;
+let _SPARC_INS_FLCMPS = 89;;
+let _SPARC_INS_FLUSHW = 90;;
+let _SPARC_INS_FMEAN16 = 91;;
+let _SPARC_INS_FMOVD = 92;;
+let _SPARC_INS_FMOVQ = 93;;
+let _SPARC_INS_FMOVRDGEZ = 94;;
+let _SPARC_INS_FMOVRQGEZ = 95;;
+let _SPARC_INS_FMOVRSGEZ = 96;;
+let _SPARC_INS_FMOVRDGZ = 97;;
+let _SPARC_INS_FMOVRQGZ = 98;;
+let _SPARC_INS_FMOVRSGZ = 99;;
+let _SPARC_INS_FMOVRDLEZ = 100;;
+let _SPARC_INS_FMOVRQLEZ = 101;;
+let _SPARC_INS_FMOVRSLEZ = 102;;
+let _SPARC_INS_FMOVRDLZ = 103;;
+let _SPARC_INS_FMOVRQLZ = 104;;
+let _SPARC_INS_FMOVRSLZ = 105;;
+let _SPARC_INS_FMOVRDNZ = 106;;
+let _SPARC_INS_FMOVRQNZ = 107;;
+let _SPARC_INS_FMOVRSNZ = 108;;
+let _SPARC_INS_FMOVRDZ = 109;;
+let _SPARC_INS_FMOVRQZ = 110;;
+let _SPARC_INS_FMOVRSZ = 111;;
+let _SPARC_INS_FMOVS = 112;;
+let _SPARC_INS_FMUL8SUX16 = 113;;
+let _SPARC_INS_FMUL8ULX16 = 114;;
+let _SPARC_INS_FMUL8X16 = 115;;
+let _SPARC_INS_FMUL8X16AL = 116;;
+let _SPARC_INS_FMUL8X16AU = 117;;
+let _SPARC_INS_FMULD = 118;;
+let _SPARC_INS_FMULD8SUX16 = 119;;
+let _SPARC_INS_FMULD8ULX16 = 120;;
+let _SPARC_INS_FMULQ = 121;;
+let _SPARC_INS_FMULS = 122;;
+let _SPARC_INS_FNADDD = 123;;
+let _SPARC_INS_FNADDS = 124;;
+let _SPARC_INS_FNAND = 125;;
+let _SPARC_INS_FNANDS = 126;;
+let _SPARC_INS_FNEGD = 127;;
+let _SPARC_INS_FNEGQ = 128;;
+let _SPARC_INS_FNEGS = 129;;
+let _SPARC_INS_FNHADDD = 130;;
+let _SPARC_INS_FNHADDS = 131;;
+let _SPARC_INS_FNOR = 132;;
+let _SPARC_INS_FNORS = 133;;
+let _SPARC_INS_FNOT1 = 134;;
+let _SPARC_INS_FNOT1S = 135;;
+let _SPARC_INS_FNOT2 = 136;;
+let _SPARC_INS_FNOT2S = 137;;
+let _SPARC_INS_FONE = 138;;
+let _SPARC_INS_FONES = 139;;
+let _SPARC_INS_FOR = 140;;
+let _SPARC_INS_FORNOT1 = 141;;
+let _SPARC_INS_FORNOT1S = 142;;
+let _SPARC_INS_FORNOT2 = 143;;
+let _SPARC_INS_FORNOT2S = 144;;
+let _SPARC_INS_FORS = 145;;
+let _SPARC_INS_FPACK16 = 146;;
+let _SPARC_INS_FPACK32 = 147;;
+let _SPARC_INS_FPACKFIX = 148;;
+let _SPARC_INS_FPADD16 = 149;;
+let _SPARC_INS_FPADD16S = 150;;
+let _SPARC_INS_FPADD32 = 151;;
+let _SPARC_INS_FPADD32S = 152;;
+let _SPARC_INS_FPADD64 = 153;;
+let _SPARC_INS_FPMERGE = 154;;
+let _SPARC_INS_FPSUB16 = 155;;
+let _SPARC_INS_FPSUB16S = 156;;
+let _SPARC_INS_FPSUB32 = 157;;
+let _SPARC_INS_FPSUB32S = 158;;
+let _SPARC_INS_FQTOD = 159;;
+let _SPARC_INS_FQTOI = 160;;
+let _SPARC_INS_FQTOS = 161;;
+let _SPARC_INS_FQTOX = 162;;
+let _SPARC_INS_FSLAS16 = 163;;
+let _SPARC_INS_FSLAS32 = 164;;
+let _SPARC_INS_FSLL16 = 165;;
+let _SPARC_INS_FSLL32 = 166;;
+let _SPARC_INS_FSMULD = 167;;
+let _SPARC_INS_FSQRTD = 168;;
+let _SPARC_INS_FSQRTQ = 169;;
+let _SPARC_INS_FSQRTS = 170;;
+let _SPARC_INS_FSRA16 = 171;;
+let _SPARC_INS_FSRA32 = 172;;
+let _SPARC_INS_FSRC1 = 173;;
+let _SPARC_INS_FSRC1S = 174;;
+let _SPARC_INS_FSRC2 = 175;;
+let _SPARC_INS_FSRC2S = 176;;
+let _SPARC_INS_FSRL16 = 177;;
+let _SPARC_INS_FSRL32 = 178;;
+let _SPARC_INS_FSTOD = 179;;
+let _SPARC_INS_FSTOI = 180;;
+let _SPARC_INS_FSTOQ = 181;;
+let _SPARC_INS_FSTOX = 182;;
+let _SPARC_INS_FSUBD = 183;;
+let _SPARC_INS_FSUBQ = 184;;
+let _SPARC_INS_FSUBS = 185;;
+let _SPARC_INS_FXNOR = 186;;
+let _SPARC_INS_FXNORS = 187;;
+let _SPARC_INS_FXOR = 188;;
+let _SPARC_INS_FXORS = 189;;
+let _SPARC_INS_FXTOD = 190;;
+let _SPARC_INS_FXTOQ = 191;;
+let _SPARC_INS_FXTOS = 192;;
+let _SPARC_INS_FZERO = 193;;
+let _SPARC_INS_FZEROS = 194;;
+let _SPARC_INS_JMPL = 195;;
+let _SPARC_INS_LDD = 196;;
+let _SPARC_INS_LD = 197;;
+let _SPARC_INS_LDQ = 198;;
+let _SPARC_INS_LDSB = 199;;
+let _SPARC_INS_LDSH = 200;;
+let _SPARC_INS_LDSW = 201;;
+let _SPARC_INS_LDUB = 202;;
+let _SPARC_INS_LDUH = 203;;
+let _SPARC_INS_LDX = 204;;
+let _SPARC_INS_LZCNT = 205;;
+let _SPARC_INS_MEMBAR = 206;;
+let _SPARC_INS_MOVDTOX = 207;;
+let _SPARC_INS_MOV = 208;;
+let _SPARC_INS_MOVRGEZ = 209;;
+let _SPARC_INS_MOVRGZ = 210;;
+let _SPARC_INS_MOVRLEZ = 211;;
+let _SPARC_INS_MOVRLZ = 212;;
+let _SPARC_INS_MOVRNZ = 213;;
+let _SPARC_INS_MOVRZ = 214;;
+let _SPARC_INS_MOVSTOSW = 215;;
+let _SPARC_INS_MOVSTOUW = 216;;
+let _SPARC_INS_MULX = 217;;
+let _SPARC_INS_NOP = 218;;
+let _SPARC_INS_ORCC = 219;;
+let _SPARC_INS_ORNCC = 220;;
+let _SPARC_INS_ORN = 221;;
+let _SPARC_INS_OR = 222;;
+let _SPARC_INS_PDIST = 223;;
+let _SPARC_INS_PDISTN = 224;;
+let _SPARC_INS_POPC = 225;;
+let _SPARC_INS_RD = 226;;
+let _SPARC_INS_RESTORE = 227;;
+let _SPARC_INS_RETT = 228;;
+let _SPARC_INS_SAVE = 229;;
+let _SPARC_INS_SDIVCC = 230;;
+let _SPARC_INS_SDIVX = 231;;
+let _SPARC_INS_SDIV = 232;;
+let _SPARC_INS_SETHI = 233;;
+let _SPARC_INS_SHUTDOWN = 234;;
+let _SPARC_INS_SIAM = 235;;
+let _SPARC_INS_SLLX = 236;;
+let _SPARC_INS_SLL = 237;;
+let _SPARC_INS_SMULCC = 238;;
+let _SPARC_INS_SMUL = 239;;
+let _SPARC_INS_SRAX = 240;;
+let _SPARC_INS_SRA = 241;;
+let _SPARC_INS_SRLX = 242;;
+let _SPARC_INS_SRL = 243;;
+let _SPARC_INS_STBAR = 244;;
+let _SPARC_INS_STB = 245;;
+let _SPARC_INS_STD = 246;;
+let _SPARC_INS_ST = 247;;
+let _SPARC_INS_STH = 248;;
+let _SPARC_INS_STQ = 249;;
+let _SPARC_INS_STX = 250;;
+let _SPARC_INS_SUBCC = 251;;
+let _SPARC_INS_SUBX = 252;;
+let _SPARC_INS_SUBXCC = 253;;
+let _SPARC_INS_SUB = 254;;
+let _SPARC_INS_SWAP = 255;;
+let _SPARC_INS_TA = 256;;
+let _SPARC_INS_TADDCCTV = 257;;
+let _SPARC_INS_TADDCC = 258;;
+let _SPARC_INS_T = 259;;
+let _SPARC_INS_TSUBCCTV = 260;;
+let _SPARC_INS_TSUBCC = 261;;
+let _SPARC_INS_UDIVCC = 262;;
+let _SPARC_INS_UDIVX = 263;;
+let _SPARC_INS_UDIV = 264;;
+let _SPARC_INS_UMULCC = 265;;
+let _SPARC_INS_UMULXHI = 266;;
+let _SPARC_INS_UMUL = 267;;
+let _SPARC_INS_UNIMP = 268;;
+let _SPARC_INS_FCMPED = 269;;
+let _SPARC_INS_FCMPEQ = 270;;
+let _SPARC_INS_FCMPES = 271;;
+let _SPARC_INS_WR = 272;;
+let _SPARC_INS_XMULX = 273;;
+let _SPARC_INS_XMULXHI = 274;;
+let _SPARC_INS_XNORCC = 275;;
+let _SPARC_INS_XNOR = 276;;
+let _SPARC_INS_XORCC = 277;;
+let _SPARC_INS_XOR = 278;;
+let _SPARC_INS_MAX = 279;;
+
+(* Group of SPARC instructions *)
+
+let _SPARC_GRP_INVALID = 0;;
+let _SPARC_GRP_HARDQUAD = 1;;
+let _SPARC_GRP_V9 = 2;;
+let _SPARC_GRP_VIS = 3;;
+let _SPARC_GRP_VIS2 = 4;;
+let _SPARC_GRP_VIS3 = 5;;
+let _SPARC_GRP_32BIT = 6;;
+let _SPARC_GRP_64BIT = 7;;
+let _SPARC_GRP_JUMP = 8;;
+let _SPARC_GRP_MAX = 9;;
diff --git a/bindings/ocaml/systemz.ml b/bindings/ocaml/systemz.ml
index c96ac50..c244070 100644
--- a/bindings/ocaml/systemz.ml
+++ b/bindings/ocaml/systemz.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
 
+open Sysz_const
+
 type sysz_op_mem = {
 	base: int;
 	index: int;
@@ -20,764 +22,3 @@
 	op_count: int;
 	operands: sysz_op array;
 }
-
-
-
-(*  Enums corresponding to SystemZ condition codes *)
-
-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;;
-
-(*  Operand type for instruction's operands *)
-
-let _SYSZ_OP_INVALID = 0;;
-let _SYSZ_OP_REG = 1;;
-let _SYSZ_OP_ACREG = 2;;
-let _SYSZ_OP_IMM = 3;;
-let _SYSZ_OP_MEM = 4;;
-
-(*  SystemZ registers *)
-
-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_MAX = 35;;
-
-(*  SystemZ instruction *)
-
-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_LDY = 429;;
-let _SYSZ_INS_LE = 430;;
-let _SYSZ_INS_LEDBR = 431;;
-let _SYSZ_INS_LER = 432;;
-let _SYSZ_INS_LEXBR = 433;;
-let _SYSZ_INS_LEY = 434;;
-let _SYSZ_INS_LFH = 435;;
-let _SYSZ_INS_LG = 436;;
-let _SYSZ_INS_LGB = 437;;
-let _SYSZ_INS_LGBR = 438;;
-let _SYSZ_INS_LGDR = 439;;
-let _SYSZ_INS_LGF = 440;;
-let _SYSZ_INS_LGFI = 441;;
-let _SYSZ_INS_LGFR = 442;;
-let _SYSZ_INS_LGFRL = 443;;
-let _SYSZ_INS_LGH = 444;;
-let _SYSZ_INS_LGHI = 445;;
-let _SYSZ_INS_LGHR = 446;;
-let _SYSZ_INS_LGHRL = 447;;
-let _SYSZ_INS_LGR = 448;;
-let _SYSZ_INS_LGRL = 449;;
-let _SYSZ_INS_LH = 450;;
-let _SYSZ_INS_LHH = 451;;
-let _SYSZ_INS_LHI = 452;;
-let _SYSZ_INS_LHR = 453;;
-let _SYSZ_INS_LHRL = 454;;
-let _SYSZ_INS_LHY = 455;;
-let _SYSZ_INS_LLC = 456;;
-let _SYSZ_INS_LLCH = 457;;
-let _SYSZ_INS_LLCR = 458;;
-let _SYSZ_INS_LLGC = 459;;
-let _SYSZ_INS_LLGCR = 460;;
-let _SYSZ_INS_LLGF = 461;;
-let _SYSZ_INS_LLGFR = 462;;
-let _SYSZ_INS_LLGFRL = 463;;
-let _SYSZ_INS_LLGH = 464;;
-let _SYSZ_INS_LLGHR = 465;;
-let _SYSZ_INS_LLGHRL = 466;;
-let _SYSZ_INS_LLH = 467;;
-let _SYSZ_INS_LLHH = 468;;
-let _SYSZ_INS_LLHR = 469;;
-let _SYSZ_INS_LLHRL = 470;;
-let _SYSZ_INS_LLIHF = 471;;
-let _SYSZ_INS_LLIHH = 472;;
-let _SYSZ_INS_LLIHL = 473;;
-let _SYSZ_INS_LLILF = 474;;
-let _SYSZ_INS_LLILH = 475;;
-let _SYSZ_INS_LLILL = 476;;
-let _SYSZ_INS_LMG = 477;;
-let _SYSZ_INS_LNDBR = 478;;
-let _SYSZ_INS_LNEBR = 479;;
-let _SYSZ_INS_LNGFR = 480;;
-let _SYSZ_INS_LNGR = 481;;
-let _SYSZ_INS_LNR = 482;;
-let _SYSZ_INS_LNXBR = 483;;
-let _SYSZ_INS_LPDBR = 484;;
-let _SYSZ_INS_LPEBR = 485;;
-let _SYSZ_INS_LPGFR = 486;;
-let _SYSZ_INS_LPGR = 487;;
-let _SYSZ_INS_LPR = 488;;
-let _SYSZ_INS_LPXBR = 489;;
-let _SYSZ_INS_LR = 490;;
-let _SYSZ_INS_LRL = 491;;
-let _SYSZ_INS_LRV = 492;;
-let _SYSZ_INS_LRVG = 493;;
-let _SYSZ_INS_LRVGR = 494;;
-let _SYSZ_INS_LRVR = 495;;
-let _SYSZ_INS_LT = 496;;
-let _SYSZ_INS_LTDBR = 497;;
-let _SYSZ_INS_LTEBR = 498;;
-let _SYSZ_INS_LTG = 499;;
-let _SYSZ_INS_LTGF = 500;;
-let _SYSZ_INS_LTGFR = 501;;
-let _SYSZ_INS_LTGR = 502;;
-let _SYSZ_INS_LTR = 503;;
-let _SYSZ_INS_LTXBR = 504;;
-let _SYSZ_INS_LXDB = 505;;
-let _SYSZ_INS_LXDBR = 506;;
-let _SYSZ_INS_LXEB = 507;;
-let _SYSZ_INS_LXEBR = 508;;
-let _SYSZ_INS_LXR = 509;;
-let _SYSZ_INS_LY = 510;;
-let _SYSZ_INS_LZDR = 511;;
-let _SYSZ_INS_LZER = 512;;
-let _SYSZ_INS_LZXR = 513;;
-let _SYSZ_INS_MADB = 514;;
-let _SYSZ_INS_MADBR = 515;;
-let _SYSZ_INS_MAEB = 516;;
-let _SYSZ_INS_MAEBR = 517;;
-let _SYSZ_INS_MDB = 518;;
-let _SYSZ_INS_MDBR = 519;;
-let _SYSZ_INS_MDEB = 520;;
-let _SYSZ_INS_MDEBR = 521;;
-let _SYSZ_INS_MEEB = 522;;
-let _SYSZ_INS_MEEBR = 523;;
-let _SYSZ_INS_MGHI = 524;;
-let _SYSZ_INS_MH = 525;;
-let _SYSZ_INS_MHI = 526;;
-let _SYSZ_INS_MHY = 527;;
-let _SYSZ_INS_MLG = 528;;
-let _SYSZ_INS_MLGR = 529;;
-let _SYSZ_INS_MS = 530;;
-let _SYSZ_INS_MSDB = 531;;
-let _SYSZ_INS_MSDBR = 532;;
-let _SYSZ_INS_MSEB = 533;;
-let _SYSZ_INS_MSEBR = 534;;
-let _SYSZ_INS_MSFI = 535;;
-let _SYSZ_INS_MSG = 536;;
-let _SYSZ_INS_MSGF = 537;;
-let _SYSZ_INS_MSGFI = 538;;
-let _SYSZ_INS_MSGFR = 539;;
-let _SYSZ_INS_MSGR = 540;;
-let _SYSZ_INS_MSR = 541;;
-let _SYSZ_INS_MSY = 542;;
-let _SYSZ_INS_MVC = 543;;
-let _SYSZ_INS_MVGHI = 544;;
-let _SYSZ_INS_MVHHI = 545;;
-let _SYSZ_INS_MVHI = 546;;
-let _SYSZ_INS_MVI = 547;;
-let _SYSZ_INS_MVIY = 548;;
-let _SYSZ_INS_MVST = 549;;
-let _SYSZ_INS_MXBR = 550;;
-let _SYSZ_INS_MXDB = 551;;
-let _SYSZ_INS_MXDBR = 552;;
-let _SYSZ_INS_N = 553;;
-let _SYSZ_INS_NC = 554;;
-let _SYSZ_INS_NG = 555;;
-let _SYSZ_INS_NGR = 556;;
-let _SYSZ_INS_NGRK = 557;;
-let _SYSZ_INS_NI = 558;;
-let _SYSZ_INS_NIHF = 559;;
-let _SYSZ_INS_NIHH = 560;;
-let _SYSZ_INS_NIHL = 561;;
-let _SYSZ_INS_NILF = 562;;
-let _SYSZ_INS_NILH = 563;;
-let _SYSZ_INS_NILL = 564;;
-let _SYSZ_INS_NIY = 565;;
-let _SYSZ_INS_NR = 566;;
-let _SYSZ_INS_NRK = 567;;
-let _SYSZ_INS_NY = 568;;
-let _SYSZ_INS_O = 569;;
-let _SYSZ_INS_OC = 570;;
-let _SYSZ_INS_OG = 571;;
-let _SYSZ_INS_OGR = 572;;
-let _SYSZ_INS_OGRK = 573;;
-let _SYSZ_INS_OI = 574;;
-let _SYSZ_INS_OIHF = 575;;
-let _SYSZ_INS_OIHH = 576;;
-let _SYSZ_INS_OIHL = 577;;
-let _SYSZ_INS_OILF = 578;;
-let _SYSZ_INS_OILH = 579;;
-let _SYSZ_INS_OILL = 580;;
-let _SYSZ_INS_OIY = 581;;
-let _SYSZ_INS_OR = 582;;
-let _SYSZ_INS_ORK = 583;;
-let _SYSZ_INS_OY = 584;;
-let _SYSZ_INS_PFD = 585;;
-let _SYSZ_INS_PFDRL = 586;;
-let _SYSZ_INS_RISBG = 587;;
-let _SYSZ_INS_RISBHG = 588;;
-let _SYSZ_INS_RISBLG = 589;;
-let _SYSZ_INS_RLL = 590;;
-let _SYSZ_INS_RLLG = 591;;
-let _SYSZ_INS_RNSBG = 592;;
-let _SYSZ_INS_ROSBG = 593;;
-let _SYSZ_INS_RXSBG = 594;;
-let _SYSZ_INS_S = 595;;
-let _SYSZ_INS_SDB = 596;;
-let _SYSZ_INS_SDBR = 597;;
-let _SYSZ_INS_SEB = 598;;
-let _SYSZ_INS_SEBR = 599;;
-let _SYSZ_INS_SG = 600;;
-let _SYSZ_INS_SGF = 601;;
-let _SYSZ_INS_SGFR = 602;;
-let _SYSZ_INS_SGR = 603;;
-let _SYSZ_INS_SGRK = 604;;
-let _SYSZ_INS_SH = 605;;
-let _SYSZ_INS_SHY = 606;;
-let _SYSZ_INS_SL = 607;;
-let _SYSZ_INS_SLB = 608;;
-let _SYSZ_INS_SLBG = 609;;
-let _SYSZ_INS_SLBR = 610;;
-let _SYSZ_INS_SLFI = 611;;
-let _SYSZ_INS_SLG = 612;;
-let _SYSZ_INS_SLBGR = 613;;
-let _SYSZ_INS_SLGF = 614;;
-let _SYSZ_INS_SLGFI = 615;;
-let _SYSZ_INS_SLGFR = 616;;
-let _SYSZ_INS_SLGR = 617;;
-let _SYSZ_INS_SLGRK = 618;;
-let _SYSZ_INS_SLL = 619;;
-let _SYSZ_INS_SLLG = 620;;
-let _SYSZ_INS_SLLK = 621;;
-let _SYSZ_INS_SLR = 622;;
-let _SYSZ_INS_SLRK = 623;;
-let _SYSZ_INS_SLY = 624;;
-let _SYSZ_INS_SQDB = 625;;
-let _SYSZ_INS_SQDBR = 626;;
-let _SYSZ_INS_SQEB = 627;;
-let _SYSZ_INS_SQEBR = 628;;
-let _SYSZ_INS_SQXBR = 629;;
-let _SYSZ_INS_SR = 630;;
-let _SYSZ_INS_SRA = 631;;
-let _SYSZ_INS_SRAG = 632;;
-let _SYSZ_INS_SRAK = 633;;
-let _SYSZ_INS_SRK = 634;;
-let _SYSZ_INS_SRL = 635;;
-let _SYSZ_INS_SRLG = 636;;
-let _SYSZ_INS_SRLK = 637;;
-let _SYSZ_INS_SRST = 638;;
-let _SYSZ_INS_ST = 639;;
-let _SYSZ_INS_STC = 640;;
-let _SYSZ_INS_STCH = 641;;
-let _SYSZ_INS_STCY = 642;;
-let _SYSZ_INS_STD = 643;;
-let _SYSZ_INS_STDY = 644;;
-let _SYSZ_INS_STE = 645;;
-let _SYSZ_INS_STEY = 646;;
-let _SYSZ_INS_STFH = 647;;
-let _SYSZ_INS_STG = 648;;
-let _SYSZ_INS_STGRL = 649;;
-let _SYSZ_INS_STH = 650;;
-let _SYSZ_INS_STHH = 651;;
-let _SYSZ_INS_STHRL = 652;;
-let _SYSZ_INS_STHY = 653;;
-let _SYSZ_INS_STMG = 654;;
-let _SYSZ_INS_STRL = 655;;
-let _SYSZ_INS_STRV = 656;;
-let _SYSZ_INS_STRVG = 657;;
-let _SYSZ_INS_STY = 658;;
-let _SYSZ_INS_SXBR = 659;;
-let _SYSZ_INS_SY = 660;;
-let _SYSZ_INS_TM = 661;;
-let _SYSZ_INS_TMHH = 662;;
-let _SYSZ_INS_TMHL = 663;;
-let _SYSZ_INS_TMLH = 664;;
-let _SYSZ_INS_TMLL = 665;;
-let _SYSZ_INS_TMY = 666;;
-let _SYSZ_INS_X = 667;;
-let _SYSZ_INS_XC = 668;;
-let _SYSZ_INS_XG = 669;;
-let _SYSZ_INS_XGR = 670;;
-let _SYSZ_INS_XGRK = 671;;
-let _SYSZ_INS_XI = 672;;
-let _SYSZ_INS_XIHF = 673;;
-let _SYSZ_INS_XILF = 674;;
-let _SYSZ_INS_XIY = 675;;
-let _SYSZ_INS_XR = 676;;
-let _SYSZ_INS_XRK = 677;;
-let _SYSZ_INS_XY = 678;;
-let _SYSZ_INS_MAX = 679;;
-
-(*  Group of SystemZ instructions *)
-
-let _SYSZ_GRP_INVALID = 0;;
-let _SYSZ_GRP_FEATUREDISTINCTOPS = 1;;
-let _SYSZ_GRP_FEATUREFPEXTENSION = 2;;
-let _SYSZ_GRP_FEATUREHIGHWORD = 3;;
-let _SYSZ_GRP_FEATUREINTERLOCKEDACCESS1 = 4;;
-let _SYSZ_GRP_FEATURELOADSTOREONCOND = 5;;
-let _SYSZ_GRP_JUMP = 6;;
-let _SYSZ_GRP_MAX = 7;;
diff --git a/bindings/ocaml/sysz_const.ml b/bindings/ocaml/sysz_const.ml
new file mode 100644
index 0000000..e6d9033
--- /dev/null
+++ b/bindings/ocaml/sysz_const.ml
@@ -0,0 +1,760 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [sysz_const.ml] *)
+
+(* Enums corresponding to SystemZ condition codes *)
+
+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;;
+
+(* Operand type for instruction's operands *)
+
+let _SYSZ_OP_INVALID = 0;;
+let _SYSZ_OP_REG = 1;;
+let _SYSZ_OP_ACREG = 2;;
+let _SYSZ_OP_IMM = 3;;
+let _SYSZ_OP_MEM = 4;;
+
+(* SystemZ registers *)
+
+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_MAX = 35;;
+
+(* SystemZ instruction *)
+
+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_LDY = 429;;
+let _SYSZ_INS_LE = 430;;
+let _SYSZ_INS_LEDBR = 431;;
+let _SYSZ_INS_LER = 432;;
+let _SYSZ_INS_LEXBR = 433;;
+let _SYSZ_INS_LEY = 434;;
+let _SYSZ_INS_LFH = 435;;
+let _SYSZ_INS_LG = 436;;
+let _SYSZ_INS_LGB = 437;;
+let _SYSZ_INS_LGBR = 438;;
+let _SYSZ_INS_LGDR = 439;;
+let _SYSZ_INS_LGF = 440;;
+let _SYSZ_INS_LGFI = 441;;
+let _SYSZ_INS_LGFR = 442;;
+let _SYSZ_INS_LGFRL = 443;;
+let _SYSZ_INS_LGH = 444;;
+let _SYSZ_INS_LGHI = 445;;
+let _SYSZ_INS_LGHR = 446;;
+let _SYSZ_INS_LGHRL = 447;;
+let _SYSZ_INS_LGR = 448;;
+let _SYSZ_INS_LGRL = 449;;
+let _SYSZ_INS_LH = 450;;
+let _SYSZ_INS_LHH = 451;;
+let _SYSZ_INS_LHI = 452;;
+let _SYSZ_INS_LHR = 453;;
+let _SYSZ_INS_LHRL = 454;;
+let _SYSZ_INS_LHY = 455;;
+let _SYSZ_INS_LLC = 456;;
+let _SYSZ_INS_LLCH = 457;;
+let _SYSZ_INS_LLCR = 458;;
+let _SYSZ_INS_LLGC = 459;;
+let _SYSZ_INS_LLGCR = 460;;
+let _SYSZ_INS_LLGF = 461;;
+let _SYSZ_INS_LLGFR = 462;;
+let _SYSZ_INS_LLGFRL = 463;;
+let _SYSZ_INS_LLGH = 464;;
+let _SYSZ_INS_LLGHR = 465;;
+let _SYSZ_INS_LLGHRL = 466;;
+let _SYSZ_INS_LLH = 467;;
+let _SYSZ_INS_LLHH = 468;;
+let _SYSZ_INS_LLHR = 469;;
+let _SYSZ_INS_LLHRL = 470;;
+let _SYSZ_INS_LLIHF = 471;;
+let _SYSZ_INS_LLIHH = 472;;
+let _SYSZ_INS_LLIHL = 473;;
+let _SYSZ_INS_LLILF = 474;;
+let _SYSZ_INS_LLILH = 475;;
+let _SYSZ_INS_LLILL = 476;;
+let _SYSZ_INS_LMG = 477;;
+let _SYSZ_INS_LNDBR = 478;;
+let _SYSZ_INS_LNEBR = 479;;
+let _SYSZ_INS_LNGFR = 480;;
+let _SYSZ_INS_LNGR = 481;;
+let _SYSZ_INS_LNR = 482;;
+let _SYSZ_INS_LNXBR = 483;;
+let _SYSZ_INS_LPDBR = 484;;
+let _SYSZ_INS_LPEBR = 485;;
+let _SYSZ_INS_LPGFR = 486;;
+let _SYSZ_INS_LPGR = 487;;
+let _SYSZ_INS_LPR = 488;;
+let _SYSZ_INS_LPXBR = 489;;
+let _SYSZ_INS_LR = 490;;
+let _SYSZ_INS_LRL = 491;;
+let _SYSZ_INS_LRV = 492;;
+let _SYSZ_INS_LRVG = 493;;
+let _SYSZ_INS_LRVGR = 494;;
+let _SYSZ_INS_LRVR = 495;;
+let _SYSZ_INS_LT = 496;;
+let _SYSZ_INS_LTDBR = 497;;
+let _SYSZ_INS_LTEBR = 498;;
+let _SYSZ_INS_LTG = 499;;
+let _SYSZ_INS_LTGF = 500;;
+let _SYSZ_INS_LTGFR = 501;;
+let _SYSZ_INS_LTGR = 502;;
+let _SYSZ_INS_LTR = 503;;
+let _SYSZ_INS_LTXBR = 504;;
+let _SYSZ_INS_LXDB = 505;;
+let _SYSZ_INS_LXDBR = 506;;
+let _SYSZ_INS_LXEB = 507;;
+let _SYSZ_INS_LXEBR = 508;;
+let _SYSZ_INS_LXR = 509;;
+let _SYSZ_INS_LY = 510;;
+let _SYSZ_INS_LZDR = 511;;
+let _SYSZ_INS_LZER = 512;;
+let _SYSZ_INS_LZXR = 513;;
+let _SYSZ_INS_MADB = 514;;
+let _SYSZ_INS_MADBR = 515;;
+let _SYSZ_INS_MAEB = 516;;
+let _SYSZ_INS_MAEBR = 517;;
+let _SYSZ_INS_MDB = 518;;
+let _SYSZ_INS_MDBR = 519;;
+let _SYSZ_INS_MDEB = 520;;
+let _SYSZ_INS_MDEBR = 521;;
+let _SYSZ_INS_MEEB = 522;;
+let _SYSZ_INS_MEEBR = 523;;
+let _SYSZ_INS_MGHI = 524;;
+let _SYSZ_INS_MH = 525;;
+let _SYSZ_INS_MHI = 526;;
+let _SYSZ_INS_MHY = 527;;
+let _SYSZ_INS_MLG = 528;;
+let _SYSZ_INS_MLGR = 529;;
+let _SYSZ_INS_MS = 530;;
+let _SYSZ_INS_MSDB = 531;;
+let _SYSZ_INS_MSDBR = 532;;
+let _SYSZ_INS_MSEB = 533;;
+let _SYSZ_INS_MSEBR = 534;;
+let _SYSZ_INS_MSFI = 535;;
+let _SYSZ_INS_MSG = 536;;
+let _SYSZ_INS_MSGF = 537;;
+let _SYSZ_INS_MSGFI = 538;;
+let _SYSZ_INS_MSGFR = 539;;
+let _SYSZ_INS_MSGR = 540;;
+let _SYSZ_INS_MSR = 541;;
+let _SYSZ_INS_MSY = 542;;
+let _SYSZ_INS_MVC = 543;;
+let _SYSZ_INS_MVGHI = 544;;
+let _SYSZ_INS_MVHHI = 545;;
+let _SYSZ_INS_MVHI = 546;;
+let _SYSZ_INS_MVI = 547;;
+let _SYSZ_INS_MVIY = 548;;
+let _SYSZ_INS_MVST = 549;;
+let _SYSZ_INS_MXBR = 550;;
+let _SYSZ_INS_MXDB = 551;;
+let _SYSZ_INS_MXDBR = 552;;
+let _SYSZ_INS_N = 553;;
+let _SYSZ_INS_NC = 554;;
+let _SYSZ_INS_NG = 555;;
+let _SYSZ_INS_NGR = 556;;
+let _SYSZ_INS_NGRK = 557;;
+let _SYSZ_INS_NI = 558;;
+let _SYSZ_INS_NIHF = 559;;
+let _SYSZ_INS_NIHH = 560;;
+let _SYSZ_INS_NIHL = 561;;
+let _SYSZ_INS_NILF = 562;;
+let _SYSZ_INS_NILH = 563;;
+let _SYSZ_INS_NILL = 564;;
+let _SYSZ_INS_NIY = 565;;
+let _SYSZ_INS_NR = 566;;
+let _SYSZ_INS_NRK = 567;;
+let _SYSZ_INS_NY = 568;;
+let _SYSZ_INS_O = 569;;
+let _SYSZ_INS_OC = 570;;
+let _SYSZ_INS_OG = 571;;
+let _SYSZ_INS_OGR = 572;;
+let _SYSZ_INS_OGRK = 573;;
+let _SYSZ_INS_OI = 574;;
+let _SYSZ_INS_OIHF = 575;;
+let _SYSZ_INS_OIHH = 576;;
+let _SYSZ_INS_OIHL = 577;;
+let _SYSZ_INS_OILF = 578;;
+let _SYSZ_INS_OILH = 579;;
+let _SYSZ_INS_OILL = 580;;
+let _SYSZ_INS_OIY = 581;;
+let _SYSZ_INS_OR = 582;;
+let _SYSZ_INS_ORK = 583;;
+let _SYSZ_INS_OY = 584;;
+let _SYSZ_INS_PFD = 585;;
+let _SYSZ_INS_PFDRL = 586;;
+let _SYSZ_INS_RISBG = 587;;
+let _SYSZ_INS_RISBHG = 588;;
+let _SYSZ_INS_RISBLG = 589;;
+let _SYSZ_INS_RLL = 590;;
+let _SYSZ_INS_RLLG = 591;;
+let _SYSZ_INS_RNSBG = 592;;
+let _SYSZ_INS_ROSBG = 593;;
+let _SYSZ_INS_RXSBG = 594;;
+let _SYSZ_INS_S = 595;;
+let _SYSZ_INS_SDB = 596;;
+let _SYSZ_INS_SDBR = 597;;
+let _SYSZ_INS_SEB = 598;;
+let _SYSZ_INS_SEBR = 599;;
+let _SYSZ_INS_SG = 600;;
+let _SYSZ_INS_SGF = 601;;
+let _SYSZ_INS_SGFR = 602;;
+let _SYSZ_INS_SGR = 603;;
+let _SYSZ_INS_SGRK = 604;;
+let _SYSZ_INS_SH = 605;;
+let _SYSZ_INS_SHY = 606;;
+let _SYSZ_INS_SL = 607;;
+let _SYSZ_INS_SLB = 608;;
+let _SYSZ_INS_SLBG = 609;;
+let _SYSZ_INS_SLBR = 610;;
+let _SYSZ_INS_SLFI = 611;;
+let _SYSZ_INS_SLG = 612;;
+let _SYSZ_INS_SLBGR = 613;;
+let _SYSZ_INS_SLGF = 614;;
+let _SYSZ_INS_SLGFI = 615;;
+let _SYSZ_INS_SLGFR = 616;;
+let _SYSZ_INS_SLGR = 617;;
+let _SYSZ_INS_SLGRK = 618;;
+let _SYSZ_INS_SLL = 619;;
+let _SYSZ_INS_SLLG = 620;;
+let _SYSZ_INS_SLLK = 621;;
+let _SYSZ_INS_SLR = 622;;
+let _SYSZ_INS_SLRK = 623;;
+let _SYSZ_INS_SLY = 624;;
+let _SYSZ_INS_SQDB = 625;;
+let _SYSZ_INS_SQDBR = 626;;
+let _SYSZ_INS_SQEB = 627;;
+let _SYSZ_INS_SQEBR = 628;;
+let _SYSZ_INS_SQXBR = 629;;
+let _SYSZ_INS_SR = 630;;
+let _SYSZ_INS_SRA = 631;;
+let _SYSZ_INS_SRAG = 632;;
+let _SYSZ_INS_SRAK = 633;;
+let _SYSZ_INS_SRK = 634;;
+let _SYSZ_INS_SRL = 635;;
+let _SYSZ_INS_SRLG = 636;;
+let _SYSZ_INS_SRLK = 637;;
+let _SYSZ_INS_SRST = 638;;
+let _SYSZ_INS_ST = 639;;
+let _SYSZ_INS_STC = 640;;
+let _SYSZ_INS_STCH = 641;;
+let _SYSZ_INS_STCY = 642;;
+let _SYSZ_INS_STD = 643;;
+let _SYSZ_INS_STDY = 644;;
+let _SYSZ_INS_STE = 645;;
+let _SYSZ_INS_STEY = 646;;
+let _SYSZ_INS_STFH = 647;;
+let _SYSZ_INS_STG = 648;;
+let _SYSZ_INS_STGRL = 649;;
+let _SYSZ_INS_STH = 650;;
+let _SYSZ_INS_STHH = 651;;
+let _SYSZ_INS_STHRL = 652;;
+let _SYSZ_INS_STHY = 653;;
+let _SYSZ_INS_STMG = 654;;
+let _SYSZ_INS_STRL = 655;;
+let _SYSZ_INS_STRV = 656;;
+let _SYSZ_INS_STRVG = 657;;
+let _SYSZ_INS_STY = 658;;
+let _SYSZ_INS_SXBR = 659;;
+let _SYSZ_INS_SY = 660;;
+let _SYSZ_INS_TM = 661;;
+let _SYSZ_INS_TMHH = 662;;
+let _SYSZ_INS_TMHL = 663;;
+let _SYSZ_INS_TMLH = 664;;
+let _SYSZ_INS_TMLL = 665;;
+let _SYSZ_INS_TMY = 666;;
+let _SYSZ_INS_X = 667;;
+let _SYSZ_INS_XC = 668;;
+let _SYSZ_INS_XG = 669;;
+let _SYSZ_INS_XGR = 670;;
+let _SYSZ_INS_XGRK = 671;;
+let _SYSZ_INS_XI = 672;;
+let _SYSZ_INS_XIHF = 673;;
+let _SYSZ_INS_XILF = 674;;
+let _SYSZ_INS_XIY = 675;;
+let _SYSZ_INS_XR = 676;;
+let _SYSZ_INS_XRK = 677;;
+let _SYSZ_INS_XY = 678;;
+let _SYSZ_INS_MAX = 679;;
+
+(* Group of SystemZ instructions *)
+
+let _SYSZ_GRP_INVALID = 0;;
+let _SYSZ_GRP_FEATUREDISTINCTOPS = 1;;
+let _SYSZ_GRP_FEATUREFPEXTENSION = 2;;
+let _SYSZ_GRP_FEATUREHIGHWORD = 3;;
+let _SYSZ_GRP_FEATUREINTERLOCKEDACCESS1 = 4;;
+let _SYSZ_GRP_FEATURELOADSTOREONCOND = 5;;
+let _SYSZ_GRP_JUMP = 6;;
+let _SYSZ_GRP_MAX = 7;;
diff --git a/bindings/ocaml/test_arm.ml b/bindings/ocaml/test_arm.ml
index 7867022..19e529d 100644
--- a/bindings/ocaml/test_arm.ml
+++ b/bindings/ocaml/test_arm.ml
@@ -4,6 +4,7 @@
 open Printf
 open Capstone
 open Arm
+open Arm_const
 
 
 let print_string_hex comment str =
diff --git a/bindings/ocaml/test_arm64.ml b/bindings/ocaml/test_arm64.ml
index 4836f05..d91fa0f 100644
--- a/bindings/ocaml/test_arm64.ml
+++ b/bindings/ocaml/test_arm64.ml
@@ -4,6 +4,7 @@
 open Printf
 open Capstone
 open Arm64
+open Arm64_const
 
 
 let print_string_hex comment str =
diff --git a/bindings/ocaml/test_x86.ml b/bindings/ocaml/test_x86.ml
index 469c7ce..4c16b9d 100644
--- a/bindings/ocaml/test_x86.ml
+++ b/bindings/ocaml/test_x86.ml
@@ -4,6 +4,7 @@
 open Printf
 open Capstone
 open X86
+open X86_const
 
 
 let print_string_hex comment str =
diff --git a/bindings/ocaml/x86.ml b/bindings/ocaml/x86.ml
index fb66a83..1dbc21c 100644
--- a/bindings/ocaml/x86.ml
+++ b/bindings/ocaml/x86.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> *)
 
+open X86_const
+
 (* architecture specific info of instruction *)
 type x86_op_mem = {
 	base: int;
@@ -33,1555 +35,3 @@
 	op_count: int;
 	operands: x86_op array;
 }
-
-(*  X86 registers *)
-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_FP0 = 74;;
-let _X86_REG_FP1 = 75;;
-let _X86_REG_FP2 = 76;;
-let _X86_REG_FP3 = 77;;
-let _X86_REG_FP4 = 78;;
-let _X86_REG_FP5 = 79;;
-let _X86_REG_FP6 = 80;;
-let _X86_REG_K0 = 81;;
-let _X86_REG_K1 = 82;;
-let _X86_REG_K2 = 83;;
-let _X86_REG_K3 = 84;;
-let _X86_REG_K4 = 85;;
-let _X86_REG_K5 = 86;;
-let _X86_REG_K6 = 87;;
-let _X86_REG_K7 = 88;;
-let _X86_REG_MM0 = 89;;
-let _X86_REG_MM1 = 90;;
-let _X86_REG_MM2 = 91;;
-let _X86_REG_MM3 = 92;;
-let _X86_REG_MM4 = 93;;
-let _X86_REG_MM5 = 94;;
-let _X86_REG_MM6 = 95;;
-let _X86_REG_MM7 = 96;;
-let _X86_REG_R8 = 97;;
-let _X86_REG_R9 = 98;;
-let _X86_REG_R10 = 99;;
-let _X86_REG_R11 = 100;;
-let _X86_REG_R12 = 101;;
-let _X86_REG_R13 = 102;;
-let _X86_REG_R14 = 103;;
-let _X86_REG_R15 = 104;;
-let _X86_REG_ST0 = 105;;
-let _X86_REG_ST1 = 106;;
-let _X86_REG_ST2 = 107;;
-let _X86_REG_ST3 = 108;;
-let _X86_REG_ST4 = 109;;
-let _X86_REG_ST5 = 110;;
-let _X86_REG_ST6 = 111;;
-let _X86_REG_ST7 = 112;;
-let _X86_REG_XMM0 = 113;;
-let _X86_REG_XMM1 = 114;;
-let _X86_REG_XMM2 = 115;;
-let _X86_REG_XMM3 = 116;;
-let _X86_REG_XMM4 = 117;;
-let _X86_REG_XMM5 = 118;;
-let _X86_REG_XMM6 = 119;;
-let _X86_REG_XMM7 = 120;;
-let _X86_REG_XMM8 = 121;;
-let _X86_REG_XMM9 = 122;;
-let _X86_REG_XMM10 = 123;;
-let _X86_REG_XMM11 = 124;;
-let _X86_REG_XMM12 = 125;;
-let _X86_REG_XMM13 = 126;;
-let _X86_REG_XMM14 = 127;;
-let _X86_REG_XMM15 = 128;;
-let _X86_REG_XMM16 = 129;;
-let _X86_REG_XMM17 = 130;;
-let _X86_REG_XMM18 = 131;;
-let _X86_REG_XMM19 = 132;;
-let _X86_REG_XMM20 = 133;;
-let _X86_REG_XMM21 = 134;;
-let _X86_REG_XMM22 = 135;;
-let _X86_REG_XMM23 = 136;;
-let _X86_REG_XMM24 = 137;;
-let _X86_REG_XMM25 = 138;;
-let _X86_REG_XMM26 = 139;;
-let _X86_REG_XMM27 = 140;;
-let _X86_REG_XMM28 = 141;;
-let _X86_REG_XMM29 = 142;;
-let _X86_REG_XMM30 = 143;;
-let _X86_REG_XMM31 = 144;;
-let _X86_REG_YMM0 = 145;;
-let _X86_REG_YMM1 = 146;;
-let _X86_REG_YMM2 = 147;;
-let _X86_REG_YMM3 = 148;;
-let _X86_REG_YMM4 = 149;;
-let _X86_REG_YMM5 = 150;;
-let _X86_REG_YMM6 = 151;;
-let _X86_REG_YMM7 = 152;;
-let _X86_REG_YMM8 = 153;;
-let _X86_REG_YMM9 = 154;;
-let _X86_REG_YMM10 = 155;;
-let _X86_REG_YMM11 = 156;;
-let _X86_REG_YMM12 = 157;;
-let _X86_REG_YMM13 = 158;;
-let _X86_REG_YMM14 = 159;;
-let _X86_REG_YMM15 = 160;;
-let _X86_REG_YMM16 = 161;;
-let _X86_REG_YMM17 = 162;;
-let _X86_REG_YMM18 = 163;;
-let _X86_REG_YMM19 = 164;;
-let _X86_REG_YMM20 = 165;;
-let _X86_REG_YMM21 = 166;;
-let _X86_REG_YMM22 = 167;;
-let _X86_REG_YMM23 = 168;;
-let _X86_REG_YMM24 = 169;;
-let _X86_REG_YMM25 = 170;;
-let _X86_REG_YMM26 = 171;;
-let _X86_REG_YMM27 = 172;;
-let _X86_REG_YMM28 = 173;;
-let _X86_REG_YMM29 = 174;;
-let _X86_REG_YMM30 = 175;;
-let _X86_REG_YMM31 = 176;;
-let _X86_REG_ZMM0 = 177;;
-let _X86_REG_ZMM1 = 178;;
-let _X86_REG_ZMM2 = 179;;
-let _X86_REG_ZMM3 = 180;;
-let _X86_REG_ZMM4 = 181;;
-let _X86_REG_ZMM5 = 182;;
-let _X86_REG_ZMM6 = 183;;
-let _X86_REG_ZMM7 = 184;;
-let _X86_REG_ZMM8 = 185;;
-let _X86_REG_ZMM9 = 186;;
-let _X86_REG_ZMM10 = 187;;
-let _X86_REG_ZMM11 = 188;;
-let _X86_REG_ZMM12 = 189;;
-let _X86_REG_ZMM13 = 190;;
-let _X86_REG_ZMM14 = 191;;
-let _X86_REG_ZMM15 = 192;;
-let _X86_REG_ZMM16 = 193;;
-let _X86_REG_ZMM17 = 194;;
-let _X86_REG_ZMM18 = 195;;
-let _X86_REG_ZMM19 = 196;;
-let _X86_REG_ZMM20 = 197;;
-let _X86_REG_ZMM21 = 198;;
-let _X86_REG_ZMM22 = 199;;
-let _X86_REG_ZMM23 = 200;;
-let _X86_REG_ZMM24 = 201;;
-let _X86_REG_ZMM25 = 202;;
-let _X86_REG_ZMM26 = 203;;
-let _X86_REG_ZMM27 = 204;;
-let _X86_REG_ZMM28 = 205;;
-let _X86_REG_ZMM29 = 206;;
-let _X86_REG_ZMM30 = 207;;
-let _X86_REG_ZMM31 = 208;;
-let _X86_REG_R8B = 209;;
-let _X86_REG_R9B = 210;;
-let _X86_REG_R10B = 211;;
-let _X86_REG_R11B = 212;;
-let _X86_REG_R12B = 213;;
-let _X86_REG_R13B = 214;;
-let _X86_REG_R14B = 215;;
-let _X86_REG_R15B = 216;;
-let _X86_REG_R8D = 217;;
-let _X86_REG_R9D = 218;;
-let _X86_REG_R10D = 219;;
-let _X86_REG_R11D = 220;;
-let _X86_REG_R12D = 221;;
-let _X86_REG_R13D = 222;;
-let _X86_REG_R14D = 223;;
-let _X86_REG_R15D = 224;;
-let _X86_REG_R8W = 225;;
-let _X86_REG_R9W = 226;;
-let _X86_REG_R10W = 227;;
-let _X86_REG_R11W = 228;;
-let _X86_REG_R12W = 229;;
-let _X86_REG_R13W = 230;;
-let _X86_REG_R14W = 231;;
-let _X86_REG_R15W = 232;;
-let _X86_REG_MAX = 233;;
-
-(*  Operand type for instruction's operands *)
-
-let _X86_OP_INVALID = 0;;
-let _X86_OP_REG = 1;;
-let _X86_OP_IMM = 2;;
-let _X86_OP_FP = 3;;
-let _X86_OP_MEM = 4;;
-
-(*  X86 instructions *)
-
-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_FADDP = 17;;
-let _X86_INS_ADOX = 18;;
-let _X86_INS_AESDECLAST = 19;;
-let _X86_INS_AESDEC = 20;;
-let _X86_INS_AESENCLAST = 21;;
-let _X86_INS_AESENC = 22;;
-let _X86_INS_AESIMC = 23;;
-let _X86_INS_AESKEYGENASSIST = 24;;
-let _X86_INS_AND = 25;;
-let _X86_INS_ANDN = 26;;
-let _X86_INS_ANDNPD = 27;;
-let _X86_INS_ANDNPS = 28;;
-let _X86_INS_ANDPD = 29;;
-let _X86_INS_ANDPS = 30;;
-let _X86_INS_ARPL = 31;;
-let _X86_INS_BEXTR = 32;;
-let _X86_INS_BLCFILL = 33;;
-let _X86_INS_BLCI = 34;;
-let _X86_INS_BLCIC = 35;;
-let _X86_INS_BLCMSK = 36;;
-let _X86_INS_BLCS = 37;;
-let _X86_INS_BLENDPD = 38;;
-let _X86_INS_BLENDPS = 39;;
-let _X86_INS_BLENDVPD = 40;;
-let _X86_INS_BLENDVPS = 41;;
-let _X86_INS_BLSFILL = 42;;
-let _X86_INS_BLSI = 43;;
-let _X86_INS_BLSIC = 44;;
-let _X86_INS_BLSMSK = 45;;
-let _X86_INS_BLSR = 46;;
-let _X86_INS_BOUND = 47;;
-let _X86_INS_BSF = 48;;
-let _X86_INS_BSR = 49;;
-let _X86_INS_BSWAP = 50;;
-let _X86_INS_BT = 51;;
-let _X86_INS_BTC = 52;;
-let _X86_INS_BTR = 53;;
-let _X86_INS_BTS = 54;;
-let _X86_INS_BZHI = 55;;
-let _X86_INS_CALL = 56;;
-let _X86_INS_CBW = 57;;
-let _X86_INS_CDQ = 58;;
-let _X86_INS_CDQE = 59;;
-let _X86_INS_FCHS = 60;;
-let _X86_INS_CLAC = 61;;
-let _X86_INS_CLC = 62;;
-let _X86_INS_CLD = 63;;
-let _X86_INS_CLFLUSH = 64;;
-let _X86_INS_CLGI = 65;;
-let _X86_INS_CLI = 66;;
-let _X86_INS_CLTS = 67;;
-let _X86_INS_CMC = 68;;
-let _X86_INS_CMOVA = 69;;
-let _X86_INS_CMOVAE = 70;;
-let _X86_INS_CMOVB = 71;;
-let _X86_INS_CMOVBE = 72;;
-let _X86_INS_FCMOVBE = 73;;
-let _X86_INS_FCMOVB = 74;;
-let _X86_INS_CMOVE = 75;;
-let _X86_INS_FCMOVE = 76;;
-let _X86_INS_CMOVG = 77;;
-let _X86_INS_CMOVGE = 78;;
-let _X86_INS_CMOVL = 79;;
-let _X86_INS_CMOVLE = 80;;
-let _X86_INS_FCMOVNBE = 81;;
-let _X86_INS_FCMOVNB = 82;;
-let _X86_INS_CMOVNE = 83;;
-let _X86_INS_FCMOVNE = 84;;
-let _X86_INS_CMOVNO = 85;;
-let _X86_INS_CMOVNP = 86;;
-let _X86_INS_FCMOVNU = 87;;
-let _X86_INS_CMOVNS = 88;;
-let _X86_INS_CMOVO = 89;;
-let _X86_INS_CMOVP = 90;;
-let _X86_INS_FCMOVU = 91;;
-let _X86_INS_CMOVS = 92;;
-let _X86_INS_CMP = 93;;
-let _X86_INS_CMPPD = 94;;
-let _X86_INS_CMPPS = 95;;
-let _X86_INS_CMPSW = 96;;
-let _X86_INS_CMPSD = 97;;
-let _X86_INS_CMPSQ = 98;;
-let _X86_INS_CMPSB = 99;;
-let _X86_INS_CMPSS = 100;;
-let _X86_INS_CMPXCHG16B = 101;;
-let _X86_INS_CMPXCHG = 102;;
-let _X86_INS_CMPXCHG8B = 103;;
-let _X86_INS_COMISD = 104;;
-let _X86_INS_COMISS = 105;;
-let _X86_INS_FCOMP = 106;;
-let _X86_INS_FCOMPI = 107;;
-let _X86_INS_FCOMI = 108;;
-let _X86_INS_FCOM = 109;;
-let _X86_INS_FCOS = 110;;
-let _X86_INS_CPUID = 111;;
-let _X86_INS_CQO = 112;;
-let _X86_INS_CRC32 = 113;;
-let _X86_INS_CS = 114;;
-let _X86_INS_CVTDQ2PD = 115;;
-let _X86_INS_CVTDQ2PS = 116;;
-let _X86_INS_CVTPD2DQ = 117;;
-let _X86_INS_CVTPD2PS = 118;;
-let _X86_INS_CVTPS2DQ = 119;;
-let _X86_INS_CVTPS2PD = 120;;
-let _X86_INS_CVTSD2SI = 121;;
-let _X86_INS_CVTSD2SS = 122;;
-let _X86_INS_CVTSI2SD = 123;;
-let _X86_INS_CVTSI2SS = 124;;
-let _X86_INS_CVTSS2SD = 125;;
-let _X86_INS_CVTSS2SI = 126;;
-let _X86_INS_CVTTPD2DQ = 127;;
-let _X86_INS_CVTTPS2DQ = 128;;
-let _X86_INS_CVTTSD2SI = 129;;
-let _X86_INS_CVTTSS2SI = 130;;
-let _X86_INS_CWD = 131;;
-let _X86_INS_CWDE = 132;;
-let _X86_INS_DAA = 133;;
-let _X86_INS_DAS = 134;;
-let _X86_INS_DATA16 = 135;;
-let _X86_INS_DEC = 136;;
-let _X86_INS_DIV = 137;;
-let _X86_INS_DIVPD = 138;;
-let _X86_INS_DIVPS = 139;;
-let _X86_INS_FDIVR = 140;;
-let _X86_INS_FIDIVR = 141;;
-let _X86_INS_FDIVRP = 142;;
-let _X86_INS_DIVSD = 143;;
-let _X86_INS_DIVSS = 144;;
-let _X86_INS_FDIV = 145;;
-let _X86_INS_FIDIV = 146;;
-let _X86_INS_FDIVP = 147;;
-let _X86_INS_DPPD = 148;;
-let _X86_INS_DPPS = 149;;
-let _X86_INS_DS = 150;;
-let _X86_INS_ENTER = 151;;
-let _X86_INS_ES = 152;;
-let _X86_INS_EXTRACTPS = 153;;
-let _X86_INS_EXTRQ = 154;;
-let _X86_INS_F2XM1 = 155;;
-let _X86_INS_LCALL = 156;;
-let _X86_INS_LJMP = 157;;
-let _X86_INS_FBLD = 158;;
-let _X86_INS_FBSTP = 159;;
-let _X86_INS_FCOMPP = 160;;
-let _X86_INS_FDECSTP = 161;;
-let _X86_INS_FEMMS = 162;;
-let _X86_INS_FFREE = 163;;
-let _X86_INS_FICOM = 164;;
-let _X86_INS_FICOMP = 165;;
-let _X86_INS_FINCSTP = 166;;
-let _X86_INS_FLDCW = 167;;
-let _X86_INS_FLDENV = 168;;
-let _X86_INS_FLDL2E = 169;;
-let _X86_INS_FLDL2T = 170;;
-let _X86_INS_FLDLG2 = 171;;
-let _X86_INS_FLDLN2 = 172;;
-let _X86_INS_FLDPI = 173;;
-let _X86_INS_FNCLEX = 174;;
-let _X86_INS_FNINIT = 175;;
-let _X86_INS_FNOP = 176;;
-let _X86_INS_FNSTCW = 177;;
-let _X86_INS_FNSTSW = 178;;
-let _X86_INS_FPATAN = 179;;
-let _X86_INS_FPREM = 180;;
-let _X86_INS_FPREM1 = 181;;
-let _X86_INS_FPTAN = 182;;
-let _X86_INS_FRNDINT = 183;;
-let _X86_INS_FRSTOR = 184;;
-let _X86_INS_FNSAVE = 185;;
-let _X86_INS_FSCALE = 186;;
-let _X86_INS_FSETPM = 187;;
-let _X86_INS_FSINCOS = 188;;
-let _X86_INS_FNSTENV = 189;;
-let _X86_INS_FS = 190;;
-let _X86_INS_FXAM = 191;;
-let _X86_INS_FXRSTOR = 192;;
-let _X86_INS_FXRSTOR64 = 193;;
-let _X86_INS_FXSAVE = 194;;
-let _X86_INS_FXSAVE64 = 195;;
-let _X86_INS_FXTRACT = 196;;
-let _X86_INS_FYL2X = 197;;
-let _X86_INS_FYL2XP1 = 198;;
-let _X86_INS_MOVAPD = 199;;
-let _X86_INS_MOVAPS = 200;;
-let _X86_INS_ORPD = 201;;
-let _X86_INS_ORPS = 202;;
-let _X86_INS_VMOVAPD = 203;;
-let _X86_INS_VMOVAPS = 204;;
-let _X86_INS_XORPD = 205;;
-let _X86_INS_XORPS = 206;;
-let _X86_INS_GETSEC = 207;;
-let _X86_INS_GS = 208;;
-let _X86_INS_HADDPD = 209;;
-let _X86_INS_HADDPS = 210;;
-let _X86_INS_HLT = 211;;
-let _X86_INS_HSUBPD = 212;;
-let _X86_INS_HSUBPS = 213;;
-let _X86_INS_IDIV = 214;;
-let _X86_INS_FILD = 215;;
-let _X86_INS_IMUL = 216;;
-let _X86_INS_INSW = 217;;
-let _X86_INS_IN = 218;;
-let _X86_INS_INSD = 219;;
-let _X86_INS_INSB = 220;;
-let _X86_INS_INC = 221;;
-let _X86_INS_INSERTPS = 222;;
-let _X86_INS_INSERTQ = 223;;
-let _X86_INS_INT = 224;;
-let _X86_INS_INT1 = 225;;
-let _X86_INS_INT3 = 226;;
-let _X86_INS_INTO = 227;;
-let _X86_INS_INVD = 228;;
-let _X86_INS_INVEPT = 229;;
-let _X86_INS_INVLPG = 230;;
-let _X86_INS_INVLPGA = 231;;
-let _X86_INS_INVPCID = 232;;
-let _X86_INS_INVVPID = 233;;
-let _X86_INS_IRET = 234;;
-let _X86_INS_IRETD = 235;;
-let _X86_INS_IRETQ = 236;;
-let _X86_INS_FISTTP = 237;;
-let _X86_INS_FIST = 238;;
-let _X86_INS_FISTP = 239;;
-let _X86_INS_UCOMISD = 240;;
-let _X86_INS_UCOMISS = 241;;
-let _X86_INS_VCMP = 242;;
-let _X86_INS_VCOMISD = 243;;
-let _X86_INS_VCOMISS = 244;;
-let _X86_INS_VCVTSD2SS = 245;;
-let _X86_INS_VCVTSI2SD = 246;;
-let _X86_INS_VCVTSI2SS = 247;;
-let _X86_INS_VCVTSS2SD = 248;;
-let _X86_INS_VCVTTSD2SI = 249;;
-let _X86_INS_VCVTTSD2USI = 250;;
-let _X86_INS_VCVTTSS2SI = 251;;
-let _X86_INS_VCVTTSS2USI = 252;;
-let _X86_INS_VCVTUSI2SD = 253;;
-let _X86_INS_VCVTUSI2SS = 254;;
-let _X86_INS_VUCOMISD = 255;;
-let _X86_INS_VUCOMISS = 256;;
-let _X86_INS_JAE = 257;;
-let _X86_INS_JA = 258;;
-let _X86_INS_JBE = 259;;
-let _X86_INS_JB = 260;;
-let _X86_INS_JCXZ = 261;;
-let _X86_INS_JECXZ = 262;;
-let _X86_INS_JE = 263;;
-let _X86_INS_JGE = 264;;
-let _X86_INS_JG = 265;;
-let _X86_INS_JLE = 266;;
-let _X86_INS_JL = 267;;
-let _X86_INS_JMP = 268;;
-let _X86_INS_JNE = 269;;
-let _X86_INS_JNO = 270;;
-let _X86_INS_JNP = 271;;
-let _X86_INS_JNS = 272;;
-let _X86_INS_JO = 273;;
-let _X86_INS_JP = 274;;
-let _X86_INS_JRCXZ = 275;;
-let _X86_INS_JS = 276;;
-let _X86_INS_KANDNW = 277;;
-let _X86_INS_KANDW = 278;;
-let _X86_INS_KMOVW = 279;;
-let _X86_INS_KNOTW = 280;;
-let _X86_INS_KORTESTW = 281;;
-let _X86_INS_KORW = 282;;
-let _X86_INS_KSHIFTLW = 283;;
-let _X86_INS_KSHIFTRW = 284;;
-let _X86_INS_KUNPCKBW = 285;;
-let _X86_INS_KXNORW = 286;;
-let _X86_INS_KXORW = 287;;
-let _X86_INS_LAHF = 288;;
-let _X86_INS_LAR = 289;;
-let _X86_INS_LDDQU = 290;;
-let _X86_INS_LDMXCSR = 291;;
-let _X86_INS_LDS = 292;;
-let _X86_INS_FLDZ = 293;;
-let _X86_INS_FLD1 = 294;;
-let _X86_INS_FLD = 295;;
-let _X86_INS_LEA = 296;;
-let _X86_INS_LEAVE = 297;;
-let _X86_INS_LES = 298;;
-let _X86_INS_LFENCE = 299;;
-let _X86_INS_LFS = 300;;
-let _X86_INS_LGDT = 301;;
-let _X86_INS_LGS = 302;;
-let _X86_INS_LIDT = 303;;
-let _X86_INS_LLDT = 304;;
-let _X86_INS_LMSW = 305;;
-let _X86_INS_OR = 306;;
-let _X86_INS_LOCK = 307;;
-let _X86_INS_SUB = 308;;
-let _X86_INS_XOR = 309;;
-let _X86_INS_LODSB = 310;;
-let _X86_INS_LODSD = 311;;
-let _X86_INS_LODSQ = 312;;
-let _X86_INS_LODSW = 313;;
-let _X86_INS_LOOP = 314;;
-let _X86_INS_LOOPE = 315;;
-let _X86_INS_LOOPNE = 316;;
-let _X86_INS_RETF = 317;;
-let _X86_INS_RETFQ = 318;;
-let _X86_INS_LSL = 319;;
-let _X86_INS_LSS = 320;;
-let _X86_INS_LTR = 321;;
-let _X86_INS_XADD = 322;;
-let _X86_INS_LZCNT = 323;;
-let _X86_INS_MASKMOVDQU = 324;;
-let _X86_INS_MAXPD = 325;;
-let _X86_INS_MAXPS = 326;;
-let _X86_INS_MAXSD = 327;;
-let _X86_INS_MAXSS = 328;;
-let _X86_INS_MFENCE = 329;;
-let _X86_INS_MINPD = 330;;
-let _X86_INS_MINPS = 331;;
-let _X86_INS_MINSD = 332;;
-let _X86_INS_MINSS = 333;;
-let _X86_INS_CVTPD2PI = 334;;
-let _X86_INS_CVTPI2PD = 335;;
-let _X86_INS_CVTPI2PS = 336;;
-let _X86_INS_CVTPS2PI = 337;;
-let _X86_INS_CVTTPD2PI = 338;;
-let _X86_INS_CVTTPS2PI = 339;;
-let _X86_INS_EMMS = 340;;
-let _X86_INS_MASKMOVQ = 341;;
-let _X86_INS_MOVD = 342;;
-let _X86_INS_MOVDQ2Q = 343;;
-let _X86_INS_MOVNTQ = 344;;
-let _X86_INS_MOVQ2DQ = 345;;
-let _X86_INS_MOVQ = 346;;
-let _X86_INS_PABSB = 347;;
-let _X86_INS_PABSD = 348;;
-let _X86_INS_PABSW = 349;;
-let _X86_INS_PACKSSDW = 350;;
-let _X86_INS_PACKSSWB = 351;;
-let _X86_INS_PACKUSWB = 352;;
-let _X86_INS_PADDB = 353;;
-let _X86_INS_PADDD = 354;;
-let _X86_INS_PADDQ = 355;;
-let _X86_INS_PADDSB = 356;;
-let _X86_INS_PADDSW = 357;;
-let _X86_INS_PADDUSB = 358;;
-let _X86_INS_PADDUSW = 359;;
-let _X86_INS_PADDW = 360;;
-let _X86_INS_PALIGNR = 361;;
-let _X86_INS_PANDN = 362;;
-let _X86_INS_PAND = 363;;
-let _X86_INS_PAVGB = 364;;
-let _X86_INS_PAVGW = 365;;
-let _X86_INS_PCMPEQB = 366;;
-let _X86_INS_PCMPEQD = 367;;
-let _X86_INS_PCMPEQW = 368;;
-let _X86_INS_PCMPGTB = 369;;
-let _X86_INS_PCMPGTD = 370;;
-let _X86_INS_PCMPGTW = 371;;
-let _X86_INS_PEXTRW = 372;;
-let _X86_INS_PHADDSW = 373;;
-let _X86_INS_PHADDW = 374;;
-let _X86_INS_PHADDD = 375;;
-let _X86_INS_PHSUBD = 376;;
-let _X86_INS_PHSUBSW = 377;;
-let _X86_INS_PHSUBW = 378;;
-let _X86_INS_PINSRW = 379;;
-let _X86_INS_PMADDUBSW = 380;;
-let _X86_INS_PMADDWD = 381;;
-let _X86_INS_PMAXSW = 382;;
-let _X86_INS_PMAXUB = 383;;
-let _X86_INS_PMINSW = 384;;
-let _X86_INS_PMINUB = 385;;
-let _X86_INS_PMOVMSKB = 386;;
-let _X86_INS_PMULHRSW = 387;;
-let _X86_INS_PMULHUW = 388;;
-let _X86_INS_PMULHW = 389;;
-let _X86_INS_PMULLW = 390;;
-let _X86_INS_PMULUDQ = 391;;
-let _X86_INS_POR = 392;;
-let _X86_INS_PSADBW = 393;;
-let _X86_INS_PSHUFB = 394;;
-let _X86_INS_PSHUFW = 395;;
-let _X86_INS_PSIGNB = 396;;
-let _X86_INS_PSIGND = 397;;
-let _X86_INS_PSIGNW = 398;;
-let _X86_INS_PSLLD = 399;;
-let _X86_INS_PSLLQ = 400;;
-let _X86_INS_PSLLW = 401;;
-let _X86_INS_PSRAD = 402;;
-let _X86_INS_PSRAW = 403;;
-let _X86_INS_PSRLD = 404;;
-let _X86_INS_PSRLQ = 405;;
-let _X86_INS_PSRLW = 406;;
-let _X86_INS_PSUBB = 407;;
-let _X86_INS_PSUBD = 408;;
-let _X86_INS_PSUBQ = 409;;
-let _X86_INS_PSUBSB = 410;;
-let _X86_INS_PSUBSW = 411;;
-let _X86_INS_PSUBUSB = 412;;
-let _X86_INS_PSUBUSW = 413;;
-let _X86_INS_PSUBW = 414;;
-let _X86_INS_PUNPCKHBW = 415;;
-let _X86_INS_PUNPCKHDQ = 416;;
-let _X86_INS_PUNPCKHWD = 417;;
-let _X86_INS_PUNPCKLBW = 418;;
-let _X86_INS_PUNPCKLDQ = 419;;
-let _X86_INS_PUNPCKLWD = 420;;
-let _X86_INS_PXOR = 421;;
-let _X86_INS_MONITOR = 422;;
-let _X86_INS_MONTMUL = 423;;
-let _X86_INS_MOV = 424;;
-let _X86_INS_MOVABS = 425;;
-let _X86_INS_MOVBE = 426;;
-let _X86_INS_MOVDDUP = 427;;
-let _X86_INS_MOVDQA = 428;;
-let _X86_INS_MOVDQU = 429;;
-let _X86_INS_MOVHLPS = 430;;
-let _X86_INS_MOVHPD = 431;;
-let _X86_INS_MOVHPS = 432;;
-let _X86_INS_MOVLHPS = 433;;
-let _X86_INS_MOVLPD = 434;;
-let _X86_INS_MOVLPS = 435;;
-let _X86_INS_MOVMSKPD = 436;;
-let _X86_INS_MOVMSKPS = 437;;
-let _X86_INS_MOVNTDQA = 438;;
-let _X86_INS_MOVNTDQ = 439;;
-let _X86_INS_MOVNTI = 440;;
-let _X86_INS_MOVNTPD = 441;;
-let _X86_INS_MOVNTPS = 442;;
-let _X86_INS_MOVNTSD = 443;;
-let _X86_INS_MOVNTSS = 444;;
-let _X86_INS_MOVSB = 445;;
-let _X86_INS_MOVSD = 446;;
-let _X86_INS_MOVSHDUP = 447;;
-let _X86_INS_MOVSLDUP = 448;;
-let _X86_INS_MOVSQ = 449;;
-let _X86_INS_MOVSS = 450;;
-let _X86_INS_MOVSW = 451;;
-let _X86_INS_MOVSX = 452;;
-let _X86_INS_MOVSXD = 453;;
-let _X86_INS_MOVUPD = 454;;
-let _X86_INS_MOVUPS = 455;;
-let _X86_INS_MOVZX = 456;;
-let _X86_INS_MPSADBW = 457;;
-let _X86_INS_MUL = 458;;
-let _X86_INS_MULPD = 459;;
-let _X86_INS_MULPS = 460;;
-let _X86_INS_MULSD = 461;;
-let _X86_INS_MULSS = 462;;
-let _X86_INS_MULX = 463;;
-let _X86_INS_FMUL = 464;;
-let _X86_INS_FIMUL = 465;;
-let _X86_INS_FMULP = 466;;
-let _X86_INS_MWAIT = 467;;
-let _X86_INS_NEG = 468;;
-let _X86_INS_NOP = 469;;
-let _X86_INS_NOT = 470;;
-let _X86_INS_OUT = 471;;
-let _X86_INS_OUTSB = 472;;
-let _X86_INS_OUTSD = 473;;
-let _X86_INS_OUTSW = 474;;
-let _X86_INS_PACKUSDW = 475;;
-let _X86_INS_PAUSE = 476;;
-let _X86_INS_PAVGUSB = 477;;
-let _X86_INS_PBLENDVB = 478;;
-let _X86_INS_PBLENDW = 479;;
-let _X86_INS_PCLMULQDQ = 480;;
-let _X86_INS_PCMPEQQ = 481;;
-let _X86_INS_PCMPESTRI = 482;;
-let _X86_INS_PCMPESTRM = 483;;
-let _X86_INS_PCMPGTQ = 484;;
-let _X86_INS_PCMPISTRI = 485;;
-let _X86_INS_PCMPISTRM = 486;;
-let _X86_INS_PDEP = 487;;
-let _X86_INS_PEXT = 488;;
-let _X86_INS_PEXTRB = 489;;
-let _X86_INS_PEXTRD = 490;;
-let _X86_INS_PEXTRQ = 491;;
-let _X86_INS_PF2ID = 492;;
-let _X86_INS_PF2IW = 493;;
-let _X86_INS_PFACC = 494;;
-let _X86_INS_PFADD = 495;;
-let _X86_INS_PFCMPEQ = 496;;
-let _X86_INS_PFCMPGE = 497;;
-let _X86_INS_PFCMPGT = 498;;
-let _X86_INS_PFMAX = 499;;
-let _X86_INS_PFMIN = 500;;
-let _X86_INS_PFMUL = 501;;
-let _X86_INS_PFNACC = 502;;
-let _X86_INS_PFPNACC = 503;;
-let _X86_INS_PFRCPIT1 = 504;;
-let _X86_INS_PFRCPIT2 = 505;;
-let _X86_INS_PFRCP = 506;;
-let _X86_INS_PFRSQIT1 = 507;;
-let _X86_INS_PFRSQRT = 508;;
-let _X86_INS_PFSUBR = 509;;
-let _X86_INS_PFSUB = 510;;
-let _X86_INS_PHMINPOSUW = 511;;
-let _X86_INS_PI2FD = 512;;
-let _X86_INS_PI2FW = 513;;
-let _X86_INS_PINSRB = 514;;
-let _X86_INS_PINSRD = 515;;
-let _X86_INS_PINSRQ = 516;;
-let _X86_INS_PMAXSB = 517;;
-let _X86_INS_PMAXSD = 518;;
-let _X86_INS_PMAXUD = 519;;
-let _X86_INS_PMAXUW = 520;;
-let _X86_INS_PMINSB = 521;;
-let _X86_INS_PMINSD = 522;;
-let _X86_INS_PMINUD = 523;;
-let _X86_INS_PMINUW = 524;;
-let _X86_INS_PMOVSXBD = 525;;
-let _X86_INS_PMOVSXBQ = 526;;
-let _X86_INS_PMOVSXBW = 527;;
-let _X86_INS_PMOVSXDQ = 528;;
-let _X86_INS_PMOVSXWD = 529;;
-let _X86_INS_PMOVSXWQ = 530;;
-let _X86_INS_PMOVZXBD = 531;;
-let _X86_INS_PMOVZXBQ = 532;;
-let _X86_INS_PMOVZXBW = 533;;
-let _X86_INS_PMOVZXDQ = 534;;
-let _X86_INS_PMOVZXWD = 535;;
-let _X86_INS_PMOVZXWQ = 536;;
-let _X86_INS_PMULDQ = 537;;
-let _X86_INS_PMULHRW = 538;;
-let _X86_INS_PMULLD = 539;;
-let _X86_INS_POP = 540;;
-let _X86_INS_POPAW = 541;;
-let _X86_INS_POPAL = 542;;
-let _X86_INS_POPCNT = 543;;
-let _X86_INS_POPF = 544;;
-let _X86_INS_POPFD = 545;;
-let _X86_INS_POPFQ = 546;;
-let _X86_INS_PREFETCH = 547;;
-let _X86_INS_PREFETCHNTA = 548;;
-let _X86_INS_PREFETCHT0 = 549;;
-let _X86_INS_PREFETCHT1 = 550;;
-let _X86_INS_PREFETCHT2 = 551;;
-let _X86_INS_PREFETCHW = 552;;
-let _X86_INS_PSHUFD = 553;;
-let _X86_INS_PSHUFHW = 554;;
-let _X86_INS_PSHUFLW = 555;;
-let _X86_INS_PSLLDQ = 556;;
-let _X86_INS_PSRLDQ = 557;;
-let _X86_INS_PSWAPD = 558;;
-let _X86_INS_PTEST = 559;;
-let _X86_INS_PUNPCKHQDQ = 560;;
-let _X86_INS_PUNPCKLQDQ = 561;;
-let _X86_INS_PUSH = 562;;
-let _X86_INS_PUSHAW = 563;;
-let _X86_INS_PUSHAL = 564;;
-let _X86_INS_PUSHF = 565;;
-let _X86_INS_PUSHFD = 566;;
-let _X86_INS_PUSHFQ = 567;;
-let _X86_INS_RCL = 568;;
-let _X86_INS_RCPPS = 569;;
-let _X86_INS_RCPSS = 570;;
-let _X86_INS_RCR = 571;;
-let _X86_INS_RDFSBASE = 572;;
-let _X86_INS_RDGSBASE = 573;;
-let _X86_INS_RDMSR = 574;;
-let _X86_INS_RDPMC = 575;;
-let _X86_INS_RDRAND = 576;;
-let _X86_INS_RDSEED = 577;;
-let _X86_INS_RDTSC = 578;;
-let _X86_INS_RDTSCP = 579;;
-let _X86_INS_REPNE = 580;;
-let _X86_INS_REP = 581;;
-let _X86_INS_RET = 582;;
-let _X86_INS_REX64 = 583;;
-let _X86_INS_ROL = 584;;
-let _X86_INS_ROR = 585;;
-let _X86_INS_RORX = 586;;
-let _X86_INS_ROUNDPD = 587;;
-let _X86_INS_ROUNDPS = 588;;
-let _X86_INS_ROUNDSD = 589;;
-let _X86_INS_ROUNDSS = 590;;
-let _X86_INS_RSM = 591;;
-let _X86_INS_RSQRTPS = 592;;
-let _X86_INS_RSQRTSS = 593;;
-let _X86_INS_SAHF = 594;;
-let _X86_INS_SAL = 595;;
-let _X86_INS_SALC = 596;;
-let _X86_INS_SAR = 597;;
-let _X86_INS_SARX = 598;;
-let _X86_INS_SBB = 599;;
-let _X86_INS_SCASW = 600;;
-let _X86_INS_SCASD = 601;;
-let _X86_INS_SCASQ = 602;;
-let _X86_INS_SCASB = 603;;
-let _X86_INS_SETAE = 604;;
-let _X86_INS_SETA = 605;;
-let _X86_INS_SETBE = 606;;
-let _X86_INS_SETB = 607;;
-let _X86_INS_SETE = 608;;
-let _X86_INS_SETGE = 609;;
-let _X86_INS_SETG = 610;;
-let _X86_INS_SETLE = 611;;
-let _X86_INS_SETL = 612;;
-let _X86_INS_SETNE = 613;;
-let _X86_INS_SETNO = 614;;
-let _X86_INS_SETNP = 615;;
-let _X86_INS_SETNS = 616;;
-let _X86_INS_SETO = 617;;
-let _X86_INS_SETP = 618;;
-let _X86_INS_SETS = 619;;
-let _X86_INS_SFENCE = 620;;
-let _X86_INS_SGDT = 621;;
-let _X86_INS_SHA1MSG1 = 622;;
-let _X86_INS_SHA1MSG2 = 623;;
-let _X86_INS_SHA1NEXTE = 624;;
-let _X86_INS_SHA1RNDS4 = 625;;
-let _X86_INS_SHA256MSG1 = 626;;
-let _X86_INS_SHA256MSG2 = 627;;
-let _X86_INS_SHA256RNDS2 = 628;;
-let _X86_INS_SHL = 629;;
-let _X86_INS_SHLD = 630;;
-let _X86_INS_SHLX = 631;;
-let _X86_INS_SHR = 632;;
-let _X86_INS_SHRD = 633;;
-let _X86_INS_SHRX = 634;;
-let _X86_INS_SHUFPD = 635;;
-let _X86_INS_SHUFPS = 636;;
-let _X86_INS_SIDT = 637;;
-let _X86_INS_FSIN = 638;;
-let _X86_INS_SKINIT = 639;;
-let _X86_INS_SLDT = 640;;
-let _X86_INS_SMSW = 641;;
-let _X86_INS_SQRTPD = 642;;
-let _X86_INS_SQRTPS = 643;;
-let _X86_INS_SQRTSD = 644;;
-let _X86_INS_SQRTSS = 645;;
-let _X86_INS_FSQRT = 646;;
-let _X86_INS_SS = 647;;
-let _X86_INS_STAC = 648;;
-let _X86_INS_STC = 649;;
-let _X86_INS_STD = 650;;
-let _X86_INS_STGI = 651;;
-let _X86_INS_STI = 652;;
-let _X86_INS_STMXCSR = 653;;
-let _X86_INS_STOSB = 654;;
-let _X86_INS_STOSD = 655;;
-let _X86_INS_STOSQ = 656;;
-let _X86_INS_STOSW = 657;;
-let _X86_INS_STR = 658;;
-let _X86_INS_FST = 659;;
-let _X86_INS_FSTP = 660;;
-let _X86_INS_FSTPNCE = 661;;
-let _X86_INS_SUBPD = 662;;
-let _X86_INS_SUBPS = 663;;
-let _X86_INS_FSUBR = 664;;
-let _X86_INS_FISUBR = 665;;
-let _X86_INS_FSUBRP = 666;;
-let _X86_INS_SUBSD = 667;;
-let _X86_INS_SUBSS = 668;;
-let _X86_INS_FSUB = 669;;
-let _X86_INS_FISUB = 670;;
-let _X86_INS_FSUBP = 671;;
-let _X86_INS_SWAPGS = 672;;
-let _X86_INS_SYSCALL = 673;;
-let _X86_INS_SYSENTER = 674;;
-let _X86_INS_SYSEXIT = 675;;
-let _X86_INS_SYSRET = 676;;
-let _X86_INS_T1MSKC = 677;;
-let _X86_INS_TEST = 678;;
-let _X86_INS_UD2 = 679;;
-let _X86_INS_FTST = 680;;
-let _X86_INS_TZCNT = 681;;
-let _X86_INS_TZMSK = 682;;
-let _X86_INS_FUCOMPI = 683;;
-let _X86_INS_FUCOMI = 684;;
-let _X86_INS_FUCOMPP = 685;;
-let _X86_INS_FUCOMP = 686;;
-let _X86_INS_FUCOM = 687;;
-let _X86_INS_UD2B = 688;;
-let _X86_INS_UNPCKHPD = 689;;
-let _X86_INS_UNPCKHPS = 690;;
-let _X86_INS_UNPCKLPD = 691;;
-let _X86_INS_UNPCKLPS = 692;;
-let _X86_INS_VADDPD = 693;;
-let _X86_INS_VADDPS = 694;;
-let _X86_INS_VADDSD = 695;;
-let _X86_INS_VADDSS = 696;;
-let _X86_INS_VADDSUBPD = 697;;
-let _X86_INS_VADDSUBPS = 698;;
-let _X86_INS_VAESDECLAST = 699;;
-let _X86_INS_VAESDEC = 700;;
-let _X86_INS_VAESENCLAST = 701;;
-let _X86_INS_VAESENC = 702;;
-let _X86_INS_VAESIMC = 703;;
-let _X86_INS_VAESKEYGENASSIST = 704;;
-let _X86_INS_VALIGND = 705;;
-let _X86_INS_VALIGNQ = 706;;
-let _X86_INS_VANDNPD = 707;;
-let _X86_INS_VANDNPS = 708;;
-let _X86_INS_VANDPD = 709;;
-let _X86_INS_VANDPS = 710;;
-let _X86_INS_VBLENDMPD = 711;;
-let _X86_INS_VBLENDMPS = 712;;
-let _X86_INS_VBLENDPD = 713;;
-let _X86_INS_VBLENDPS = 714;;
-let _X86_INS_VBLENDVPD = 715;;
-let _X86_INS_VBLENDVPS = 716;;
-let _X86_INS_VBROADCASTF128 = 717;;
-let _X86_INS_VBROADCASTI128 = 718;;
-let _X86_INS_VBROADCASTSD = 719;;
-let _X86_INS_VBROADCASTSS = 720;;
-let _X86_INS_VCMPPD = 721;;
-let _X86_INS_VCMPPS = 722;;
-let _X86_INS_VCMPSD = 723;;
-let _X86_INS_VCMPSS = 724;;
-let _X86_INS_VCVTDQ2PD = 725;;
-let _X86_INS_VCVTDQ2PS = 726;;
-let _X86_INS_VCVTPD2DQX = 727;;
-let _X86_INS_VCVTPD2DQ = 728;;
-let _X86_INS_VCVTPD2PSX = 729;;
-let _X86_INS_VCVTPD2PS = 730;;
-let _X86_INS_VCVTPD2UDQ = 731;;
-let _X86_INS_VCVTPH2PS = 732;;
-let _X86_INS_VCVTPS2DQ = 733;;
-let _X86_INS_VCVTPS2PD = 734;;
-let _X86_INS_VCVTPS2PH = 735;;
-let _X86_INS_VCVTPS2UDQ = 736;;
-let _X86_INS_VCVTSD2SI = 737;;
-let _X86_INS_VCVTSD2USI = 738;;
-let _X86_INS_VCVTSS2SI = 739;;
-let _X86_INS_VCVTSS2USI = 740;;
-let _X86_INS_VCVTTPD2DQX = 741;;
-let _X86_INS_VCVTTPD2DQ = 742;;
-let _X86_INS_VCVTTPD2UDQ = 743;;
-let _X86_INS_VCVTTPS2DQ = 744;;
-let _X86_INS_VCVTTPS2UDQ = 745;;
-let _X86_INS_VCVTUDQ2PD = 746;;
-let _X86_INS_VCVTUDQ2PS = 747;;
-let _X86_INS_VDIVPD = 748;;
-let _X86_INS_VDIVPS = 749;;
-let _X86_INS_VDIVSD = 750;;
-let _X86_INS_VDIVSS = 751;;
-let _X86_INS_VDPPD = 752;;
-let _X86_INS_VDPPS = 753;;
-let _X86_INS_VERR = 754;;
-let _X86_INS_VERW = 755;;
-let _X86_INS_VEXTRACTF128 = 756;;
-let _X86_INS_VEXTRACTF32X4 = 757;;
-let _X86_INS_VEXTRACTF64X4 = 758;;
-let _X86_INS_VEXTRACTI128 = 759;;
-let _X86_INS_VEXTRACTI32X4 = 760;;
-let _X86_INS_VEXTRACTI64X4 = 761;;
-let _X86_INS_VEXTRACTPS = 762;;
-let _X86_INS_VFMADD132PD = 763;;
-let _X86_INS_VFMADD132PS = 764;;
-let _X86_INS_VFMADD213PD = 765;;
-let _X86_INS_VFMADD213PS = 766;;
-let _X86_INS_VFMADDPD = 767;;
-let _X86_INS_VFMADD231PD = 768;;
-let _X86_INS_VFMADDPS = 769;;
-let _X86_INS_VFMADD231PS = 770;;
-let _X86_INS_VFMADDSD = 771;;
-let _X86_INS_VFMADD213SD = 772;;
-let _X86_INS_VFMADD132SD = 773;;
-let _X86_INS_VFMADD231SD = 774;;
-let _X86_INS_VFMADDSS = 775;;
-let _X86_INS_VFMADD213SS = 776;;
-let _X86_INS_VFMADD132SS = 777;;
-let _X86_INS_VFMADD231SS = 778;;
-let _X86_INS_VFMADDSUB132PD = 779;;
-let _X86_INS_VFMADDSUB132PS = 780;;
-let _X86_INS_VFMADDSUB213PD = 781;;
-let _X86_INS_VFMADDSUB213PS = 782;;
-let _X86_INS_VFMADDSUBPD = 783;;
-let _X86_INS_VFMADDSUB231PD = 784;;
-let _X86_INS_VFMADDSUBPS = 785;;
-let _X86_INS_VFMADDSUB231PS = 786;;
-let _X86_INS_VFMSUB132PD = 787;;
-let _X86_INS_VFMSUB132PS = 788;;
-let _X86_INS_VFMSUB213PD = 789;;
-let _X86_INS_VFMSUB213PS = 790;;
-let _X86_INS_VFMSUBADD132PD = 791;;
-let _X86_INS_VFMSUBADD132PS = 792;;
-let _X86_INS_VFMSUBADD213PD = 793;;
-let _X86_INS_VFMSUBADD213PS = 794;;
-let _X86_INS_VFMSUBADDPD = 795;;
-let _X86_INS_VFMSUBADD231PD = 796;;
-let _X86_INS_VFMSUBADDPS = 797;;
-let _X86_INS_VFMSUBADD231PS = 798;;
-let _X86_INS_VFMSUBPD = 799;;
-let _X86_INS_VFMSUB231PD = 800;;
-let _X86_INS_VFMSUBPS = 801;;
-let _X86_INS_VFMSUB231PS = 802;;
-let _X86_INS_VFMSUBSD = 803;;
-let _X86_INS_VFMSUB213SD = 804;;
-let _X86_INS_VFMSUB132SD = 805;;
-let _X86_INS_VFMSUB231SD = 806;;
-let _X86_INS_VFMSUBSS = 807;;
-let _X86_INS_VFMSUB213SS = 808;;
-let _X86_INS_VFMSUB132SS = 809;;
-let _X86_INS_VFMSUB231SS = 810;;
-let _X86_INS_VFNMADD132PD = 811;;
-let _X86_INS_VFNMADD132PS = 812;;
-let _X86_INS_VFNMADD213PD = 813;;
-let _X86_INS_VFNMADD213PS = 814;;
-let _X86_INS_VFNMADDPD = 815;;
-let _X86_INS_VFNMADD231PD = 816;;
-let _X86_INS_VFNMADDPS = 817;;
-let _X86_INS_VFNMADD231PS = 818;;
-let _X86_INS_VFNMADDSD = 819;;
-let _X86_INS_VFNMADD213SD = 820;;
-let _X86_INS_VFNMADD132SD = 821;;
-let _X86_INS_VFNMADD231SD = 822;;
-let _X86_INS_VFNMADDSS = 823;;
-let _X86_INS_VFNMADD213SS = 824;;
-let _X86_INS_VFNMADD132SS = 825;;
-let _X86_INS_VFNMADD231SS = 826;;
-let _X86_INS_VFNMSUB132PD = 827;;
-let _X86_INS_VFNMSUB132PS = 828;;
-let _X86_INS_VFNMSUB213PD = 829;;
-let _X86_INS_VFNMSUB213PS = 830;;
-let _X86_INS_VFNMSUBPD = 831;;
-let _X86_INS_VFNMSUB231PD = 832;;
-let _X86_INS_VFNMSUBPS = 833;;
-let _X86_INS_VFNMSUB231PS = 834;;
-let _X86_INS_VFNMSUBSD = 835;;
-let _X86_INS_VFNMSUB213SD = 836;;
-let _X86_INS_VFNMSUB132SD = 837;;
-let _X86_INS_VFNMSUB231SD = 838;;
-let _X86_INS_VFNMSUBSS = 839;;
-let _X86_INS_VFNMSUB213SS = 840;;
-let _X86_INS_VFNMSUB132SS = 841;;
-let _X86_INS_VFNMSUB231SS = 842;;
-let _X86_INS_VFRCZPD = 843;;
-let _X86_INS_VFRCZPS = 844;;
-let _X86_INS_VFRCZSD = 845;;
-let _X86_INS_VFRCZSS = 846;;
-let _X86_INS_VORPD = 847;;
-let _X86_INS_VORPS = 848;;
-let _X86_INS_VXORPD = 849;;
-let _X86_INS_VXORPS = 850;;
-let _X86_INS_VGATHERDPD = 851;;
-let _X86_INS_VGATHERDPS = 852;;
-let _X86_INS_VGATHERQPD = 853;;
-let _X86_INS_VGATHERQPS = 854;;
-let _X86_INS_VHADDPD = 855;;
-let _X86_INS_VHADDPS = 856;;
-let _X86_INS_VHSUBPD = 857;;
-let _X86_INS_VHSUBPS = 858;;
-let _X86_INS_VINSERTF128 = 859;;
-let _X86_INS_VINSERTF32X4 = 860;;
-let _X86_INS_VINSERTF64X4 = 861;;
-let _X86_INS_VINSERTI128 = 862;;
-let _X86_INS_VINSERTI32X4 = 863;;
-let _X86_INS_VINSERTI64X4 = 864;;
-let _X86_INS_VINSERTPS = 865;;
-let _X86_INS_VLDDQU = 866;;
-let _X86_INS_VLDMXCSR = 867;;
-let _X86_INS_VMASKMOVDQU = 868;;
-let _X86_INS_VMASKMOVPD = 869;;
-let _X86_INS_VMASKMOVPS = 870;;
-let _X86_INS_VMAXPD = 871;;
-let _X86_INS_VMAXPS = 872;;
-let _X86_INS_VMAXSD = 873;;
-let _X86_INS_VMAXSS = 874;;
-let _X86_INS_VMCALL = 875;;
-let _X86_INS_VMCLEAR = 876;;
-let _X86_INS_VMFUNC = 877;;
-let _X86_INS_VMINPD = 878;;
-let _X86_INS_VMINPS = 879;;
-let _X86_INS_VMINSD = 880;;
-let _X86_INS_VMINSS = 881;;
-let _X86_INS_VMLAUNCH = 882;;
-let _X86_INS_VMLOAD = 883;;
-let _X86_INS_VMMCALL = 884;;
-let _X86_INS_VMOVQ = 885;;
-let _X86_INS_VMOVDDUP = 886;;
-let _X86_INS_VMOVD = 887;;
-let _X86_INS_VMOVDQA32 = 888;;
-let _X86_INS_VMOVDQA64 = 889;;
-let _X86_INS_VMOVDQA = 890;;
-let _X86_INS_VMOVDQU32 = 891;;
-let _X86_INS_VMOVDQU64 = 892;;
-let _X86_INS_VMOVDQU = 893;;
-let _X86_INS_VMOVHLPS = 894;;
-let _X86_INS_VMOVHPD = 895;;
-let _X86_INS_VMOVHPS = 896;;
-let _X86_INS_VMOVLHPS = 897;;
-let _X86_INS_VMOVLPD = 898;;
-let _X86_INS_VMOVLPS = 899;;
-let _X86_INS_VMOVMSKPD = 900;;
-let _X86_INS_VMOVMSKPS = 901;;
-let _X86_INS_VMOVNTDQA = 902;;
-let _X86_INS_VMOVNTDQ = 903;;
-let _X86_INS_VMOVNTPD = 904;;
-let _X86_INS_VMOVNTPS = 905;;
-let _X86_INS_VMOVSD = 906;;
-let _X86_INS_VMOVSHDUP = 907;;
-let _X86_INS_VMOVSLDUP = 908;;
-let _X86_INS_VMOVSS = 909;;
-let _X86_INS_VMOVUPD = 910;;
-let _X86_INS_VMOVUPS = 911;;
-let _X86_INS_VMPSADBW = 912;;
-let _X86_INS_VMPTRLD = 913;;
-let _X86_INS_VMPTRST = 914;;
-let _X86_INS_VMREAD = 915;;
-let _X86_INS_VMRESUME = 916;;
-let _X86_INS_VMRUN = 917;;
-let _X86_INS_VMSAVE = 918;;
-let _X86_INS_VMULPD = 919;;
-let _X86_INS_VMULPS = 920;;
-let _X86_INS_VMULSD = 921;;
-let _X86_INS_VMULSS = 922;;
-let _X86_INS_VMWRITE = 923;;
-let _X86_INS_VMXOFF = 924;;
-let _X86_INS_VMXON = 925;;
-let _X86_INS_VPABSB = 926;;
-let _X86_INS_VPABSD = 927;;
-let _X86_INS_VPABSQ = 928;;
-let _X86_INS_VPABSW = 929;;
-let _X86_INS_VPACKSSDW = 930;;
-let _X86_INS_VPACKSSWB = 931;;
-let _X86_INS_VPACKUSDW = 932;;
-let _X86_INS_VPACKUSWB = 933;;
-let _X86_INS_VPADDB = 934;;
-let _X86_INS_VPADDD = 935;;
-let _X86_INS_VPADDQ = 936;;
-let _X86_INS_VPADDSB = 937;;
-let _X86_INS_VPADDSW = 938;;
-let _X86_INS_VPADDUSB = 939;;
-let _X86_INS_VPADDUSW = 940;;
-let _X86_INS_VPADDW = 941;;
-let _X86_INS_VPALIGNR = 942;;
-let _X86_INS_VPANDD = 943;;
-let _X86_INS_VPANDND = 944;;
-let _X86_INS_VPANDNQ = 945;;
-let _X86_INS_VPANDN = 946;;
-let _X86_INS_VPANDQ = 947;;
-let _X86_INS_VPAND = 948;;
-let _X86_INS_VPAVGB = 949;;
-let _X86_INS_VPAVGW = 950;;
-let _X86_INS_VPBLENDD = 951;;
-let _X86_INS_VPBLENDMD = 952;;
-let _X86_INS_VPBLENDMQ = 953;;
-let _X86_INS_VPBLENDVB = 954;;
-let _X86_INS_VPBLENDW = 955;;
-let _X86_INS_VPBROADCASTB = 956;;
-let _X86_INS_VPBROADCASTD = 957;;
-let _X86_INS_VPBROADCASTMB2Q = 958;;
-let _X86_INS_VPBROADCASTMW2D = 959;;
-let _X86_INS_VPBROADCASTQ = 960;;
-let _X86_INS_VPBROADCASTW = 961;;
-let _X86_INS_VPCLMULQDQ = 962;;
-let _X86_INS_VPCMOV = 963;;
-let _X86_INS_VPCMP = 964;;
-let _X86_INS_VPCMPD = 965;;
-let _X86_INS_VPCMPEQB = 966;;
-let _X86_INS_VPCMPEQD = 967;;
-let _X86_INS_VPCMPEQQ = 968;;
-let _X86_INS_VPCMPEQW = 969;;
-let _X86_INS_VPCMPESTRI = 970;;
-let _X86_INS_VPCMPESTRM = 971;;
-let _X86_INS_VPCMPGTB = 972;;
-let _X86_INS_VPCMPGTD = 973;;
-let _X86_INS_VPCMPGTQ = 974;;
-let _X86_INS_VPCMPGTW = 975;;
-let _X86_INS_VPCMPISTRI = 976;;
-let _X86_INS_VPCMPISTRM = 977;;
-let _X86_INS_VPCMPQ = 978;;
-let _X86_INS_VPCMPUD = 979;;
-let _X86_INS_VPCMPUQ = 980;;
-let _X86_INS_VPCOMB = 981;;
-let _X86_INS_VPCOMD = 982;;
-let _X86_INS_VPCOMQ = 983;;
-let _X86_INS_VPCOMUB = 984;;
-let _X86_INS_VPCOMUD = 985;;
-let _X86_INS_VPCOMUQ = 986;;
-let _X86_INS_VPCOMUW = 987;;
-let _X86_INS_VPCOMW = 988;;
-let _X86_INS_VPCONFLICTD = 989;;
-let _X86_INS_VPCONFLICTQ = 990;;
-let _X86_INS_VPERM2F128 = 991;;
-let _X86_INS_VPERM2I128 = 992;;
-let _X86_INS_VPERMD = 993;;
-let _X86_INS_VPERMI2D = 994;;
-let _X86_INS_VPERMI2PD = 995;;
-let _X86_INS_VPERMI2PS = 996;;
-let _X86_INS_VPERMI2Q = 997;;
-let _X86_INS_VPERMIL2PD = 998;;
-let _X86_INS_VPERMIL2PS = 999;;
-let _X86_INS_VPERMILPD = 1000;;
-let _X86_INS_VPERMILPS = 1001;;
-let _X86_INS_VPERMPD = 1002;;
-let _X86_INS_VPERMPS = 1003;;
-let _X86_INS_VPERMQ = 1004;;
-let _X86_INS_VPERMT2D = 1005;;
-let _X86_INS_VPERMT2PD = 1006;;
-let _X86_INS_VPERMT2PS = 1007;;
-let _X86_INS_VPERMT2Q = 1008;;
-let _X86_INS_VPEXTRB = 1009;;
-let _X86_INS_VPEXTRD = 1010;;
-let _X86_INS_VPEXTRQ = 1011;;
-let _X86_INS_VPEXTRW = 1012;;
-let _X86_INS_VPGATHERDD = 1013;;
-let _X86_INS_VPGATHERDQ = 1014;;
-let _X86_INS_VPGATHERQD = 1015;;
-let _X86_INS_VPGATHERQQ = 1016;;
-let _X86_INS_VPHADDBD = 1017;;
-let _X86_INS_VPHADDBQ = 1018;;
-let _X86_INS_VPHADDBW = 1019;;
-let _X86_INS_VPHADDDQ = 1020;;
-let _X86_INS_VPHADDD = 1021;;
-let _X86_INS_VPHADDSW = 1022;;
-let _X86_INS_VPHADDUBD = 1023;;
-let _X86_INS_VPHADDUBQ = 1024;;
-let _X86_INS_VPHADDUBW = 1025;;
-let _X86_INS_VPHADDUDQ = 1026;;
-let _X86_INS_VPHADDUWD = 1027;;
-let _X86_INS_VPHADDUWQ = 1028;;
-let _X86_INS_VPHADDWD = 1029;;
-let _X86_INS_VPHADDWQ = 1030;;
-let _X86_INS_VPHADDW = 1031;;
-let _X86_INS_VPHMINPOSUW = 1032;;
-let _X86_INS_VPHSUBBW = 1033;;
-let _X86_INS_VPHSUBDQ = 1034;;
-let _X86_INS_VPHSUBD = 1035;;
-let _X86_INS_VPHSUBSW = 1036;;
-let _X86_INS_VPHSUBWD = 1037;;
-let _X86_INS_VPHSUBW = 1038;;
-let _X86_INS_VPINSRB = 1039;;
-let _X86_INS_VPINSRD = 1040;;
-let _X86_INS_VPINSRQ = 1041;;
-let _X86_INS_VPINSRW = 1042;;
-let _X86_INS_VPMACSDD = 1043;;
-let _X86_INS_VPMACSDQH = 1044;;
-let _X86_INS_VPMACSDQL = 1045;;
-let _X86_INS_VPMACSSDD = 1046;;
-let _X86_INS_VPMACSSDQH = 1047;;
-let _X86_INS_VPMACSSDQL = 1048;;
-let _X86_INS_VPMACSSWD = 1049;;
-let _X86_INS_VPMACSSWW = 1050;;
-let _X86_INS_VPMACSWD = 1051;;
-let _X86_INS_VPMACSWW = 1052;;
-let _X86_INS_VPMADCSSWD = 1053;;
-let _X86_INS_VPMADCSWD = 1054;;
-let _X86_INS_VPMADDUBSW = 1055;;
-let _X86_INS_VPMADDWD = 1056;;
-let _X86_INS_VPMASKMOVD = 1057;;
-let _X86_INS_VPMASKMOVQ = 1058;;
-let _X86_INS_VPMAXSB = 1059;;
-let _X86_INS_VPMAXSD = 1060;;
-let _X86_INS_VPMAXSQ = 1061;;
-let _X86_INS_VPMAXSW = 1062;;
-let _X86_INS_VPMAXUB = 1063;;
-let _X86_INS_VPMAXUD = 1064;;
-let _X86_INS_VPMAXUQ = 1065;;
-let _X86_INS_VPMAXUW = 1066;;
-let _X86_INS_VPMINSB = 1067;;
-let _X86_INS_VPMINSD = 1068;;
-let _X86_INS_VPMINSQ = 1069;;
-let _X86_INS_VPMINSW = 1070;;
-let _X86_INS_VPMINUB = 1071;;
-let _X86_INS_VPMINUD = 1072;;
-let _X86_INS_VPMINUQ = 1073;;
-let _X86_INS_VPMINUW = 1074;;
-let _X86_INS_VPMOVDB = 1075;;
-let _X86_INS_VPMOVDW = 1076;;
-let _X86_INS_VPMOVMSKB = 1077;;
-let _X86_INS_VPMOVQB = 1078;;
-let _X86_INS_VPMOVQD = 1079;;
-let _X86_INS_VPMOVQW = 1080;;
-let _X86_INS_VPMOVSDB = 1081;;
-let _X86_INS_VPMOVSDW = 1082;;
-let _X86_INS_VPMOVSQB = 1083;;
-let _X86_INS_VPMOVSQD = 1084;;
-let _X86_INS_VPMOVSQW = 1085;;
-let _X86_INS_VPMOVSXBD = 1086;;
-let _X86_INS_VPMOVSXBQ = 1087;;
-let _X86_INS_VPMOVSXBW = 1088;;
-let _X86_INS_VPMOVSXDQ = 1089;;
-let _X86_INS_VPMOVSXWD = 1090;;
-let _X86_INS_VPMOVSXWQ = 1091;;
-let _X86_INS_VPMOVUSDB = 1092;;
-let _X86_INS_VPMOVUSDW = 1093;;
-let _X86_INS_VPMOVUSQB = 1094;;
-let _X86_INS_VPMOVUSQD = 1095;;
-let _X86_INS_VPMOVUSQW = 1096;;
-let _X86_INS_VPMOVZXBD = 1097;;
-let _X86_INS_VPMOVZXBQ = 1098;;
-let _X86_INS_VPMOVZXBW = 1099;;
-let _X86_INS_VPMOVZXDQ = 1100;;
-let _X86_INS_VPMOVZXWD = 1101;;
-let _X86_INS_VPMOVZXWQ = 1102;;
-let _X86_INS_VPMULDQ = 1103;;
-let _X86_INS_VPMULHRSW = 1104;;
-let _X86_INS_VPMULHUW = 1105;;
-let _X86_INS_VPMULHW = 1106;;
-let _X86_INS_VPMULLD = 1107;;
-let _X86_INS_VPMULLW = 1108;;
-let _X86_INS_VPMULUDQ = 1109;;
-let _X86_INS_VPORD = 1110;;
-let _X86_INS_VPORQ = 1111;;
-let _X86_INS_VPOR = 1112;;
-let _X86_INS_VPPERM = 1113;;
-let _X86_INS_VPROTB = 1114;;
-let _X86_INS_VPROTD = 1115;;
-let _X86_INS_VPROTQ = 1116;;
-let _X86_INS_VPROTW = 1117;;
-let _X86_INS_VPSADBW = 1118;;
-let _X86_INS_VPSCATTERDD = 1119;;
-let _X86_INS_VPSCATTERDQ = 1120;;
-let _X86_INS_VPSCATTERQD = 1121;;
-let _X86_INS_VPSCATTERQQ = 1122;;
-let _X86_INS_VPSHAB = 1123;;
-let _X86_INS_VPSHAD = 1124;;
-let _X86_INS_VPSHAQ = 1125;;
-let _X86_INS_VPSHAW = 1126;;
-let _X86_INS_VPSHLB = 1127;;
-let _X86_INS_VPSHLD = 1128;;
-let _X86_INS_VPSHLQ = 1129;;
-let _X86_INS_VPSHLW = 1130;;
-let _X86_INS_VPSHUFB = 1131;;
-let _X86_INS_VPSHUFD = 1132;;
-let _X86_INS_VPSHUFHW = 1133;;
-let _X86_INS_VPSHUFLW = 1134;;
-let _X86_INS_VPSIGNB = 1135;;
-let _X86_INS_VPSIGND = 1136;;
-let _X86_INS_VPSIGNW = 1137;;
-let _X86_INS_VPSLLDQ = 1138;;
-let _X86_INS_VPSLLD = 1139;;
-let _X86_INS_VPSLLQ = 1140;;
-let _X86_INS_VPSLLVD = 1141;;
-let _X86_INS_VPSLLVQ = 1142;;
-let _X86_INS_VPSLLW = 1143;;
-let _X86_INS_VPSRAD = 1144;;
-let _X86_INS_VPSRAQ = 1145;;
-let _X86_INS_VPSRAVD = 1146;;
-let _X86_INS_VPSRAVQ = 1147;;
-let _X86_INS_VPSRAW = 1148;;
-let _X86_INS_VPSRLDQ = 1149;;
-let _X86_INS_VPSRLD = 1150;;
-let _X86_INS_VPSRLQ = 1151;;
-let _X86_INS_VPSRLVD = 1152;;
-let _X86_INS_VPSRLVQ = 1153;;
-let _X86_INS_VPSRLW = 1154;;
-let _X86_INS_VPSUBB = 1155;;
-let _X86_INS_VPSUBD = 1156;;
-let _X86_INS_VPSUBQ = 1157;;
-let _X86_INS_VPSUBSB = 1158;;
-let _X86_INS_VPSUBSW = 1159;;
-let _X86_INS_VPSUBUSB = 1160;;
-let _X86_INS_VPSUBUSW = 1161;;
-let _X86_INS_VPSUBW = 1162;;
-let _X86_INS_VPTESTMD = 1163;;
-let _X86_INS_VPTESTMQ = 1164;;
-let _X86_INS_VPTESTNMD = 1165;;
-let _X86_INS_VPTESTNMQ = 1166;;
-let _X86_INS_VPTEST = 1167;;
-let _X86_INS_VPUNPCKHBW = 1168;;
-let _X86_INS_VPUNPCKHDQ = 1169;;
-let _X86_INS_VPUNPCKHQDQ = 1170;;
-let _X86_INS_VPUNPCKHWD = 1171;;
-let _X86_INS_VPUNPCKLBW = 1172;;
-let _X86_INS_VPUNPCKLDQ = 1173;;
-let _X86_INS_VPUNPCKLQDQ = 1174;;
-let _X86_INS_VPUNPCKLWD = 1175;;
-let _X86_INS_VPXORD = 1176;;
-let _X86_INS_VPXORQ = 1177;;
-let _X86_INS_VPXOR = 1178;;
-let _X86_INS_VRCP14PD = 1179;;
-let _X86_INS_VRCP14PS = 1180;;
-let _X86_INS_VRCP14SD = 1181;;
-let _X86_INS_VRCP14SS = 1182;;
-let _X86_INS_VRCP28PD = 1183;;
-let _X86_INS_VRCP28PS = 1184;;
-let _X86_INS_VRCP28SD = 1185;;
-let _X86_INS_VRCP28SS = 1186;;
-let _X86_INS_VRCPPS = 1187;;
-let _X86_INS_VRCPSS = 1188;;
-let _X86_INS_VRNDSCALEPD = 1189;;
-let _X86_INS_VRNDSCALEPS = 1190;;
-let _X86_INS_VRNDSCALESD = 1191;;
-let _X86_INS_VRNDSCALESS = 1192;;
-let _X86_INS_VROUNDPD = 1193;;
-let _X86_INS_VROUNDPS = 1194;;
-let _X86_INS_VROUNDSD = 1195;;
-let _X86_INS_VROUNDSS = 1196;;
-let _X86_INS_VRSQRT14PD = 1197;;
-let _X86_INS_VRSQRT14PS = 1198;;
-let _X86_INS_VRSQRT14SD = 1199;;
-let _X86_INS_VRSQRT14SS = 1200;;
-let _X86_INS_VRSQRT28PD = 1201;;
-let _X86_INS_VRSQRT28PS = 1202;;
-let _X86_INS_VRSQRT28SD = 1203;;
-let _X86_INS_VRSQRT28SS = 1204;;
-let _X86_INS_VRSQRTPS = 1205;;
-let _X86_INS_VRSQRTSS = 1206;;
-let _X86_INS_VSCATTERDPD = 1207;;
-let _X86_INS_VSCATTERDPS = 1208;;
-let _X86_INS_VSCATTERQPD = 1209;;
-let _X86_INS_VSCATTERQPS = 1210;;
-let _X86_INS_VSHUFPD = 1211;;
-let _X86_INS_VSHUFPS = 1212;;
-let _X86_INS_VSQRTPD = 1213;;
-let _X86_INS_VSQRTPS = 1214;;
-let _X86_INS_VSQRTSD = 1215;;
-let _X86_INS_VSQRTSS = 1216;;
-let _X86_INS_VSTMXCSR = 1217;;
-let _X86_INS_VSUBPD = 1218;;
-let _X86_INS_VSUBPS = 1219;;
-let _X86_INS_VSUBSD = 1220;;
-let _X86_INS_VSUBSS = 1221;;
-let _X86_INS_VTESTPD = 1222;;
-let _X86_INS_VTESTPS = 1223;;
-let _X86_INS_VUNPCKHPD = 1224;;
-let _X86_INS_VUNPCKHPS = 1225;;
-let _X86_INS_VUNPCKLPD = 1226;;
-let _X86_INS_VUNPCKLPS = 1227;;
-let _X86_INS_VZEROALL = 1228;;
-let _X86_INS_VZEROUPPER = 1229;;
-let _X86_INS_WAIT = 1230;;
-let _X86_INS_WBINVD = 1231;;
-let _X86_INS_WRFSBASE = 1232;;
-let _X86_INS_WRGSBASE = 1233;;
-let _X86_INS_WRMSR = 1234;;
-let _X86_INS_XABORT = 1235;;
-let _X86_INS_XACQUIRE = 1236;;
-let _X86_INS_XBEGIN = 1237;;
-let _X86_INS_XCHG = 1238;;
-let _X86_INS_FXCH = 1239;;
-let _X86_INS_XCRYPTCBC = 1240;;
-let _X86_INS_XCRYPTCFB = 1241;;
-let _X86_INS_XCRYPTCTR = 1242;;
-let _X86_INS_XCRYPTECB = 1243;;
-let _X86_INS_XCRYPTOFB = 1244;;
-let _X86_INS_XEND = 1245;;
-let _X86_INS_XGETBV = 1246;;
-let _X86_INS_XLATB = 1247;;
-let _X86_INS_XRELEASE = 1248;;
-let _X86_INS_XRSTOR = 1249;;
-let _X86_INS_XRSTOR64 = 1250;;
-let _X86_INS_XSAVE = 1251;;
-let _X86_INS_XSAVE64 = 1252;;
-let _X86_INS_XSAVEOPT = 1253;;
-let _X86_INS_XSAVEOPT64 = 1254;;
-let _X86_INS_XSETBV = 1255;;
-let _X86_INS_XSHA1 = 1256;;
-let _X86_INS_XSHA256 = 1257;;
-let _X86_INS_XSTORE = 1258;;
-let _X86_INS_XTEST = 1259;;
-let _X86_INS_MAX = 1260;;
-
-(*  Group of X86 instructions *)
-
-let _X86_GRP_INVALID = 0;;
-let _X86_GRP_3DNOW = 1;;
-let _X86_GRP_AES = 2;;
-let _X86_GRP_ADX = 3;;
-let _X86_GRP_AVX = 4;;
-let _X86_GRP_AVX2 = 5;;
-let _X86_GRP_AVX512 = 6;;
-let _X86_GRP_BMI = 7;;
-let _X86_GRP_BMI2 = 8;;
-let _X86_GRP_CMOV = 9;;
-let _X86_GRP_F16C = 10;;
-let _X86_GRP_FMA = 11;;
-let _X86_GRP_FMA4 = 12;;
-let _X86_GRP_FSGSBASE = 13;;
-let _X86_GRP_HLE = 14;;
-let _X86_GRP_MMX = 15;;
-let _X86_GRP_MODE32 = 16;;
-let _X86_GRP_MODE64 = 17;;
-let _X86_GRP_RTM = 18;;
-let _X86_GRP_SHA = 19;;
-let _X86_GRP_SSE1 = 20;;
-let _X86_GRP_SSE2 = 21;;
-let _X86_GRP_SSE3 = 22;;
-let _X86_GRP_SSE41 = 23;;
-let _X86_GRP_SSE42 = 24;;
-let _X86_GRP_SSE4A = 25;;
-let _X86_GRP_SSSE3 = 26;;
-let _X86_GRP_PCLMUL = 27;;
-let _X86_GRP_XOP = 28;;
-let _X86_GRP_CDI = 29;;
-let _X86_GRP_ERI = 30;;
-let _X86_GRP_TBM = 31;;
-let _X86_GRP_16BITMODE = 32;;
-let _X86_GRP_NOT64BITMODE = 33;;
-let _X86_GRP_JUMP = 34;;
-let _X86_GRP_VM = 35;;
-let _X86_GRP_INT = 36;;
-let _X86_GRP_IRET = 37;;
-let _X86_GRP_CALL = 38;;
-let _X86_GRP_RET = 39;;
-let _X86_GRP_MAX = 40;;
diff --git a/bindings/ocaml/x86_const.ml b/bindings/ocaml/x86_const.ml
new file mode 100644
index 0000000..28c0290
--- /dev/null
+++ b/bindings/ocaml/x86_const.ml
@@ -0,0 +1,1554 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [x86_const.ml] *)
+
+(* X86 registers *)
+
+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_FP0 = 74;;
+let _X86_REG_FP1 = 75;;
+let _X86_REG_FP2 = 76;;
+let _X86_REG_FP3 = 77;;
+let _X86_REG_FP4 = 78;;
+let _X86_REG_FP5 = 79;;
+let _X86_REG_FP6 = 80;;
+let _X86_REG_K0 = 81;;
+let _X86_REG_K1 = 82;;
+let _X86_REG_K2 = 83;;
+let _X86_REG_K3 = 84;;
+let _X86_REG_K4 = 85;;
+let _X86_REG_K5 = 86;;
+let _X86_REG_K6 = 87;;
+let _X86_REG_K7 = 88;;
+let _X86_REG_MM0 = 89;;
+let _X86_REG_MM1 = 90;;
+let _X86_REG_MM2 = 91;;
+let _X86_REG_MM3 = 92;;
+let _X86_REG_MM4 = 93;;
+let _X86_REG_MM5 = 94;;
+let _X86_REG_MM6 = 95;;
+let _X86_REG_MM7 = 96;;
+let _X86_REG_R8 = 97;;
+let _X86_REG_R9 = 98;;
+let _X86_REG_R10 = 99;;
+let _X86_REG_R11 = 100;;
+let _X86_REG_R12 = 101;;
+let _X86_REG_R13 = 102;;
+let _X86_REG_R14 = 103;;
+let _X86_REG_R15 = 104;;
+let _X86_REG_ST0 = 105;;
+let _X86_REG_ST1 = 106;;
+let _X86_REG_ST2 = 107;;
+let _X86_REG_ST3 = 108;;
+let _X86_REG_ST4 = 109;;
+let _X86_REG_ST5 = 110;;
+let _X86_REG_ST6 = 111;;
+let _X86_REG_ST7 = 112;;
+let _X86_REG_XMM0 = 113;;
+let _X86_REG_XMM1 = 114;;
+let _X86_REG_XMM2 = 115;;
+let _X86_REG_XMM3 = 116;;
+let _X86_REG_XMM4 = 117;;
+let _X86_REG_XMM5 = 118;;
+let _X86_REG_XMM6 = 119;;
+let _X86_REG_XMM7 = 120;;
+let _X86_REG_XMM8 = 121;;
+let _X86_REG_XMM9 = 122;;
+let _X86_REG_XMM10 = 123;;
+let _X86_REG_XMM11 = 124;;
+let _X86_REG_XMM12 = 125;;
+let _X86_REG_XMM13 = 126;;
+let _X86_REG_XMM14 = 127;;
+let _X86_REG_XMM15 = 128;;
+let _X86_REG_XMM16 = 129;;
+let _X86_REG_XMM17 = 130;;
+let _X86_REG_XMM18 = 131;;
+let _X86_REG_XMM19 = 132;;
+let _X86_REG_XMM20 = 133;;
+let _X86_REG_XMM21 = 134;;
+let _X86_REG_XMM22 = 135;;
+let _X86_REG_XMM23 = 136;;
+let _X86_REG_XMM24 = 137;;
+let _X86_REG_XMM25 = 138;;
+let _X86_REG_XMM26 = 139;;
+let _X86_REG_XMM27 = 140;;
+let _X86_REG_XMM28 = 141;;
+let _X86_REG_XMM29 = 142;;
+let _X86_REG_XMM30 = 143;;
+let _X86_REG_XMM31 = 144;;
+let _X86_REG_YMM0 = 145;;
+let _X86_REG_YMM1 = 146;;
+let _X86_REG_YMM2 = 147;;
+let _X86_REG_YMM3 = 148;;
+let _X86_REG_YMM4 = 149;;
+let _X86_REG_YMM5 = 150;;
+let _X86_REG_YMM6 = 151;;
+let _X86_REG_YMM7 = 152;;
+let _X86_REG_YMM8 = 153;;
+let _X86_REG_YMM9 = 154;;
+let _X86_REG_YMM10 = 155;;
+let _X86_REG_YMM11 = 156;;
+let _X86_REG_YMM12 = 157;;
+let _X86_REG_YMM13 = 158;;
+let _X86_REG_YMM14 = 159;;
+let _X86_REG_YMM15 = 160;;
+let _X86_REG_YMM16 = 161;;
+let _X86_REG_YMM17 = 162;;
+let _X86_REG_YMM18 = 163;;
+let _X86_REG_YMM19 = 164;;
+let _X86_REG_YMM20 = 165;;
+let _X86_REG_YMM21 = 166;;
+let _X86_REG_YMM22 = 167;;
+let _X86_REG_YMM23 = 168;;
+let _X86_REG_YMM24 = 169;;
+let _X86_REG_YMM25 = 170;;
+let _X86_REG_YMM26 = 171;;
+let _X86_REG_YMM27 = 172;;
+let _X86_REG_YMM28 = 173;;
+let _X86_REG_YMM29 = 174;;
+let _X86_REG_YMM30 = 175;;
+let _X86_REG_YMM31 = 176;;
+let _X86_REG_ZMM0 = 177;;
+let _X86_REG_ZMM1 = 178;;
+let _X86_REG_ZMM2 = 179;;
+let _X86_REG_ZMM3 = 180;;
+let _X86_REG_ZMM4 = 181;;
+let _X86_REG_ZMM5 = 182;;
+let _X86_REG_ZMM6 = 183;;
+let _X86_REG_ZMM7 = 184;;
+let _X86_REG_ZMM8 = 185;;
+let _X86_REG_ZMM9 = 186;;
+let _X86_REG_ZMM10 = 187;;
+let _X86_REG_ZMM11 = 188;;
+let _X86_REG_ZMM12 = 189;;
+let _X86_REG_ZMM13 = 190;;
+let _X86_REG_ZMM14 = 191;;
+let _X86_REG_ZMM15 = 192;;
+let _X86_REG_ZMM16 = 193;;
+let _X86_REG_ZMM17 = 194;;
+let _X86_REG_ZMM18 = 195;;
+let _X86_REG_ZMM19 = 196;;
+let _X86_REG_ZMM20 = 197;;
+let _X86_REG_ZMM21 = 198;;
+let _X86_REG_ZMM22 = 199;;
+let _X86_REG_ZMM23 = 200;;
+let _X86_REG_ZMM24 = 201;;
+let _X86_REG_ZMM25 = 202;;
+let _X86_REG_ZMM26 = 203;;
+let _X86_REG_ZMM27 = 204;;
+let _X86_REG_ZMM28 = 205;;
+let _X86_REG_ZMM29 = 206;;
+let _X86_REG_ZMM30 = 207;;
+let _X86_REG_ZMM31 = 208;;
+let _X86_REG_R8B = 209;;
+let _X86_REG_R9B = 210;;
+let _X86_REG_R10B = 211;;
+let _X86_REG_R11B = 212;;
+let _X86_REG_R12B = 213;;
+let _X86_REG_R13B = 214;;
+let _X86_REG_R14B = 215;;
+let _X86_REG_R15B = 216;;
+let _X86_REG_R8D = 217;;
+let _X86_REG_R9D = 218;;
+let _X86_REG_R10D = 219;;
+let _X86_REG_R11D = 220;;
+let _X86_REG_R12D = 221;;
+let _X86_REG_R13D = 222;;
+let _X86_REG_R14D = 223;;
+let _X86_REG_R15D = 224;;
+let _X86_REG_R8W = 225;;
+let _X86_REG_R9W = 226;;
+let _X86_REG_R10W = 227;;
+let _X86_REG_R11W = 228;;
+let _X86_REG_R12W = 229;;
+let _X86_REG_R13W = 230;;
+let _X86_REG_R14W = 231;;
+let _X86_REG_R15W = 232;;
+let _X86_REG_MAX = 233;;
+
+(* Operand type for instruction's operands *)
+
+let _X86_OP_INVALID = 0;;
+let _X86_OP_REG = 1;;
+let _X86_OP_IMM = 2;;
+let _X86_OP_FP = 3;;
+let _X86_OP_MEM = 4;;
+
+(* X86 instructions *)
+
+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_FADDP = 17;;
+let _X86_INS_ADOX = 18;;
+let _X86_INS_AESDECLAST = 19;;
+let _X86_INS_AESDEC = 20;;
+let _X86_INS_AESENCLAST = 21;;
+let _X86_INS_AESENC = 22;;
+let _X86_INS_AESIMC = 23;;
+let _X86_INS_AESKEYGENASSIST = 24;;
+let _X86_INS_AND = 25;;
+let _X86_INS_ANDN = 26;;
+let _X86_INS_ANDNPD = 27;;
+let _X86_INS_ANDNPS = 28;;
+let _X86_INS_ANDPD = 29;;
+let _X86_INS_ANDPS = 30;;
+let _X86_INS_ARPL = 31;;
+let _X86_INS_BEXTR = 32;;
+let _X86_INS_BLCFILL = 33;;
+let _X86_INS_BLCI = 34;;
+let _X86_INS_BLCIC = 35;;
+let _X86_INS_BLCMSK = 36;;
+let _X86_INS_BLCS = 37;;
+let _X86_INS_BLENDPD = 38;;
+let _X86_INS_BLENDPS = 39;;
+let _X86_INS_BLENDVPD = 40;;
+let _X86_INS_BLENDVPS = 41;;
+let _X86_INS_BLSFILL = 42;;
+let _X86_INS_BLSI = 43;;
+let _X86_INS_BLSIC = 44;;
+let _X86_INS_BLSMSK = 45;;
+let _X86_INS_BLSR = 46;;
+let _X86_INS_BOUND = 47;;
+let _X86_INS_BSF = 48;;
+let _X86_INS_BSR = 49;;
+let _X86_INS_BSWAP = 50;;
+let _X86_INS_BT = 51;;
+let _X86_INS_BTC = 52;;
+let _X86_INS_BTR = 53;;
+let _X86_INS_BTS = 54;;
+let _X86_INS_BZHI = 55;;
+let _X86_INS_CALL = 56;;
+let _X86_INS_CBW = 57;;
+let _X86_INS_CDQ = 58;;
+let _X86_INS_CDQE = 59;;
+let _X86_INS_FCHS = 60;;
+let _X86_INS_CLAC = 61;;
+let _X86_INS_CLC = 62;;
+let _X86_INS_CLD = 63;;
+let _X86_INS_CLFLUSH = 64;;
+let _X86_INS_CLGI = 65;;
+let _X86_INS_CLI = 66;;
+let _X86_INS_CLTS = 67;;
+let _X86_INS_CMC = 68;;
+let _X86_INS_CMOVA = 69;;
+let _X86_INS_CMOVAE = 70;;
+let _X86_INS_CMOVB = 71;;
+let _X86_INS_CMOVBE = 72;;
+let _X86_INS_FCMOVBE = 73;;
+let _X86_INS_FCMOVB = 74;;
+let _X86_INS_CMOVE = 75;;
+let _X86_INS_FCMOVE = 76;;
+let _X86_INS_CMOVG = 77;;
+let _X86_INS_CMOVGE = 78;;
+let _X86_INS_CMOVL = 79;;
+let _X86_INS_CMOVLE = 80;;
+let _X86_INS_FCMOVNBE = 81;;
+let _X86_INS_FCMOVNB = 82;;
+let _X86_INS_CMOVNE = 83;;
+let _X86_INS_FCMOVNE = 84;;
+let _X86_INS_CMOVNO = 85;;
+let _X86_INS_CMOVNP = 86;;
+let _X86_INS_FCMOVNU = 87;;
+let _X86_INS_CMOVNS = 88;;
+let _X86_INS_CMOVO = 89;;
+let _X86_INS_CMOVP = 90;;
+let _X86_INS_FCMOVU = 91;;
+let _X86_INS_CMOVS = 92;;
+let _X86_INS_CMP = 93;;
+let _X86_INS_CMPPD = 94;;
+let _X86_INS_CMPPS = 95;;
+let _X86_INS_CMPSW = 96;;
+let _X86_INS_CMPSD = 97;;
+let _X86_INS_CMPSQ = 98;;
+let _X86_INS_CMPSB = 99;;
+let _X86_INS_CMPSS = 100;;
+let _X86_INS_CMPXCHG16B = 101;;
+let _X86_INS_CMPXCHG = 102;;
+let _X86_INS_CMPXCHG8B = 103;;
+let _X86_INS_COMISD = 104;;
+let _X86_INS_COMISS = 105;;
+let _X86_INS_FCOMP = 106;;
+let _X86_INS_FCOMPI = 107;;
+let _X86_INS_FCOMI = 108;;
+let _X86_INS_FCOM = 109;;
+let _X86_INS_FCOS = 110;;
+let _X86_INS_CPUID = 111;;
+let _X86_INS_CQO = 112;;
+let _X86_INS_CRC32 = 113;;
+let _X86_INS_CS = 114;;
+let _X86_INS_CVTDQ2PD = 115;;
+let _X86_INS_CVTDQ2PS = 116;;
+let _X86_INS_CVTPD2DQ = 117;;
+let _X86_INS_CVTPD2PS = 118;;
+let _X86_INS_CVTPS2DQ = 119;;
+let _X86_INS_CVTPS2PD = 120;;
+let _X86_INS_CVTSD2SI = 121;;
+let _X86_INS_CVTSD2SS = 122;;
+let _X86_INS_CVTSI2SD = 123;;
+let _X86_INS_CVTSI2SS = 124;;
+let _X86_INS_CVTSS2SD = 125;;
+let _X86_INS_CVTSS2SI = 126;;
+let _X86_INS_CVTTPD2DQ = 127;;
+let _X86_INS_CVTTPS2DQ = 128;;
+let _X86_INS_CVTTSD2SI = 129;;
+let _X86_INS_CVTTSS2SI = 130;;
+let _X86_INS_CWD = 131;;
+let _X86_INS_CWDE = 132;;
+let _X86_INS_DAA = 133;;
+let _X86_INS_DAS = 134;;
+let _X86_INS_DATA16 = 135;;
+let _X86_INS_DEC = 136;;
+let _X86_INS_DIV = 137;;
+let _X86_INS_DIVPD = 138;;
+let _X86_INS_DIVPS = 139;;
+let _X86_INS_FDIVR = 140;;
+let _X86_INS_FIDIVR = 141;;
+let _X86_INS_FDIVRP = 142;;
+let _X86_INS_DIVSD = 143;;
+let _X86_INS_DIVSS = 144;;
+let _X86_INS_FDIV = 145;;
+let _X86_INS_FIDIV = 146;;
+let _X86_INS_FDIVP = 147;;
+let _X86_INS_DPPD = 148;;
+let _X86_INS_DPPS = 149;;
+let _X86_INS_DS = 150;;
+let _X86_INS_ENTER = 151;;
+let _X86_INS_ES = 152;;
+let _X86_INS_EXTRACTPS = 153;;
+let _X86_INS_EXTRQ = 154;;
+let _X86_INS_F2XM1 = 155;;
+let _X86_INS_LCALL = 156;;
+let _X86_INS_LJMP = 157;;
+let _X86_INS_FBLD = 158;;
+let _X86_INS_FBSTP = 159;;
+let _X86_INS_FCOMPP = 160;;
+let _X86_INS_FDECSTP = 161;;
+let _X86_INS_FEMMS = 162;;
+let _X86_INS_FFREE = 163;;
+let _X86_INS_FICOM = 164;;
+let _X86_INS_FICOMP = 165;;
+let _X86_INS_FINCSTP = 166;;
+let _X86_INS_FLDCW = 167;;
+let _X86_INS_FLDENV = 168;;
+let _X86_INS_FLDL2E = 169;;
+let _X86_INS_FLDL2T = 170;;
+let _X86_INS_FLDLG2 = 171;;
+let _X86_INS_FLDLN2 = 172;;
+let _X86_INS_FLDPI = 173;;
+let _X86_INS_FNCLEX = 174;;
+let _X86_INS_FNINIT = 175;;
+let _X86_INS_FNOP = 176;;
+let _X86_INS_FNSTCW = 177;;
+let _X86_INS_FNSTSW = 178;;
+let _X86_INS_FPATAN = 179;;
+let _X86_INS_FPREM = 180;;
+let _X86_INS_FPREM1 = 181;;
+let _X86_INS_FPTAN = 182;;
+let _X86_INS_FRNDINT = 183;;
+let _X86_INS_FRSTOR = 184;;
+let _X86_INS_FNSAVE = 185;;
+let _X86_INS_FSCALE = 186;;
+let _X86_INS_FSETPM = 187;;
+let _X86_INS_FSINCOS = 188;;
+let _X86_INS_FNSTENV = 189;;
+let _X86_INS_FS = 190;;
+let _X86_INS_FXAM = 191;;
+let _X86_INS_FXRSTOR = 192;;
+let _X86_INS_FXRSTOR64 = 193;;
+let _X86_INS_FXSAVE = 194;;
+let _X86_INS_FXSAVE64 = 195;;
+let _X86_INS_FXTRACT = 196;;
+let _X86_INS_FYL2X = 197;;
+let _X86_INS_FYL2XP1 = 198;;
+let _X86_INS_MOVAPD = 199;;
+let _X86_INS_MOVAPS = 200;;
+let _X86_INS_ORPD = 201;;
+let _X86_INS_ORPS = 202;;
+let _X86_INS_VMOVAPD = 203;;
+let _X86_INS_VMOVAPS = 204;;
+let _X86_INS_XORPD = 205;;
+let _X86_INS_XORPS = 206;;
+let _X86_INS_GETSEC = 207;;
+let _X86_INS_GS = 208;;
+let _X86_INS_HADDPD = 209;;
+let _X86_INS_HADDPS = 210;;
+let _X86_INS_HLT = 211;;
+let _X86_INS_HSUBPD = 212;;
+let _X86_INS_HSUBPS = 213;;
+let _X86_INS_IDIV = 214;;
+let _X86_INS_FILD = 215;;
+let _X86_INS_IMUL = 216;;
+let _X86_INS_INSW = 217;;
+let _X86_INS_IN = 218;;
+let _X86_INS_INSD = 219;;
+let _X86_INS_INSB = 220;;
+let _X86_INS_INC = 221;;
+let _X86_INS_INSERTPS = 222;;
+let _X86_INS_INSERTQ = 223;;
+let _X86_INS_INT = 224;;
+let _X86_INS_INT1 = 225;;
+let _X86_INS_INT3 = 226;;
+let _X86_INS_INTO = 227;;
+let _X86_INS_INVD = 228;;
+let _X86_INS_INVEPT = 229;;
+let _X86_INS_INVLPG = 230;;
+let _X86_INS_INVLPGA = 231;;
+let _X86_INS_INVPCID = 232;;
+let _X86_INS_INVVPID = 233;;
+let _X86_INS_IRET = 234;;
+let _X86_INS_IRETD = 235;;
+let _X86_INS_IRETQ = 236;;
+let _X86_INS_FISTTP = 237;;
+let _X86_INS_FIST = 238;;
+let _X86_INS_FISTP = 239;;
+let _X86_INS_UCOMISD = 240;;
+let _X86_INS_UCOMISS = 241;;
+let _X86_INS_VCMP = 242;;
+let _X86_INS_VCOMISD = 243;;
+let _X86_INS_VCOMISS = 244;;
+let _X86_INS_VCVTSD2SS = 245;;
+let _X86_INS_VCVTSI2SD = 246;;
+let _X86_INS_VCVTSI2SS = 247;;
+let _X86_INS_VCVTSS2SD = 248;;
+let _X86_INS_VCVTTSD2SI = 249;;
+let _X86_INS_VCVTTSD2USI = 250;;
+let _X86_INS_VCVTTSS2SI = 251;;
+let _X86_INS_VCVTTSS2USI = 252;;
+let _X86_INS_VCVTUSI2SD = 253;;
+let _X86_INS_VCVTUSI2SS = 254;;
+let _X86_INS_VUCOMISD = 255;;
+let _X86_INS_VUCOMISS = 256;;
+let _X86_INS_JAE = 257;;
+let _X86_INS_JA = 258;;
+let _X86_INS_JBE = 259;;
+let _X86_INS_JB = 260;;
+let _X86_INS_JCXZ = 261;;
+let _X86_INS_JECXZ = 262;;
+let _X86_INS_JE = 263;;
+let _X86_INS_JGE = 264;;
+let _X86_INS_JG = 265;;
+let _X86_INS_JLE = 266;;
+let _X86_INS_JL = 267;;
+let _X86_INS_JMP = 268;;
+let _X86_INS_JNE = 269;;
+let _X86_INS_JNO = 270;;
+let _X86_INS_JNP = 271;;
+let _X86_INS_JNS = 272;;
+let _X86_INS_JO = 273;;
+let _X86_INS_JP = 274;;
+let _X86_INS_JRCXZ = 275;;
+let _X86_INS_JS = 276;;
+let _X86_INS_KANDNW = 277;;
+let _X86_INS_KANDW = 278;;
+let _X86_INS_KMOVW = 279;;
+let _X86_INS_KNOTW = 280;;
+let _X86_INS_KORTESTW = 281;;
+let _X86_INS_KORW = 282;;
+let _X86_INS_KSHIFTLW = 283;;
+let _X86_INS_KSHIFTRW = 284;;
+let _X86_INS_KUNPCKBW = 285;;
+let _X86_INS_KXNORW = 286;;
+let _X86_INS_KXORW = 287;;
+let _X86_INS_LAHF = 288;;
+let _X86_INS_LAR = 289;;
+let _X86_INS_LDDQU = 290;;
+let _X86_INS_LDMXCSR = 291;;
+let _X86_INS_LDS = 292;;
+let _X86_INS_FLDZ = 293;;
+let _X86_INS_FLD1 = 294;;
+let _X86_INS_FLD = 295;;
+let _X86_INS_LEA = 296;;
+let _X86_INS_LEAVE = 297;;
+let _X86_INS_LES = 298;;
+let _X86_INS_LFENCE = 299;;
+let _X86_INS_LFS = 300;;
+let _X86_INS_LGDT = 301;;
+let _X86_INS_LGS = 302;;
+let _X86_INS_LIDT = 303;;
+let _X86_INS_LLDT = 304;;
+let _X86_INS_LMSW = 305;;
+let _X86_INS_OR = 306;;
+let _X86_INS_LOCK = 307;;
+let _X86_INS_SUB = 308;;
+let _X86_INS_XOR = 309;;
+let _X86_INS_LODSB = 310;;
+let _X86_INS_LODSD = 311;;
+let _X86_INS_LODSQ = 312;;
+let _X86_INS_LODSW = 313;;
+let _X86_INS_LOOP = 314;;
+let _X86_INS_LOOPE = 315;;
+let _X86_INS_LOOPNE = 316;;
+let _X86_INS_RETF = 317;;
+let _X86_INS_RETFQ = 318;;
+let _X86_INS_LSL = 319;;
+let _X86_INS_LSS = 320;;
+let _X86_INS_LTR = 321;;
+let _X86_INS_XADD = 322;;
+let _X86_INS_LZCNT = 323;;
+let _X86_INS_MASKMOVDQU = 324;;
+let _X86_INS_MAXPD = 325;;
+let _X86_INS_MAXPS = 326;;
+let _X86_INS_MAXSD = 327;;
+let _X86_INS_MAXSS = 328;;
+let _X86_INS_MFENCE = 329;;
+let _X86_INS_MINPD = 330;;
+let _X86_INS_MINPS = 331;;
+let _X86_INS_MINSD = 332;;
+let _X86_INS_MINSS = 333;;
+let _X86_INS_CVTPD2PI = 334;;
+let _X86_INS_CVTPI2PD = 335;;
+let _X86_INS_CVTPI2PS = 336;;
+let _X86_INS_CVTPS2PI = 337;;
+let _X86_INS_CVTTPD2PI = 338;;
+let _X86_INS_CVTTPS2PI = 339;;
+let _X86_INS_EMMS = 340;;
+let _X86_INS_MASKMOVQ = 341;;
+let _X86_INS_MOVD = 342;;
+let _X86_INS_MOVDQ2Q = 343;;
+let _X86_INS_MOVNTQ = 344;;
+let _X86_INS_MOVQ2DQ = 345;;
+let _X86_INS_MOVQ = 346;;
+let _X86_INS_PABSB = 347;;
+let _X86_INS_PABSD = 348;;
+let _X86_INS_PABSW = 349;;
+let _X86_INS_PACKSSDW = 350;;
+let _X86_INS_PACKSSWB = 351;;
+let _X86_INS_PACKUSWB = 352;;
+let _X86_INS_PADDB = 353;;
+let _X86_INS_PADDD = 354;;
+let _X86_INS_PADDQ = 355;;
+let _X86_INS_PADDSB = 356;;
+let _X86_INS_PADDSW = 357;;
+let _X86_INS_PADDUSB = 358;;
+let _X86_INS_PADDUSW = 359;;
+let _X86_INS_PADDW = 360;;
+let _X86_INS_PALIGNR = 361;;
+let _X86_INS_PANDN = 362;;
+let _X86_INS_PAND = 363;;
+let _X86_INS_PAVGB = 364;;
+let _X86_INS_PAVGW = 365;;
+let _X86_INS_PCMPEQB = 366;;
+let _X86_INS_PCMPEQD = 367;;
+let _X86_INS_PCMPEQW = 368;;
+let _X86_INS_PCMPGTB = 369;;
+let _X86_INS_PCMPGTD = 370;;
+let _X86_INS_PCMPGTW = 371;;
+let _X86_INS_PEXTRW = 372;;
+let _X86_INS_PHADDSW = 373;;
+let _X86_INS_PHADDW = 374;;
+let _X86_INS_PHADDD = 375;;
+let _X86_INS_PHSUBD = 376;;
+let _X86_INS_PHSUBSW = 377;;
+let _X86_INS_PHSUBW = 378;;
+let _X86_INS_PINSRW = 379;;
+let _X86_INS_PMADDUBSW = 380;;
+let _X86_INS_PMADDWD = 381;;
+let _X86_INS_PMAXSW = 382;;
+let _X86_INS_PMAXUB = 383;;
+let _X86_INS_PMINSW = 384;;
+let _X86_INS_PMINUB = 385;;
+let _X86_INS_PMOVMSKB = 386;;
+let _X86_INS_PMULHRSW = 387;;
+let _X86_INS_PMULHUW = 388;;
+let _X86_INS_PMULHW = 389;;
+let _X86_INS_PMULLW = 390;;
+let _X86_INS_PMULUDQ = 391;;
+let _X86_INS_POR = 392;;
+let _X86_INS_PSADBW = 393;;
+let _X86_INS_PSHUFB = 394;;
+let _X86_INS_PSHUFW = 395;;
+let _X86_INS_PSIGNB = 396;;
+let _X86_INS_PSIGND = 397;;
+let _X86_INS_PSIGNW = 398;;
+let _X86_INS_PSLLD = 399;;
+let _X86_INS_PSLLQ = 400;;
+let _X86_INS_PSLLW = 401;;
+let _X86_INS_PSRAD = 402;;
+let _X86_INS_PSRAW = 403;;
+let _X86_INS_PSRLD = 404;;
+let _X86_INS_PSRLQ = 405;;
+let _X86_INS_PSRLW = 406;;
+let _X86_INS_PSUBB = 407;;
+let _X86_INS_PSUBD = 408;;
+let _X86_INS_PSUBQ = 409;;
+let _X86_INS_PSUBSB = 410;;
+let _X86_INS_PSUBSW = 411;;
+let _X86_INS_PSUBUSB = 412;;
+let _X86_INS_PSUBUSW = 413;;
+let _X86_INS_PSUBW = 414;;
+let _X86_INS_PUNPCKHBW = 415;;
+let _X86_INS_PUNPCKHDQ = 416;;
+let _X86_INS_PUNPCKHWD = 417;;
+let _X86_INS_PUNPCKLBW = 418;;
+let _X86_INS_PUNPCKLDQ = 419;;
+let _X86_INS_PUNPCKLWD = 420;;
+let _X86_INS_PXOR = 421;;
+let _X86_INS_MONITOR = 422;;
+let _X86_INS_MONTMUL = 423;;
+let _X86_INS_MOV = 424;;
+let _X86_INS_MOVABS = 425;;
+let _X86_INS_MOVBE = 426;;
+let _X86_INS_MOVDDUP = 427;;
+let _X86_INS_MOVDQA = 428;;
+let _X86_INS_MOVDQU = 429;;
+let _X86_INS_MOVHLPS = 430;;
+let _X86_INS_MOVHPD = 431;;
+let _X86_INS_MOVHPS = 432;;
+let _X86_INS_MOVLHPS = 433;;
+let _X86_INS_MOVLPD = 434;;
+let _X86_INS_MOVLPS = 435;;
+let _X86_INS_MOVMSKPD = 436;;
+let _X86_INS_MOVMSKPS = 437;;
+let _X86_INS_MOVNTDQA = 438;;
+let _X86_INS_MOVNTDQ = 439;;
+let _X86_INS_MOVNTI = 440;;
+let _X86_INS_MOVNTPD = 441;;
+let _X86_INS_MOVNTPS = 442;;
+let _X86_INS_MOVNTSD = 443;;
+let _X86_INS_MOVNTSS = 444;;
+let _X86_INS_MOVSB = 445;;
+let _X86_INS_MOVSD = 446;;
+let _X86_INS_MOVSHDUP = 447;;
+let _X86_INS_MOVSLDUP = 448;;
+let _X86_INS_MOVSQ = 449;;
+let _X86_INS_MOVSS = 450;;
+let _X86_INS_MOVSW = 451;;
+let _X86_INS_MOVSX = 452;;
+let _X86_INS_MOVSXD = 453;;
+let _X86_INS_MOVUPD = 454;;
+let _X86_INS_MOVUPS = 455;;
+let _X86_INS_MOVZX = 456;;
+let _X86_INS_MPSADBW = 457;;
+let _X86_INS_MUL = 458;;
+let _X86_INS_MULPD = 459;;
+let _X86_INS_MULPS = 460;;
+let _X86_INS_MULSD = 461;;
+let _X86_INS_MULSS = 462;;
+let _X86_INS_MULX = 463;;
+let _X86_INS_FMUL = 464;;
+let _X86_INS_FIMUL = 465;;
+let _X86_INS_FMULP = 466;;
+let _X86_INS_MWAIT = 467;;
+let _X86_INS_NEG = 468;;
+let _X86_INS_NOP = 469;;
+let _X86_INS_NOT = 470;;
+let _X86_INS_OUT = 471;;
+let _X86_INS_OUTSB = 472;;
+let _X86_INS_OUTSD = 473;;
+let _X86_INS_OUTSW = 474;;
+let _X86_INS_PACKUSDW = 475;;
+let _X86_INS_PAUSE = 476;;
+let _X86_INS_PAVGUSB = 477;;
+let _X86_INS_PBLENDVB = 478;;
+let _X86_INS_PBLENDW = 479;;
+let _X86_INS_PCLMULQDQ = 480;;
+let _X86_INS_PCMPEQQ = 481;;
+let _X86_INS_PCMPESTRI = 482;;
+let _X86_INS_PCMPESTRM = 483;;
+let _X86_INS_PCMPGTQ = 484;;
+let _X86_INS_PCMPISTRI = 485;;
+let _X86_INS_PCMPISTRM = 486;;
+let _X86_INS_PDEP = 487;;
+let _X86_INS_PEXT = 488;;
+let _X86_INS_PEXTRB = 489;;
+let _X86_INS_PEXTRD = 490;;
+let _X86_INS_PEXTRQ = 491;;
+let _X86_INS_PF2ID = 492;;
+let _X86_INS_PF2IW = 493;;
+let _X86_INS_PFACC = 494;;
+let _X86_INS_PFADD = 495;;
+let _X86_INS_PFCMPEQ = 496;;
+let _X86_INS_PFCMPGE = 497;;
+let _X86_INS_PFCMPGT = 498;;
+let _X86_INS_PFMAX = 499;;
+let _X86_INS_PFMIN = 500;;
+let _X86_INS_PFMUL = 501;;
+let _X86_INS_PFNACC = 502;;
+let _X86_INS_PFPNACC = 503;;
+let _X86_INS_PFRCPIT1 = 504;;
+let _X86_INS_PFRCPIT2 = 505;;
+let _X86_INS_PFRCP = 506;;
+let _X86_INS_PFRSQIT1 = 507;;
+let _X86_INS_PFRSQRT = 508;;
+let _X86_INS_PFSUBR = 509;;
+let _X86_INS_PFSUB = 510;;
+let _X86_INS_PHMINPOSUW = 511;;
+let _X86_INS_PI2FD = 512;;
+let _X86_INS_PI2FW = 513;;
+let _X86_INS_PINSRB = 514;;
+let _X86_INS_PINSRD = 515;;
+let _X86_INS_PINSRQ = 516;;
+let _X86_INS_PMAXSB = 517;;
+let _X86_INS_PMAXSD = 518;;
+let _X86_INS_PMAXUD = 519;;
+let _X86_INS_PMAXUW = 520;;
+let _X86_INS_PMINSB = 521;;
+let _X86_INS_PMINSD = 522;;
+let _X86_INS_PMINUD = 523;;
+let _X86_INS_PMINUW = 524;;
+let _X86_INS_PMOVSXBD = 525;;
+let _X86_INS_PMOVSXBQ = 526;;
+let _X86_INS_PMOVSXBW = 527;;
+let _X86_INS_PMOVSXDQ = 528;;
+let _X86_INS_PMOVSXWD = 529;;
+let _X86_INS_PMOVSXWQ = 530;;
+let _X86_INS_PMOVZXBD = 531;;
+let _X86_INS_PMOVZXBQ = 532;;
+let _X86_INS_PMOVZXBW = 533;;
+let _X86_INS_PMOVZXDQ = 534;;
+let _X86_INS_PMOVZXWD = 535;;
+let _X86_INS_PMOVZXWQ = 536;;
+let _X86_INS_PMULDQ = 537;;
+let _X86_INS_PMULHRW = 538;;
+let _X86_INS_PMULLD = 539;;
+let _X86_INS_POP = 540;;
+let _X86_INS_POPAW = 541;;
+let _X86_INS_POPAL = 542;;
+let _X86_INS_POPCNT = 543;;
+let _X86_INS_POPF = 544;;
+let _X86_INS_POPFD = 545;;
+let _X86_INS_POPFQ = 546;;
+let _X86_INS_PREFETCH = 547;;
+let _X86_INS_PREFETCHNTA = 548;;
+let _X86_INS_PREFETCHT0 = 549;;
+let _X86_INS_PREFETCHT1 = 550;;
+let _X86_INS_PREFETCHT2 = 551;;
+let _X86_INS_PREFETCHW = 552;;
+let _X86_INS_PSHUFD = 553;;
+let _X86_INS_PSHUFHW = 554;;
+let _X86_INS_PSHUFLW = 555;;
+let _X86_INS_PSLLDQ = 556;;
+let _X86_INS_PSRLDQ = 557;;
+let _X86_INS_PSWAPD = 558;;
+let _X86_INS_PTEST = 559;;
+let _X86_INS_PUNPCKHQDQ = 560;;
+let _X86_INS_PUNPCKLQDQ = 561;;
+let _X86_INS_PUSH = 562;;
+let _X86_INS_PUSHAW = 563;;
+let _X86_INS_PUSHAL = 564;;
+let _X86_INS_PUSHF = 565;;
+let _X86_INS_PUSHFD = 566;;
+let _X86_INS_PUSHFQ = 567;;
+let _X86_INS_RCL = 568;;
+let _X86_INS_RCPPS = 569;;
+let _X86_INS_RCPSS = 570;;
+let _X86_INS_RCR = 571;;
+let _X86_INS_RDFSBASE = 572;;
+let _X86_INS_RDGSBASE = 573;;
+let _X86_INS_RDMSR = 574;;
+let _X86_INS_RDPMC = 575;;
+let _X86_INS_RDRAND = 576;;
+let _X86_INS_RDSEED = 577;;
+let _X86_INS_RDTSC = 578;;
+let _X86_INS_RDTSCP = 579;;
+let _X86_INS_REPNE = 580;;
+let _X86_INS_REP = 581;;
+let _X86_INS_RET = 582;;
+let _X86_INS_REX64 = 583;;
+let _X86_INS_ROL = 584;;
+let _X86_INS_ROR = 585;;
+let _X86_INS_RORX = 586;;
+let _X86_INS_ROUNDPD = 587;;
+let _X86_INS_ROUNDPS = 588;;
+let _X86_INS_ROUNDSD = 589;;
+let _X86_INS_ROUNDSS = 590;;
+let _X86_INS_RSM = 591;;
+let _X86_INS_RSQRTPS = 592;;
+let _X86_INS_RSQRTSS = 593;;
+let _X86_INS_SAHF = 594;;
+let _X86_INS_SAL = 595;;
+let _X86_INS_SALC = 596;;
+let _X86_INS_SAR = 597;;
+let _X86_INS_SARX = 598;;
+let _X86_INS_SBB = 599;;
+let _X86_INS_SCASW = 600;;
+let _X86_INS_SCASD = 601;;
+let _X86_INS_SCASQ = 602;;
+let _X86_INS_SCASB = 603;;
+let _X86_INS_SETAE = 604;;
+let _X86_INS_SETA = 605;;
+let _X86_INS_SETBE = 606;;
+let _X86_INS_SETB = 607;;
+let _X86_INS_SETE = 608;;
+let _X86_INS_SETGE = 609;;
+let _X86_INS_SETG = 610;;
+let _X86_INS_SETLE = 611;;
+let _X86_INS_SETL = 612;;
+let _X86_INS_SETNE = 613;;
+let _X86_INS_SETNO = 614;;
+let _X86_INS_SETNP = 615;;
+let _X86_INS_SETNS = 616;;
+let _X86_INS_SETO = 617;;
+let _X86_INS_SETP = 618;;
+let _X86_INS_SETS = 619;;
+let _X86_INS_SFENCE = 620;;
+let _X86_INS_SGDT = 621;;
+let _X86_INS_SHA1MSG1 = 622;;
+let _X86_INS_SHA1MSG2 = 623;;
+let _X86_INS_SHA1NEXTE = 624;;
+let _X86_INS_SHA1RNDS4 = 625;;
+let _X86_INS_SHA256MSG1 = 626;;
+let _X86_INS_SHA256MSG2 = 627;;
+let _X86_INS_SHA256RNDS2 = 628;;
+let _X86_INS_SHL = 629;;
+let _X86_INS_SHLD = 630;;
+let _X86_INS_SHLX = 631;;
+let _X86_INS_SHR = 632;;
+let _X86_INS_SHRD = 633;;
+let _X86_INS_SHRX = 634;;
+let _X86_INS_SHUFPD = 635;;
+let _X86_INS_SHUFPS = 636;;
+let _X86_INS_SIDT = 637;;
+let _X86_INS_FSIN = 638;;
+let _X86_INS_SKINIT = 639;;
+let _X86_INS_SLDT = 640;;
+let _X86_INS_SMSW = 641;;
+let _X86_INS_SQRTPD = 642;;
+let _X86_INS_SQRTPS = 643;;
+let _X86_INS_SQRTSD = 644;;
+let _X86_INS_SQRTSS = 645;;
+let _X86_INS_FSQRT = 646;;
+let _X86_INS_SS = 647;;
+let _X86_INS_STAC = 648;;
+let _X86_INS_STC = 649;;
+let _X86_INS_STD = 650;;
+let _X86_INS_STGI = 651;;
+let _X86_INS_STI = 652;;
+let _X86_INS_STMXCSR = 653;;
+let _X86_INS_STOSB = 654;;
+let _X86_INS_STOSD = 655;;
+let _X86_INS_STOSQ = 656;;
+let _X86_INS_STOSW = 657;;
+let _X86_INS_STR = 658;;
+let _X86_INS_FST = 659;;
+let _X86_INS_FSTP = 660;;
+let _X86_INS_FSTPNCE = 661;;
+let _X86_INS_SUBPD = 662;;
+let _X86_INS_SUBPS = 663;;
+let _X86_INS_FSUBR = 664;;
+let _X86_INS_FISUBR = 665;;
+let _X86_INS_FSUBRP = 666;;
+let _X86_INS_SUBSD = 667;;
+let _X86_INS_SUBSS = 668;;
+let _X86_INS_FSUB = 669;;
+let _X86_INS_FISUB = 670;;
+let _X86_INS_FSUBP = 671;;
+let _X86_INS_SWAPGS = 672;;
+let _X86_INS_SYSCALL = 673;;
+let _X86_INS_SYSENTER = 674;;
+let _X86_INS_SYSEXIT = 675;;
+let _X86_INS_SYSRET = 676;;
+let _X86_INS_T1MSKC = 677;;
+let _X86_INS_TEST = 678;;
+let _X86_INS_UD2 = 679;;
+let _X86_INS_FTST = 680;;
+let _X86_INS_TZCNT = 681;;
+let _X86_INS_TZMSK = 682;;
+let _X86_INS_FUCOMPI = 683;;
+let _X86_INS_FUCOMI = 684;;
+let _X86_INS_FUCOMPP = 685;;
+let _X86_INS_FUCOMP = 686;;
+let _X86_INS_FUCOM = 687;;
+let _X86_INS_UD2B = 688;;
+let _X86_INS_UNPCKHPD = 689;;
+let _X86_INS_UNPCKHPS = 690;;
+let _X86_INS_UNPCKLPD = 691;;
+let _X86_INS_UNPCKLPS = 692;;
+let _X86_INS_VADDPD = 693;;
+let _X86_INS_VADDPS = 694;;
+let _X86_INS_VADDSD = 695;;
+let _X86_INS_VADDSS = 696;;
+let _X86_INS_VADDSUBPD = 697;;
+let _X86_INS_VADDSUBPS = 698;;
+let _X86_INS_VAESDECLAST = 699;;
+let _X86_INS_VAESDEC = 700;;
+let _X86_INS_VAESENCLAST = 701;;
+let _X86_INS_VAESENC = 702;;
+let _X86_INS_VAESIMC = 703;;
+let _X86_INS_VAESKEYGENASSIST = 704;;
+let _X86_INS_VALIGND = 705;;
+let _X86_INS_VALIGNQ = 706;;
+let _X86_INS_VANDNPD = 707;;
+let _X86_INS_VANDNPS = 708;;
+let _X86_INS_VANDPD = 709;;
+let _X86_INS_VANDPS = 710;;
+let _X86_INS_VBLENDMPD = 711;;
+let _X86_INS_VBLENDMPS = 712;;
+let _X86_INS_VBLENDPD = 713;;
+let _X86_INS_VBLENDPS = 714;;
+let _X86_INS_VBLENDVPD = 715;;
+let _X86_INS_VBLENDVPS = 716;;
+let _X86_INS_VBROADCASTF128 = 717;;
+let _X86_INS_VBROADCASTI128 = 718;;
+let _X86_INS_VBROADCASTSD = 719;;
+let _X86_INS_VBROADCASTSS = 720;;
+let _X86_INS_VCMPPD = 721;;
+let _X86_INS_VCMPPS = 722;;
+let _X86_INS_VCMPSD = 723;;
+let _X86_INS_VCMPSS = 724;;
+let _X86_INS_VCVTDQ2PD = 725;;
+let _X86_INS_VCVTDQ2PS = 726;;
+let _X86_INS_VCVTPD2DQX = 727;;
+let _X86_INS_VCVTPD2DQ = 728;;
+let _X86_INS_VCVTPD2PSX = 729;;
+let _X86_INS_VCVTPD2PS = 730;;
+let _X86_INS_VCVTPD2UDQ = 731;;
+let _X86_INS_VCVTPH2PS = 732;;
+let _X86_INS_VCVTPS2DQ = 733;;
+let _X86_INS_VCVTPS2PD = 734;;
+let _X86_INS_VCVTPS2PH = 735;;
+let _X86_INS_VCVTPS2UDQ = 736;;
+let _X86_INS_VCVTSD2SI = 737;;
+let _X86_INS_VCVTSD2USI = 738;;
+let _X86_INS_VCVTSS2SI = 739;;
+let _X86_INS_VCVTSS2USI = 740;;
+let _X86_INS_VCVTTPD2DQX = 741;;
+let _X86_INS_VCVTTPD2DQ = 742;;
+let _X86_INS_VCVTTPD2UDQ = 743;;
+let _X86_INS_VCVTTPS2DQ = 744;;
+let _X86_INS_VCVTTPS2UDQ = 745;;
+let _X86_INS_VCVTUDQ2PD = 746;;
+let _X86_INS_VCVTUDQ2PS = 747;;
+let _X86_INS_VDIVPD = 748;;
+let _X86_INS_VDIVPS = 749;;
+let _X86_INS_VDIVSD = 750;;
+let _X86_INS_VDIVSS = 751;;
+let _X86_INS_VDPPD = 752;;
+let _X86_INS_VDPPS = 753;;
+let _X86_INS_VERR = 754;;
+let _X86_INS_VERW = 755;;
+let _X86_INS_VEXTRACTF128 = 756;;
+let _X86_INS_VEXTRACTF32X4 = 757;;
+let _X86_INS_VEXTRACTF64X4 = 758;;
+let _X86_INS_VEXTRACTI128 = 759;;
+let _X86_INS_VEXTRACTI32X4 = 760;;
+let _X86_INS_VEXTRACTI64X4 = 761;;
+let _X86_INS_VEXTRACTPS = 762;;
+let _X86_INS_VFMADD132PD = 763;;
+let _X86_INS_VFMADD132PS = 764;;
+let _X86_INS_VFMADD213PD = 765;;
+let _X86_INS_VFMADD213PS = 766;;
+let _X86_INS_VFMADDPD = 767;;
+let _X86_INS_VFMADD231PD = 768;;
+let _X86_INS_VFMADDPS = 769;;
+let _X86_INS_VFMADD231PS = 770;;
+let _X86_INS_VFMADDSD = 771;;
+let _X86_INS_VFMADD213SD = 772;;
+let _X86_INS_VFMADD132SD = 773;;
+let _X86_INS_VFMADD231SD = 774;;
+let _X86_INS_VFMADDSS = 775;;
+let _X86_INS_VFMADD213SS = 776;;
+let _X86_INS_VFMADD132SS = 777;;
+let _X86_INS_VFMADD231SS = 778;;
+let _X86_INS_VFMADDSUB132PD = 779;;
+let _X86_INS_VFMADDSUB132PS = 780;;
+let _X86_INS_VFMADDSUB213PD = 781;;
+let _X86_INS_VFMADDSUB213PS = 782;;
+let _X86_INS_VFMADDSUBPD = 783;;
+let _X86_INS_VFMADDSUB231PD = 784;;
+let _X86_INS_VFMADDSUBPS = 785;;
+let _X86_INS_VFMADDSUB231PS = 786;;
+let _X86_INS_VFMSUB132PD = 787;;
+let _X86_INS_VFMSUB132PS = 788;;
+let _X86_INS_VFMSUB213PD = 789;;
+let _X86_INS_VFMSUB213PS = 790;;
+let _X86_INS_VFMSUBADD132PD = 791;;
+let _X86_INS_VFMSUBADD132PS = 792;;
+let _X86_INS_VFMSUBADD213PD = 793;;
+let _X86_INS_VFMSUBADD213PS = 794;;
+let _X86_INS_VFMSUBADDPD = 795;;
+let _X86_INS_VFMSUBADD231PD = 796;;
+let _X86_INS_VFMSUBADDPS = 797;;
+let _X86_INS_VFMSUBADD231PS = 798;;
+let _X86_INS_VFMSUBPD = 799;;
+let _X86_INS_VFMSUB231PD = 800;;
+let _X86_INS_VFMSUBPS = 801;;
+let _X86_INS_VFMSUB231PS = 802;;
+let _X86_INS_VFMSUBSD = 803;;
+let _X86_INS_VFMSUB213SD = 804;;
+let _X86_INS_VFMSUB132SD = 805;;
+let _X86_INS_VFMSUB231SD = 806;;
+let _X86_INS_VFMSUBSS = 807;;
+let _X86_INS_VFMSUB213SS = 808;;
+let _X86_INS_VFMSUB132SS = 809;;
+let _X86_INS_VFMSUB231SS = 810;;
+let _X86_INS_VFNMADD132PD = 811;;
+let _X86_INS_VFNMADD132PS = 812;;
+let _X86_INS_VFNMADD213PD = 813;;
+let _X86_INS_VFNMADD213PS = 814;;
+let _X86_INS_VFNMADDPD = 815;;
+let _X86_INS_VFNMADD231PD = 816;;
+let _X86_INS_VFNMADDPS = 817;;
+let _X86_INS_VFNMADD231PS = 818;;
+let _X86_INS_VFNMADDSD = 819;;
+let _X86_INS_VFNMADD213SD = 820;;
+let _X86_INS_VFNMADD132SD = 821;;
+let _X86_INS_VFNMADD231SD = 822;;
+let _X86_INS_VFNMADDSS = 823;;
+let _X86_INS_VFNMADD213SS = 824;;
+let _X86_INS_VFNMADD132SS = 825;;
+let _X86_INS_VFNMADD231SS = 826;;
+let _X86_INS_VFNMSUB132PD = 827;;
+let _X86_INS_VFNMSUB132PS = 828;;
+let _X86_INS_VFNMSUB213PD = 829;;
+let _X86_INS_VFNMSUB213PS = 830;;
+let _X86_INS_VFNMSUBPD = 831;;
+let _X86_INS_VFNMSUB231PD = 832;;
+let _X86_INS_VFNMSUBPS = 833;;
+let _X86_INS_VFNMSUB231PS = 834;;
+let _X86_INS_VFNMSUBSD = 835;;
+let _X86_INS_VFNMSUB213SD = 836;;
+let _X86_INS_VFNMSUB132SD = 837;;
+let _X86_INS_VFNMSUB231SD = 838;;
+let _X86_INS_VFNMSUBSS = 839;;
+let _X86_INS_VFNMSUB213SS = 840;;
+let _X86_INS_VFNMSUB132SS = 841;;
+let _X86_INS_VFNMSUB231SS = 842;;
+let _X86_INS_VFRCZPD = 843;;
+let _X86_INS_VFRCZPS = 844;;
+let _X86_INS_VFRCZSD = 845;;
+let _X86_INS_VFRCZSS = 846;;
+let _X86_INS_VORPD = 847;;
+let _X86_INS_VORPS = 848;;
+let _X86_INS_VXORPD = 849;;
+let _X86_INS_VXORPS = 850;;
+let _X86_INS_VGATHERDPD = 851;;
+let _X86_INS_VGATHERDPS = 852;;
+let _X86_INS_VGATHERQPD = 853;;
+let _X86_INS_VGATHERQPS = 854;;
+let _X86_INS_VHADDPD = 855;;
+let _X86_INS_VHADDPS = 856;;
+let _X86_INS_VHSUBPD = 857;;
+let _X86_INS_VHSUBPS = 858;;
+let _X86_INS_VINSERTF128 = 859;;
+let _X86_INS_VINSERTF32X4 = 860;;
+let _X86_INS_VINSERTF64X4 = 861;;
+let _X86_INS_VINSERTI128 = 862;;
+let _X86_INS_VINSERTI32X4 = 863;;
+let _X86_INS_VINSERTI64X4 = 864;;
+let _X86_INS_VINSERTPS = 865;;
+let _X86_INS_VLDDQU = 866;;
+let _X86_INS_VLDMXCSR = 867;;
+let _X86_INS_VMASKMOVDQU = 868;;
+let _X86_INS_VMASKMOVPD = 869;;
+let _X86_INS_VMASKMOVPS = 870;;
+let _X86_INS_VMAXPD = 871;;
+let _X86_INS_VMAXPS = 872;;
+let _X86_INS_VMAXSD = 873;;
+let _X86_INS_VMAXSS = 874;;
+let _X86_INS_VMCALL = 875;;
+let _X86_INS_VMCLEAR = 876;;
+let _X86_INS_VMFUNC = 877;;
+let _X86_INS_VMINPD = 878;;
+let _X86_INS_VMINPS = 879;;
+let _X86_INS_VMINSD = 880;;
+let _X86_INS_VMINSS = 881;;
+let _X86_INS_VMLAUNCH = 882;;
+let _X86_INS_VMLOAD = 883;;
+let _X86_INS_VMMCALL = 884;;
+let _X86_INS_VMOVQ = 885;;
+let _X86_INS_VMOVDDUP = 886;;
+let _X86_INS_VMOVD = 887;;
+let _X86_INS_VMOVDQA32 = 888;;
+let _X86_INS_VMOVDQA64 = 889;;
+let _X86_INS_VMOVDQA = 890;;
+let _X86_INS_VMOVDQU32 = 891;;
+let _X86_INS_VMOVDQU64 = 892;;
+let _X86_INS_VMOVDQU = 893;;
+let _X86_INS_VMOVHLPS = 894;;
+let _X86_INS_VMOVHPD = 895;;
+let _X86_INS_VMOVHPS = 896;;
+let _X86_INS_VMOVLHPS = 897;;
+let _X86_INS_VMOVLPD = 898;;
+let _X86_INS_VMOVLPS = 899;;
+let _X86_INS_VMOVMSKPD = 900;;
+let _X86_INS_VMOVMSKPS = 901;;
+let _X86_INS_VMOVNTDQA = 902;;
+let _X86_INS_VMOVNTDQ = 903;;
+let _X86_INS_VMOVNTPD = 904;;
+let _X86_INS_VMOVNTPS = 905;;
+let _X86_INS_VMOVSD = 906;;
+let _X86_INS_VMOVSHDUP = 907;;
+let _X86_INS_VMOVSLDUP = 908;;
+let _X86_INS_VMOVSS = 909;;
+let _X86_INS_VMOVUPD = 910;;
+let _X86_INS_VMOVUPS = 911;;
+let _X86_INS_VMPSADBW = 912;;
+let _X86_INS_VMPTRLD = 913;;
+let _X86_INS_VMPTRST = 914;;
+let _X86_INS_VMREAD = 915;;
+let _X86_INS_VMRESUME = 916;;
+let _X86_INS_VMRUN = 917;;
+let _X86_INS_VMSAVE = 918;;
+let _X86_INS_VMULPD = 919;;
+let _X86_INS_VMULPS = 920;;
+let _X86_INS_VMULSD = 921;;
+let _X86_INS_VMULSS = 922;;
+let _X86_INS_VMWRITE = 923;;
+let _X86_INS_VMXOFF = 924;;
+let _X86_INS_VMXON = 925;;
+let _X86_INS_VPABSB = 926;;
+let _X86_INS_VPABSD = 927;;
+let _X86_INS_VPABSQ = 928;;
+let _X86_INS_VPABSW = 929;;
+let _X86_INS_VPACKSSDW = 930;;
+let _X86_INS_VPACKSSWB = 931;;
+let _X86_INS_VPACKUSDW = 932;;
+let _X86_INS_VPACKUSWB = 933;;
+let _X86_INS_VPADDB = 934;;
+let _X86_INS_VPADDD = 935;;
+let _X86_INS_VPADDQ = 936;;
+let _X86_INS_VPADDSB = 937;;
+let _X86_INS_VPADDSW = 938;;
+let _X86_INS_VPADDUSB = 939;;
+let _X86_INS_VPADDUSW = 940;;
+let _X86_INS_VPADDW = 941;;
+let _X86_INS_VPALIGNR = 942;;
+let _X86_INS_VPANDD = 943;;
+let _X86_INS_VPANDND = 944;;
+let _X86_INS_VPANDNQ = 945;;
+let _X86_INS_VPANDN = 946;;
+let _X86_INS_VPANDQ = 947;;
+let _X86_INS_VPAND = 948;;
+let _X86_INS_VPAVGB = 949;;
+let _X86_INS_VPAVGW = 950;;
+let _X86_INS_VPBLENDD = 951;;
+let _X86_INS_VPBLENDMD = 952;;
+let _X86_INS_VPBLENDMQ = 953;;
+let _X86_INS_VPBLENDVB = 954;;
+let _X86_INS_VPBLENDW = 955;;
+let _X86_INS_VPBROADCASTB = 956;;
+let _X86_INS_VPBROADCASTD = 957;;
+let _X86_INS_VPBROADCASTMB2Q = 958;;
+let _X86_INS_VPBROADCASTMW2D = 959;;
+let _X86_INS_VPBROADCASTQ = 960;;
+let _X86_INS_VPBROADCASTW = 961;;
+let _X86_INS_VPCLMULQDQ = 962;;
+let _X86_INS_VPCMOV = 963;;
+let _X86_INS_VPCMP = 964;;
+let _X86_INS_VPCMPD = 965;;
+let _X86_INS_VPCMPEQB = 966;;
+let _X86_INS_VPCMPEQD = 967;;
+let _X86_INS_VPCMPEQQ = 968;;
+let _X86_INS_VPCMPEQW = 969;;
+let _X86_INS_VPCMPESTRI = 970;;
+let _X86_INS_VPCMPESTRM = 971;;
+let _X86_INS_VPCMPGTB = 972;;
+let _X86_INS_VPCMPGTD = 973;;
+let _X86_INS_VPCMPGTQ = 974;;
+let _X86_INS_VPCMPGTW = 975;;
+let _X86_INS_VPCMPISTRI = 976;;
+let _X86_INS_VPCMPISTRM = 977;;
+let _X86_INS_VPCMPQ = 978;;
+let _X86_INS_VPCMPUD = 979;;
+let _X86_INS_VPCMPUQ = 980;;
+let _X86_INS_VPCOMB = 981;;
+let _X86_INS_VPCOMD = 982;;
+let _X86_INS_VPCOMQ = 983;;
+let _X86_INS_VPCOMUB = 984;;
+let _X86_INS_VPCOMUD = 985;;
+let _X86_INS_VPCOMUQ = 986;;
+let _X86_INS_VPCOMUW = 987;;
+let _X86_INS_VPCOMW = 988;;
+let _X86_INS_VPCONFLICTD = 989;;
+let _X86_INS_VPCONFLICTQ = 990;;
+let _X86_INS_VPERM2F128 = 991;;
+let _X86_INS_VPERM2I128 = 992;;
+let _X86_INS_VPERMD = 993;;
+let _X86_INS_VPERMI2D = 994;;
+let _X86_INS_VPERMI2PD = 995;;
+let _X86_INS_VPERMI2PS = 996;;
+let _X86_INS_VPERMI2Q = 997;;
+let _X86_INS_VPERMIL2PD = 998;;
+let _X86_INS_VPERMIL2PS = 999;;
+let _X86_INS_VPERMILPD = 1000;;
+let _X86_INS_VPERMILPS = 1001;;
+let _X86_INS_VPERMPD = 1002;;
+let _X86_INS_VPERMPS = 1003;;
+let _X86_INS_VPERMQ = 1004;;
+let _X86_INS_VPERMT2D = 1005;;
+let _X86_INS_VPERMT2PD = 1006;;
+let _X86_INS_VPERMT2PS = 1007;;
+let _X86_INS_VPERMT2Q = 1008;;
+let _X86_INS_VPEXTRB = 1009;;
+let _X86_INS_VPEXTRD = 1010;;
+let _X86_INS_VPEXTRQ = 1011;;
+let _X86_INS_VPEXTRW = 1012;;
+let _X86_INS_VPGATHERDD = 1013;;
+let _X86_INS_VPGATHERDQ = 1014;;
+let _X86_INS_VPGATHERQD = 1015;;
+let _X86_INS_VPGATHERQQ = 1016;;
+let _X86_INS_VPHADDBD = 1017;;
+let _X86_INS_VPHADDBQ = 1018;;
+let _X86_INS_VPHADDBW = 1019;;
+let _X86_INS_VPHADDDQ = 1020;;
+let _X86_INS_VPHADDD = 1021;;
+let _X86_INS_VPHADDSW = 1022;;
+let _X86_INS_VPHADDUBD = 1023;;
+let _X86_INS_VPHADDUBQ = 1024;;
+let _X86_INS_VPHADDUBW = 1025;;
+let _X86_INS_VPHADDUDQ = 1026;;
+let _X86_INS_VPHADDUWD = 1027;;
+let _X86_INS_VPHADDUWQ = 1028;;
+let _X86_INS_VPHADDWD = 1029;;
+let _X86_INS_VPHADDWQ = 1030;;
+let _X86_INS_VPHADDW = 1031;;
+let _X86_INS_VPHMINPOSUW = 1032;;
+let _X86_INS_VPHSUBBW = 1033;;
+let _X86_INS_VPHSUBDQ = 1034;;
+let _X86_INS_VPHSUBD = 1035;;
+let _X86_INS_VPHSUBSW = 1036;;
+let _X86_INS_VPHSUBWD = 1037;;
+let _X86_INS_VPHSUBW = 1038;;
+let _X86_INS_VPINSRB = 1039;;
+let _X86_INS_VPINSRD = 1040;;
+let _X86_INS_VPINSRQ = 1041;;
+let _X86_INS_VPINSRW = 1042;;
+let _X86_INS_VPMACSDD = 1043;;
+let _X86_INS_VPMACSDQH = 1044;;
+let _X86_INS_VPMACSDQL = 1045;;
+let _X86_INS_VPMACSSDD = 1046;;
+let _X86_INS_VPMACSSDQH = 1047;;
+let _X86_INS_VPMACSSDQL = 1048;;
+let _X86_INS_VPMACSSWD = 1049;;
+let _X86_INS_VPMACSSWW = 1050;;
+let _X86_INS_VPMACSWD = 1051;;
+let _X86_INS_VPMACSWW = 1052;;
+let _X86_INS_VPMADCSSWD = 1053;;
+let _X86_INS_VPMADCSWD = 1054;;
+let _X86_INS_VPMADDUBSW = 1055;;
+let _X86_INS_VPMADDWD = 1056;;
+let _X86_INS_VPMASKMOVD = 1057;;
+let _X86_INS_VPMASKMOVQ = 1058;;
+let _X86_INS_VPMAXSB = 1059;;
+let _X86_INS_VPMAXSD = 1060;;
+let _X86_INS_VPMAXSQ = 1061;;
+let _X86_INS_VPMAXSW = 1062;;
+let _X86_INS_VPMAXUB = 1063;;
+let _X86_INS_VPMAXUD = 1064;;
+let _X86_INS_VPMAXUQ = 1065;;
+let _X86_INS_VPMAXUW = 1066;;
+let _X86_INS_VPMINSB = 1067;;
+let _X86_INS_VPMINSD = 1068;;
+let _X86_INS_VPMINSQ = 1069;;
+let _X86_INS_VPMINSW = 1070;;
+let _X86_INS_VPMINUB = 1071;;
+let _X86_INS_VPMINUD = 1072;;
+let _X86_INS_VPMINUQ = 1073;;
+let _X86_INS_VPMINUW = 1074;;
+let _X86_INS_VPMOVDB = 1075;;
+let _X86_INS_VPMOVDW = 1076;;
+let _X86_INS_VPMOVMSKB = 1077;;
+let _X86_INS_VPMOVQB = 1078;;
+let _X86_INS_VPMOVQD = 1079;;
+let _X86_INS_VPMOVQW = 1080;;
+let _X86_INS_VPMOVSDB = 1081;;
+let _X86_INS_VPMOVSDW = 1082;;
+let _X86_INS_VPMOVSQB = 1083;;
+let _X86_INS_VPMOVSQD = 1084;;
+let _X86_INS_VPMOVSQW = 1085;;
+let _X86_INS_VPMOVSXBD = 1086;;
+let _X86_INS_VPMOVSXBQ = 1087;;
+let _X86_INS_VPMOVSXBW = 1088;;
+let _X86_INS_VPMOVSXDQ = 1089;;
+let _X86_INS_VPMOVSXWD = 1090;;
+let _X86_INS_VPMOVSXWQ = 1091;;
+let _X86_INS_VPMOVUSDB = 1092;;
+let _X86_INS_VPMOVUSDW = 1093;;
+let _X86_INS_VPMOVUSQB = 1094;;
+let _X86_INS_VPMOVUSQD = 1095;;
+let _X86_INS_VPMOVUSQW = 1096;;
+let _X86_INS_VPMOVZXBD = 1097;;
+let _X86_INS_VPMOVZXBQ = 1098;;
+let _X86_INS_VPMOVZXBW = 1099;;
+let _X86_INS_VPMOVZXDQ = 1100;;
+let _X86_INS_VPMOVZXWD = 1101;;
+let _X86_INS_VPMOVZXWQ = 1102;;
+let _X86_INS_VPMULDQ = 1103;;
+let _X86_INS_VPMULHRSW = 1104;;
+let _X86_INS_VPMULHUW = 1105;;
+let _X86_INS_VPMULHW = 1106;;
+let _X86_INS_VPMULLD = 1107;;
+let _X86_INS_VPMULLW = 1108;;
+let _X86_INS_VPMULUDQ = 1109;;
+let _X86_INS_VPORD = 1110;;
+let _X86_INS_VPORQ = 1111;;
+let _X86_INS_VPOR = 1112;;
+let _X86_INS_VPPERM = 1113;;
+let _X86_INS_VPROTB = 1114;;
+let _X86_INS_VPROTD = 1115;;
+let _X86_INS_VPROTQ = 1116;;
+let _X86_INS_VPROTW = 1117;;
+let _X86_INS_VPSADBW = 1118;;
+let _X86_INS_VPSCATTERDD = 1119;;
+let _X86_INS_VPSCATTERDQ = 1120;;
+let _X86_INS_VPSCATTERQD = 1121;;
+let _X86_INS_VPSCATTERQQ = 1122;;
+let _X86_INS_VPSHAB = 1123;;
+let _X86_INS_VPSHAD = 1124;;
+let _X86_INS_VPSHAQ = 1125;;
+let _X86_INS_VPSHAW = 1126;;
+let _X86_INS_VPSHLB = 1127;;
+let _X86_INS_VPSHLD = 1128;;
+let _X86_INS_VPSHLQ = 1129;;
+let _X86_INS_VPSHLW = 1130;;
+let _X86_INS_VPSHUFB = 1131;;
+let _X86_INS_VPSHUFD = 1132;;
+let _X86_INS_VPSHUFHW = 1133;;
+let _X86_INS_VPSHUFLW = 1134;;
+let _X86_INS_VPSIGNB = 1135;;
+let _X86_INS_VPSIGND = 1136;;
+let _X86_INS_VPSIGNW = 1137;;
+let _X86_INS_VPSLLDQ = 1138;;
+let _X86_INS_VPSLLD = 1139;;
+let _X86_INS_VPSLLQ = 1140;;
+let _X86_INS_VPSLLVD = 1141;;
+let _X86_INS_VPSLLVQ = 1142;;
+let _X86_INS_VPSLLW = 1143;;
+let _X86_INS_VPSRAD = 1144;;
+let _X86_INS_VPSRAQ = 1145;;
+let _X86_INS_VPSRAVD = 1146;;
+let _X86_INS_VPSRAVQ = 1147;;
+let _X86_INS_VPSRAW = 1148;;
+let _X86_INS_VPSRLDQ = 1149;;
+let _X86_INS_VPSRLD = 1150;;
+let _X86_INS_VPSRLQ = 1151;;
+let _X86_INS_VPSRLVD = 1152;;
+let _X86_INS_VPSRLVQ = 1153;;
+let _X86_INS_VPSRLW = 1154;;
+let _X86_INS_VPSUBB = 1155;;
+let _X86_INS_VPSUBD = 1156;;
+let _X86_INS_VPSUBQ = 1157;;
+let _X86_INS_VPSUBSB = 1158;;
+let _X86_INS_VPSUBSW = 1159;;
+let _X86_INS_VPSUBUSB = 1160;;
+let _X86_INS_VPSUBUSW = 1161;;
+let _X86_INS_VPSUBW = 1162;;
+let _X86_INS_VPTESTMD = 1163;;
+let _X86_INS_VPTESTMQ = 1164;;
+let _X86_INS_VPTESTNMD = 1165;;
+let _X86_INS_VPTESTNMQ = 1166;;
+let _X86_INS_VPTEST = 1167;;
+let _X86_INS_VPUNPCKHBW = 1168;;
+let _X86_INS_VPUNPCKHDQ = 1169;;
+let _X86_INS_VPUNPCKHQDQ = 1170;;
+let _X86_INS_VPUNPCKHWD = 1171;;
+let _X86_INS_VPUNPCKLBW = 1172;;
+let _X86_INS_VPUNPCKLDQ = 1173;;
+let _X86_INS_VPUNPCKLQDQ = 1174;;
+let _X86_INS_VPUNPCKLWD = 1175;;
+let _X86_INS_VPXORD = 1176;;
+let _X86_INS_VPXORQ = 1177;;
+let _X86_INS_VPXOR = 1178;;
+let _X86_INS_VRCP14PD = 1179;;
+let _X86_INS_VRCP14PS = 1180;;
+let _X86_INS_VRCP14SD = 1181;;
+let _X86_INS_VRCP14SS = 1182;;
+let _X86_INS_VRCP28PD = 1183;;
+let _X86_INS_VRCP28PS = 1184;;
+let _X86_INS_VRCP28SD = 1185;;
+let _X86_INS_VRCP28SS = 1186;;
+let _X86_INS_VRCPPS = 1187;;
+let _X86_INS_VRCPSS = 1188;;
+let _X86_INS_VRNDSCALEPD = 1189;;
+let _X86_INS_VRNDSCALEPS = 1190;;
+let _X86_INS_VRNDSCALESD = 1191;;
+let _X86_INS_VRNDSCALESS = 1192;;
+let _X86_INS_VROUNDPD = 1193;;
+let _X86_INS_VROUNDPS = 1194;;
+let _X86_INS_VROUNDSD = 1195;;
+let _X86_INS_VROUNDSS = 1196;;
+let _X86_INS_VRSQRT14PD = 1197;;
+let _X86_INS_VRSQRT14PS = 1198;;
+let _X86_INS_VRSQRT14SD = 1199;;
+let _X86_INS_VRSQRT14SS = 1200;;
+let _X86_INS_VRSQRT28PD = 1201;;
+let _X86_INS_VRSQRT28PS = 1202;;
+let _X86_INS_VRSQRT28SD = 1203;;
+let _X86_INS_VRSQRT28SS = 1204;;
+let _X86_INS_VRSQRTPS = 1205;;
+let _X86_INS_VRSQRTSS = 1206;;
+let _X86_INS_VSCATTERDPD = 1207;;
+let _X86_INS_VSCATTERDPS = 1208;;
+let _X86_INS_VSCATTERQPD = 1209;;
+let _X86_INS_VSCATTERQPS = 1210;;
+let _X86_INS_VSHUFPD = 1211;;
+let _X86_INS_VSHUFPS = 1212;;
+let _X86_INS_VSQRTPD = 1213;;
+let _X86_INS_VSQRTPS = 1214;;
+let _X86_INS_VSQRTSD = 1215;;
+let _X86_INS_VSQRTSS = 1216;;
+let _X86_INS_VSTMXCSR = 1217;;
+let _X86_INS_VSUBPD = 1218;;
+let _X86_INS_VSUBPS = 1219;;
+let _X86_INS_VSUBSD = 1220;;
+let _X86_INS_VSUBSS = 1221;;
+let _X86_INS_VTESTPD = 1222;;
+let _X86_INS_VTESTPS = 1223;;
+let _X86_INS_VUNPCKHPD = 1224;;
+let _X86_INS_VUNPCKHPS = 1225;;
+let _X86_INS_VUNPCKLPD = 1226;;
+let _X86_INS_VUNPCKLPS = 1227;;
+let _X86_INS_VZEROALL = 1228;;
+let _X86_INS_VZEROUPPER = 1229;;
+let _X86_INS_WAIT = 1230;;
+let _X86_INS_WBINVD = 1231;;
+let _X86_INS_WRFSBASE = 1232;;
+let _X86_INS_WRGSBASE = 1233;;
+let _X86_INS_WRMSR = 1234;;
+let _X86_INS_XABORT = 1235;;
+let _X86_INS_XACQUIRE = 1236;;
+let _X86_INS_XBEGIN = 1237;;
+let _X86_INS_XCHG = 1238;;
+let _X86_INS_FXCH = 1239;;
+let _X86_INS_XCRYPTCBC = 1240;;
+let _X86_INS_XCRYPTCFB = 1241;;
+let _X86_INS_XCRYPTCTR = 1242;;
+let _X86_INS_XCRYPTECB = 1243;;
+let _X86_INS_XCRYPTOFB = 1244;;
+let _X86_INS_XEND = 1245;;
+let _X86_INS_XGETBV = 1246;;
+let _X86_INS_XLATB = 1247;;
+let _X86_INS_XRELEASE = 1248;;
+let _X86_INS_XRSTOR = 1249;;
+let _X86_INS_XRSTOR64 = 1250;;
+let _X86_INS_XSAVE = 1251;;
+let _X86_INS_XSAVE64 = 1252;;
+let _X86_INS_XSAVEOPT = 1253;;
+let _X86_INS_XSAVEOPT64 = 1254;;
+let _X86_INS_XSETBV = 1255;;
+let _X86_INS_XSHA1 = 1256;;
+let _X86_INS_XSHA256 = 1257;;
+let _X86_INS_XSTORE = 1258;;
+let _X86_INS_XTEST = 1259;;
+let _X86_INS_MAX = 1260;;
+
+(* Group of X86 instructions*)
+
+let _X86_GRP_INVALID = 0;;
+let _X86_GRP_3DNOW = 1;;
+let _X86_GRP_AES = 2;;
+let _X86_GRP_ADX = 3;;
+let _X86_GRP_AVX = 4;;
+let _X86_GRP_AVX2 = 5;;
+let _X86_GRP_AVX512 = 6;;
+let _X86_GRP_BMI = 7;;
+let _X86_GRP_BMI2 = 8;;
+let _X86_GRP_CMOV = 9;;
+let _X86_GRP_F16C = 10;;
+let _X86_GRP_FMA = 11;;
+let _X86_GRP_FMA4 = 12;;
+let _X86_GRP_FSGSBASE = 13;;
+let _X86_GRP_HLE = 14;;
+let _X86_GRP_MMX = 15;;
+let _X86_GRP_MODE32 = 16;;
+let _X86_GRP_MODE64 = 17;;
+let _X86_GRP_RTM = 18;;
+let _X86_GRP_SHA = 19;;
+let _X86_GRP_SSE1 = 20;;
+let _X86_GRP_SSE2 = 21;;
+let _X86_GRP_SSE3 = 22;;
+let _X86_GRP_SSE41 = 23;;
+let _X86_GRP_SSE42 = 24;;
+let _X86_GRP_SSE4A = 25;;
+let _X86_GRP_SSSE3 = 26;;
+let _X86_GRP_PCLMUL = 27;;
+let _X86_GRP_XOP = 28;;
+let _X86_GRP_CDI = 29;;
+let _X86_GRP_ERI = 30;;
+let _X86_GRP_TBM = 31;;
+let _X86_GRP_16BITMODE = 32;;
+let _X86_GRP_NOT64BITMODE = 33;;
+let _X86_GRP_JUMP = 34;;
+let _X86_GRP_VM = 35;;
+let _X86_GRP_INT = 36;;
+let _X86_GRP_IRET = 37;;
+let _X86_GRP_CALL = 38;;
+let _X86_GRP_RET = 39;;
+let _X86_GRP_MAX = 40;;
diff --git a/bindings/ocaml/xcore.ml b/bindings/ocaml/xcore.ml
index 9b39cdc..314f40d 100644
--- a/bindings/ocaml/xcore.ml
+++ b/bindings/ocaml/xcore.ml
@@ -1,6 +1,8 @@
 (* Capstone Disassembler Engine
  * By Guillaume Jeanne <guillaume.jeanne@ensimag.fr>, 2014> *)
 
+open Xcore_const
+
 type xcore_op_mem = {
 	base: int;
 	index: int;
@@ -19,172 +21,3 @@
 	operands: xcore_op array;
 }
 
-(*  Operand type for instruction's operands *)
-
-let _XCORE_OP_INVALID = 0;;
-let _XCORE_OP_REG = 1;;
-let _XCORE_OP_IMM = 2;;
-let _XCORE_OP_MEM = 3;;
-
-(*  XCore registers *)
-
-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;;
-
-(*  pseudo registers *)
-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_MAX = 26;;
-
-(*  XCore instruction *)
-
-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_MAX = 121;;
-
-(*  Group of XCore instructions *)
-
-let _XCORE_GRP_INVALID = 0;;
-let _XCORE_GRP_JUMP = 1;;
-let _XCORE_GRP_MAX = 2;;
diff --git a/bindings/ocaml/xcore_const.ml b/bindings/ocaml/xcore_const.ml
new file mode 100644
index 0000000..83f06b0
--- /dev/null
+++ b/bindings/ocaml/xcore_const.ml
@@ -0,0 +1,171 @@
+(* For Capstone Engine. AUTO-GENERATED FILE, DO NOT EDIT [xcore_const.ml] *)
+
+(* Operand type for instruction's operands *)
+
+let _XCORE_OP_INVALID = 0;;
+let _XCORE_OP_REG = 1;;
+let _XCORE_OP_IMM = 2;;
+let _XCORE_OP_MEM = 3;;
+
+(* XCore registers *)
+
+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;;
+
+(* pseudo registers *)
+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_MAX = 26;;
+
+(* XCore instruction *)
+
+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_MAX = 121;;
+
+(* Group of XCore instructions *)
+
+let _XCORE_GRP_INVALID = 0;;
+let _XCORE_GRP_JUMP = 1;;
+let _XCORE_GRP_MAX = 2;;