Source code: Assembler/x86/x86.java
1 // x86.java, created Mon Feb 5 23:23:19 2001 by joewhaley
2 // Copyright (C) 2001-3 John Whaley <jwhaley@alum.mit.edu>
3 // Licensed under the terms of the GNU LGPL; see COPYING for details.
4 package Assembler.x86;
5
6 import Allocator.CodeAllocator;
7 import Util.Assert;
8 import Util.Strings;
9
10 /**
11 * x86
12 *
13 * @author John Whaley <jwhaley@alum.mit.edu>
14 * @version $Id: x86.java,v 1.9 2003/05/12 10:04:52 joewhaley Exp $
15 */
16 public class x86 implements x86Constants {
17
18 int opcode;
19 int length; // in bytes
20 int pairing; // for traditional Pentium cores
21 int microops; // for Pentium Pro cores
22 String desc; // description
23
24 public static final x86 AAA = _op(0x37, 1, -1, -1, "AAA");
25 public static final x86 AAD = _op(0xD50A, 2, -1, -1, "AAD");
26 public static final x86 AAM = _op(0xD40A, 2, -1, -1, "AAM");
27 public static final x86 AAS = _op(0x3F, 1, -1, -1, "AAS");
28 public static final x86 ADC_ra_i8 = _op(0x14, 1, PU, 2, "ADC_ra_i8");
29 public static final x86 ADC_ra_i32 = _op(0x15, 1, PU, 2, "ADC_ra_i32");
30 public static final x86 ADC_r_i8 = _op(0x8010, 2, PU, 2, "ADC_r_i8");
31 public static final x86 ADC_r_i32 = _op(0x8110, 2, PU, 2, "ADC_r_i32");
32 public static final x86 ADC_r_r8 = _op(0x1200, 2, PU, 2, "ADC_r_r8");
33 public static final x86 ADC_r_r32 = _op(0x1300, 2, PU, 2, "ADC_r_r32");
34 public static final x86 ADC_r_m8 = _op(0x1200, 2, PU, 3, "ADC_r_m8");
35 public static final x86 ADC_r_m32 = _op(0x1300, 2, PU, 3, "ADC_r_m32");
36 public static final x86 ADC_m_i8 = _op(0x8010, 2, PU, 4, "ADC_m_i8");
37 public static final x86 ADC_m_i32 = _op(0x8110, 2, PU, 4, "ADC_m_i32");
38 public static final x86 ADC_m_r8 = _op(0x1000, 2, PU, 4, "ADC_m_r8");
39 public static final x86 ADC_m_r32 = _op(0x1100, 2, PU, 4, "ADC_m_r32");
40 public static final x86 ADD_ra_i8 = _op(0x04, 1, UV, 1, "ADD_ra_i8");
41 public static final x86 ADD_ra_i32 = _op(0x05, 1, UV, 1, "ADD_ra_i32");
42 public static final x86 ADD_r_i8 = _op(0x8000, 2, UV, 1, "ADD_r_i8");
43 public static final x86 ADD_r_i32 = _op(0x8100, 2, UV, 1, "ADD_r_i32");
44 public static final x86 ADD_r_r8 = _op(0x0200, 2, UV, 1, "ADD_r_r8");
45 public static final x86 ADD_r_r32 = _op(0x0300, 2, UV, 1, "ADD_r_r32");
46 public static final x86 ADD_r_m8 = _op(0x0200, 2, UV, 2, "ADD_r_m8");
47 public static final x86 ADD_r_m32 = _op(0x0300, 2, UV, 2, "ADD_r_m32");
48 public static final x86 ADD_m_i8 = _op(0x8000, 2, UV, 4, "ADD_m_i8");
49 public static final x86 ADD_m_i32 = _op(0x8100, 2, UV, 4, "ADD_m_i32");
50 public static final x86 ADD_m_r8 = _op(0x0100, 2, UV, 4, "ADD_m_r8");
51 public static final x86 ADD_m_r32 = _op(0x0100, 2, UV, 4, "ADD_m_r32");
52 public static final x86 AND_ra_i8 = _op(0x24, 1, UV, 1, "AND_ra_i8");
53 public static final x86 AND_ra_i32 = _op(0x25, 1, UV, 1, "AND_ra_i32");
54 public static final x86 AND_r_i8 = _op(0x8020, 2, UV, 1, "AND_r_i8");
55 public static final x86 AND_r_i32 = _op(0x8120, 2, UV, 1, "AND_r_i32");
56 public static final x86 AND_r_r8 = _op(0x2200, 2, UV, 1, "AND_r_r8");
57 public static final x86 AND_r_r32 = _op(0x2300, 2, UV, 1, "AND_r_r32");
58 public static final x86 AND_r_m8 = _op(0x2200, 2, UV, 2, "AND_r_m8");
59 public static final x86 AND_r_m32 = _op(0x2300, 2, UV, 2, "AND_r_m32");
60 public static final x86 AND_m_i8 = _op(0x8020, 2, UV, 4, "AND_m_i8");
61 public static final x86 AND_m_i32 = _op(0x8120, 2, UV, 4, "AND_m_i32");
62 public static final x86 AND_m_r8 = _op(0x2000, 2, UV, 4, "AND_m_r8");
63 public static final x86 AND_m_r32 = _op(0x2100, 2, UV, 4, "AND_m_r32");
64 public static final x86 ARPL = _op(0x6300, 2, -1, -1, "ARPL");
65 public static final x86 BOUND = _op(0x6200, 2, -1, -1, "BOUND");
66 public static final x86 BSF = _op(0x0FBC, 2, -1, -1, "BSF");
67 public static final x86 BSR = _op(0x0FBD, 2, -1, -1, "BSR");
68 public static final x86 BSWAP = _op(0x0FC8, 2, -1, -1, "BSWAP");
69 public static final x86 BT_r_i = _op(0x0FBA20, 3, -1, -1, "BT_r_i");
70 public static final x86 BT_r_r = _op(0x0FA3, 2, -1, -1, "BT_r_r");
71 public static final x86 BT_m_i = _op(0x0FBA20, 3, -1, -1, "BT_m_i");
72 public static final x86 BT_m_r = _op(0x0FA3, 2, -1, -1, "BT_m_r");
73 public static final x86 BTC_r_i = _op(0x0FBA38, 3, -1, -1, "BTC_r_i");
74 public static final x86 BTC_r_r = _op(0x0FBB, 2, -1, -1, "BTC_r_r");
75 public static final x86 BTC_m_i = _op(0x0FBA38, 3, -1, -1, "BTC_m_i");
76 public static final x86 BTC_m_r = _op(0x0FBB, 2, -1, -1, "BTC_m_r");
77 public static final x86 BTR_r_i = _op(0x0FBA30, 3, -1, -1, "BTR_r_i");
78 public static final x86 BTR_r_r = _op(0x0FB3, 2, -1, -1, "BTR_r_r");
79 public static final x86 BTR_m_i = _op(0x0FBA30, 3, -1, -1, "BTR_m_i");
80 public static final x86 BTR_m_r = _op(0x0FB3, 2, -1, -1, "BTR_m_r");
81 public static final x86 BTS_r_i = _op(0x0FBA28, 3, -1, -1, "BTS_r_i");
82 public static final x86 BTS_r_r = _op(0x0FAB, 2, -1, -1, "BTS_r_r");
83 public static final x86 BTS_m_i = _op(0x0FBA28, 3, -1, -1, "BTS_m_i");
84 public static final x86 BTS_m_r = _op(0x0FAB, 2, -1, -1, "BTS_m_r");
85 public static final x86 CALL_rel32 = _op(0xE8, 1, -1, -1, "CALL_rel32");
86 public static final x86 CALL_r = _op(0xFF10, 2, -1, -1, "CALL_r");
87 public static final x86 CALL_abs = _op(0x9A, 1, -1, -1, "CALL_abs");
88 public static final x86 CALL_m = _op(0xFF10, 2, -1, -1, "CALL_m");
89 public static final x86 CBW = _op(0x98, 1, -1, -1, "CBW");
90 public static final x86 CLC = _op(0xF8, 1, -1, -1, "CLC");
91 public static final x86 CLI = _op(0xFA, 1, -1, -1, "CLI");
92 public static final x86 CLTS = _op(0x0F06, 2, -1, -1, "CLTS");
93 public static final x86 CMC = _op(0xF5, 1, -1, -1, "CMC");
94 public static final x86 CMOVAr_r = _op(0x0F4700, 3, -1, -1, "CMOVAr_r");
95 public static final x86 CMOVAr_m = _op(0x0F4700, 3, -1, -1, "CMOVAr_m");
96 public static final x86 CMOVAEr_r = _op(0x0F4300, 3, -1, -1, "CMOVAEr_r");
97 public static final x86 CMOVAEr_m = _op(0x0F4300, 3, -1, -1, "CMOVAEr_m");
98 public static final x86 CMOVBr_r = _op(0x0F4200, 3, -1, -1, "CMOVBr_r");
99 public static final x86 CMOVBr_m = _op(0x0F4200, 3, -1, -1, "CMOVBr_m");
100 public static final x86 CMOVBEr_r = _op(0x0F4600, 3, -1, -1, "CMOVBEr_r");
101 public static final x86 CMOVBEr_m = _op(0x0F4600, 3, -1, -1, "CMOVBEr_m");
102 public static final x86 CMOVEr_r = _op(0x0F4400, 3, -1, -1, "CMOVEr_r");
103 public static final x86 CMOVEr_m = _op(0x0F4400, 3, -1, -1, "CMOVEr_m");
104 public static final x86 CMOVGr_r = _op(0x0F4F00, 3, -1, -1, "CMOVGr_r");
105 public static final x86 CMOVGr_m = _op(0x0F4F00, 3, -1, -1, "CMOVGr_m");
106 public static final x86 CMOVGEr_r = _op(0x0F4D00, 3, -1, -1, "CMOVGEr_r");
107 public static final x86 CMOVGEr_m = _op(0x0F4D00, 3, -1, -1, "CMOVGEr_m");
108 public static final x86 CMOVLr_r = _op(0x0F4C00, 3, -1, -1, "CMOVLr_r");
109 public static final x86 CMOVLr_m = _op(0x0F4C00, 3, -1, -1, "CMOVLr_m");
110 public static final x86 CMOVLEr_r = _op(0x0F4E00, 3, -1, -1, "CMOVLEr_r");
111 public static final x86 CMOVLEr_m = _op(0x0F4E00, 3, -1, -1, "CMOVLEr_m");
112 public static final x86 CMOVNEr_r = _op(0x0F4500, 3, -1, -1, "CMOVNEr_r");
113 public static final x86 CMOVNEr_m = _op(0x0F4500, 3, -1, -1, "CMOVNEr_m");
114 public static final x86 CMOVNOr_r = _op(0x0F4100, 3, -1, -1, "CMOVNOr_r");
115 public static final x86 CMOVNOr_m = _op(0x0F4100, 3, -1, -1, "CMOVNOr_m");
116 public static final x86 CMOVNPr_r = _op(0x0F4B00, 3, -1, -1, "CMOVNPr_r");
117 public static final x86 CMOVNPr_m = _op(0x0F4B00, 3, -1, -1, "CMOVNPr_m");
118 public static final x86 CMOVNSr_r = _op(0x0F4900, 3, -1, -1, "CMOVNSr_r");
119 public static final x86 CMOVNSr_m = _op(0x0F4900, 3, -1, -1, "CMOVNSr_m");
120 public static final x86 CMOVOr_r = _op(0x0F4000, 3, -1, -1, "CMOVOr_r");
121 public static final x86 CMOVOr_m = _op(0x0F4000, 3, -1, -1, "CMOVOr_m");
122 public static final x86 CMOVPr_r = _op(0x0F4A00, 3, -1, -1, "CMOVPr_r");
123 public static final x86 CMOVPr_m = _op(0x0F4A00, 3, -1, -1, "CMOVPr_m");
124 public static final x86 CMOVSr_r = _op(0x0F4800, 3, -1, -1, "CMOVSr_r");
125 public static final x86 CMOVSr_m = _op(0x0F4800, 3, -1, -1, "CMOVSr_m");
126 public static final x86 CMP_ra_i8 = _op(0x3C, 1, UV, 1, "CMP_ra_i8");
127 public static final x86 CMP_ra_i32 = _op(0x3D, 1, UV, 1, "CMP_ra_i32");
128 public static final x86 CMP_r_i8 = _op(0x8038, 2, UV, 1, "CMP_r_i8");
129 public static final x86 CMP_r_i32 = _op(0x8138, 2, UV, 1, "CMP_r_i32");
130 public static final x86 CMP_r_r8 = _op(0x3A00, 2, UV, 1, "CMP_r_r8");
131 public static final x86 CMP_r_r32 = _op(0x3B00, 2, UV, 1, "CMP_r_r32");
132 public static final x86 CMP_r_m8 = _op(0x3A00, 2, UV, 2, "CMP_r_m8");
133 public static final x86 CMP_r_m32 = _op(0x3B00, 2, UV, 2, "CMP_r_m32");
134 public static final x86 CMP_m_i8 = _op(0x8038, 2, UV, 2, "CMP_m_i8");
135 public static final x86 CMP_m_i32 = _op(0x8138, 2, UV, 2, "CMP_m_i32");
136 public static final x86 CMP_m_r8 = _op(0x3800, 2, UV, 2, "CMP_m_r8");
137 public static final x86 CMP_m_r32 = _op(0x3900, 2, UV, 2, "CMP_m_r32");
138 public static final x86 CMPSB = _op(0xA6, 1, -1, -1, "CMPSB");
139 public static final x86 CMPSD = _op(0xA7, 1, -1, -1, "CMPSD");
140 public static final x86 CMPXCHG_8 = _op(0x0FB000, 3, -1, -1, "CMPXCHG_8");
141 public static final x86 CMPXCHG_32 = _op(0x0FB100, 3, -1, -1, "CMPXCHG_32");
142 public static final x86 CMPXCHG8B = _op(0x0FC708, 3, -1, -1, "CMPXCHG8B");
143 public static final x86 CPUID = _op(0x0FA2, 2, -1, -1, "CPUID");
144 public static final x86 CWD = _op(0x99, 1, -1, -1, "CWD");
145 public static final x86 DAA = _op(0x27, 1, -1, -1, "DAA");
146 public static final x86 DAS = _op(0x2F, 1, -1, -1, "DAS");
147 public static final x86 DEC_r8 = _op(0xFE08, 2, -1, -1, "DEC_r8");
148 public static final x86 DEC_r32 = _op(0x48, 1, -1, -1, "DEC_r32");
149 public static final x86 DEC_m8 = _op(0xFE08, 2, -1, -1, "DEC_m8");
150 public static final x86 DEC_m32 = _op(0xFF08, 2, -1, -1, "DEC_m32");
151 public static final x86 DIV_r8 = _op(0xF630, 2, -1, -1, "DIV_r8");
152 public static final x86 DIV_r32 = _op(0xF730, 2, -1, -1, "DIV_r32");
153 public static final x86 DIV_m8 = _op(0xF630, 2, -1, -1, "DIV_m8");
154 public static final x86 DIV_m32 = _op(0xF730, 2, -1, -1, "DIV_m32");
155 public static final x86 ENTER = _op(0xC8, 1, -1, -1, "ENTER");
156 public static final x86 EMMS = _op(0x0F77, 2, -1, -1, "EMMS");
157 public static final x86 F2XM1 = _op(0xD9F0, 2, -1, -1, "F2XM1");
158 public static final x86 FABS = _op(0xD9E1, 2, -1, -1, "FABS");
159 public static final x86 FADD_m32 = _op(0xD800, 2, -1, -1, "FADD_m32");
160 public static final x86 FADD_m64 = _op(0xDC00, 2, -1, -1, "FADD_m64");
161 public static final x86 FADD_s0_si = _op(0xD8C0, 2, -1, -1, "FADD_s0_si");
162 public static final x86 FADD_si_s0 = _op(0xDCC0, 2, -1, -1, "FADD_si_s0");
163 public static final x86 FADDP_si_s0 = _op(0xDEC0, 2, -1, -1, "FADDP_si_s0");
164 public static final x86 FIADD_m16 = _op(0xDE00, 2, -1, -1, "FIADD_m16");
165 public static final x86 FIADD_m32 = _op(0xDA00, 2, -1, -1, "FIADD_m32");
166 public static final x86 FBLD = _op(0xDF20, 2, -1, -1, "FBLD");
167 public static final x86 FBSTP = _op(0xDF30, 2, -1, -1, "FBSTP");
168 public static final x86 FCHS = _op(0xD9E0, 2, -1, -1, "FCHS");
169 public static final x86 FCLEX = _op(0x9BDBE2, 3, -1, -1, "FCLEX");
170 public static final x86 FNCLEX = _op(0xDBE2, 2, -1, -1, "FNCLEX");
171 public static final x86 FCMOVB = _op(0xDAC0, 2, -1, -1, "FCMOVB");
172 public static final x86 FCMOVE = _op(0xDAC8, 2, -1, -1, "FCMOVE");
173 public static final x86 FCMOVBE = _op(0xDAD0, 2, -1, -1, "FCMOVBE");
174 public static final x86 FCMOVU = _op(0xDAD8, 2, -1, -1, "FCMOVU");
175 public static final x86 FCMOVNB = _op(0xDBC0, 2, -1, -1, "FCMOVNB");
176 public static final x86 FCMOVNE = _op(0xDBC8, 2, -1, -1, "FCMOVNE");
177 public static final x86 FCMOVNBE = _op(0xDBD0, 2, -1, -1, "FCMOVNBE");
178 public static final x86 FCMOVNU = _op(0xDBD8, 2, -1, -1, "FCMOVNU");
179 public static final x86 FCOM_m32 = _op(0xD810, 2, -1, -1, "FCOM_m32");
180 public static final x86 FCOM_m64 = _op(0xDC10, 2, -1, -1, "FCOM_m64");
181 public static final x86 FCOM_si = _op(0xD8D0, 2, -1, -1, "FCOM_si");
182 public static final x86 FCOMP_m32 = _op(0xD818, 2, -1, -1, "FCOMP_m32");
183 public static final x86 FCOMP_m64 = _op(0xDC18, 2, -1, -1, "FCOMP_m64");
184 public static final x86 FCOMP_si = _op(0xD8D8, 2, -1, -1, "FCOMP_si");
185 public static final x86 FCOMPP = _op(0xDED9, 2, -1, -1, "FCOMPP");
186 public static final x86 FCOMI = _op(0xDBF0, 2, -1, -1, "FCOMI");
187 public static final x86 FCOMIP = _op(0xDFF0, 2, -1, -1, "FCOMIP");
188 public static final x86 FUCOMI = _op(0xDBE8, 2, -1, -1, "FUCOMI");
189 public static final x86 FUCOMIP = _op(0xDFE8, 2, -1, -1, "FUCOMIP");
190 public static final x86 FCOS = _op(0xD9FF, 2, -1, -1, "FCOS");
191 public static final x86 FDECSTP = _op(0xD9F6, 2, -1, -1, "FDECSTP");
192 public static final x86 FDIV_m32 = _op(0xD830, 2, -1, -1, "FDIV_m32");
193 public static final x86 FDIV_m64 = _op(0xDC30, 2, -1, -1, "FDIV_m64");
194 public static final x86 FDIV_s0_si = _op(0xD8F0, 2, -1, -1, "FDIV_s0_si");
195 public static final x86 FDIV_si_s0 = _op(0xDCF8, 2, -1, -1, "FDIV_si_s0");
196 public static final x86 FDIVP_si_s0 = _op(0xDEF8, 2, -1, -1, "FDIVP_si_s0");
197 public static final x86 FIDIV_m16 = _op(0xDE30, 2, -1, -1, "FIDIV_m16");
198 public static final x86 FIDIV_m32 = _op(0xDA30, 2, -1, -1, "FIDIV_m32");
199 public static final x86 FDIVR_m32 = _op(0xD838, 2, -1, -1, "FDIVR_m32");
200 public static final x86 FDIVR_m64 = _op(0xDC38, 2, -1, -1, "FDIVR_m64");
201 public static final x86 FDIVR_s0_si = _op(0xD8F8, 2, -1, -1, "FDIVR_s0_si");
202 public static final x86 FDIVR_si_s0 = _op(0xDCF0, 2, -1, -1, "FDIVR_si_s0");
203 public static final x86 FDIVRP_si_s0 = _op(0xDEF0, 2, -1, -1, "FDIVRP_si_s0");
204 public static final x86 FIDIVR_m16 = _op(0xDE38, 2, -1, -1, "FIDIVR_m16");
205 public static final x86 FIDIVR_m32 = _op(0xDA38, 2, -1, -1, "FIDIVR_m32");
206 public static final x86 FFREE = _op(0xDDC0, 2, -1, -1, "FFREE");
207 public static final x86 FICOM_m16 = _op(0xDE10, 2, -1, -1, "FICOM_m16");
208 public static final x86 FICOM_m32 = _op(0xDA10, 2, -1, -1, "FICOM_m32");
209 public static final x86 FICOMP_m16 = _op(0xDE18, 2, -1, -1, "FICOMP_m16");
210 public static final x86 FICOMP_m32 = _op(0xDA18, 2, -1, -1, "FICOMP_m32");
211 public static final x86 FILD_m16 = _op(0xDF00, 2, -1, -1, "FILD_m16");
212 public static final x86 FILD_m32 = _op(0xDB00, 2, -1, -1, "FILD_m32");
213 public static final x86 FILD_m64 = _op(0xDF28, 2, -1, -1, "FILD_m64");
214 public static final x86 FINCSTP = _op(0xD9F7, 2, -1, -1, "FINCSTP");
215 public static final x86 FINIT = _op(0x9BDBE3, 3, -1, -1, "FINIT");
216 public static final x86 FNINIT = _op(0xDBE3, 2, -1, -1, "FNINIT");
217 public static final x86 FIST_m16 = _op(0xDF10, 2, -1, -1, "FIST_m16");
218 public static final x86 FIST_m32 = _op(0xDB10, 2, -1, -1, "FIST_m32");
219 public static final x86 FISTP_m16 = _op(0xDF18, 2, -1, -1, "FISTP_m16");
220 public static final x86 FISTP_m32 = _op(0xDB18, 2, -1, -1, "FISTP_m32");
221 public static final x86 FISTP_m64 = _op(0xDF38, 2, -1, -1, "FISTP_m64");
222 public static final x86 FLD_m32 = _op(0xD900, 2, -1, -1, "FLD_m32");
223 public static final x86 FLD_m64 = _op(0xDD00, 2, -1, -1, "FLD_m64");
224 public static final x86 FLD_m80 = _op(0xDB28, 2, -1, -1, "FLD_m80");
225 public static final x86 FLD1 = _op(0xD9E8, 2, -1, -1, "FLD1");
226 public static final x86 FLDL2T = _op(0xD9E9, 2, -1, -1, "FLDL2T");
227 public static final x86 FLDL2E = _op(0xD9EA, 2, -1, -1, "FLDL2E");
228 public static final x86 FLDPI = _op(0xD9EB, 2, -1, -1, "FLDPI");
229 public static final x86 FLDLG2 = _op(0xD9EC, 2, -1, -1, "FLDLG2");
230 public static final x86 FLDLN2 = _op(0xD9ED, 2, -1, -1, "FLDLN2");
231 public static final x86 FLDZ = _op(0xD9EE, 2, -1, -1, "FLDZ");
232 public static final x86 FLDCW = _op(0xD928, 2, -1, -1, "FLDCW");
233 public static final x86 FLDENV = _op(0xD920, 2, -1, -1, "FLDENV");
234 public static final x86 FMUL_m32 = _op(0xD808, 2, -1, -1, "FMUL_m32");
235 public static final x86 FMUL_m64 = _op(0xDC08, 2, -1, -1, "FMUL_m64");
236 public static final x86 FMUL_s0_si = _op(0xD8C8, 2, -1, -1, "FMUL_s0_si");
237 public static final x86 FMUL_si_s0 = _op(0xDCC8, 2, -1, -1, "FMUL_si_s0");
238 public static final x86 FMULP_si_s0 = _op(0xDEC8, 2, -1, -1, "FMULP_si_s0");
239 public static final x86 FIMUL_m16 = _op(0xDE08, 2, -1, -1, "FIMUL_m16");
240 public static final x86 FIMUL_m32 = _op(0xDA08, 2, -1, -1, "FIMUL_m32");
241 public static final x86 FNOP = _op(0xD9D0, 2, -1, -1, "FNOP");
242 public static final x86 FPATAN = _op(0xD9F3, 2, -1, -1, "FPATAN");
243 public static final x86 FPREM = _op(0xD9F8, 2, -1, -1, "FPREM");
244 public static final x86 FPREM1 = _op(0xD9F5, 2, -1, -1, "FPREM1");
245 public static final x86 FPTAN = _op(0xD9F2, 2, -1, -1, "FPTAN");
246 public static final x86 FRNDINT = _op(0xD9FC, 2, -1, -1, "FRNDINT");
247 public static final x86 FRSTOR = _op(0xDD20, 2, -1, -1, "FRSTOR");
248 public static final x86 FSAVE = _op(0x9BDD30, 3, -1, -1, "FSAVE");
249 public static final x86 FNSAVE = _op(0xDD30, 2, -1, -1, "FNSAVE");
250 public static final x86 FSCALE = _op(0xD9FD, 2, -1, -1, "FSCALE");
251 public static final x86 FSIN = _op(0xD9FE, 2, -1, -1, "FSIN");
252 public static final x86 FSINCOS = _op(0xD9FB, 2, -1, -1, "FSINCOS");
253 public static final x86 FSQRT = _op(0xD9FA, 2, -1, -1, "FSQRT");
254 public static final x86 FST_m32 = _op(0xD910, 2, -1, -1, "FST_m32");
255 public static final x86 FST_m64 = _op(0xDD10, 2, -1, -1, "FST_m64");
256 public static final x86 FST_si = _op(0xDDD0, 2, -1, -1, "FST_si");
257 public static final x86 FSTP_m32 = _op(0xD918, 2, -1, -1, "FSTP_m32");
258 public static final x86 FSTP_m64 = _op(0xDD18, 2, -1, -1, "FSTP_m64");
259 public static final x86 FSTP_m80 = _op(0xDB38, 2, -1, -1, "FSTP_m80");
260 public static final x86 FSTP_si = _op(0xDDD8, 2, -1, -1, "FSTP_si");
261 public static final x86 FSTCW = _op(0x9BD938, 3, -1, -1, "FSTCW");
262 public static final x86 FNSTCW = _op(0xD938, 2, -1, -1, "FNSTCW");
263 public static final x86 FSTENV = _op(0x9BD930, 3, -1, -1, "FSTENV");
264 public static final x86 FNSTENV = _op(0xD930, 2, -1, -1, "FNSTENV");
265 public static final x86 FSTSW_m = _op(0x9BDD38, 3, -1, -1, "FSTSW_m");
266 public static final x86 FSTSW_ax = _op(0x9BDFE0, 3, -1, -1, "FSTSW_ax");
267 public static final x86 FNSTSW_m = _op(0xDD38, 2, -1, -1, "FNSTSW_m");
268 public static final x86 FNSTSW_ax = _op(0xDFE0, 2, -1, -1, "FNSTSW_ax");
269 public static final x86 FSUB_m32 = _op(0xD820, 2, -1, -1, "FSUB_m32");
270 public static final x86 FSUB_m64 = _op(0xDC20, 2, -1, -1, "FSUB_m64");
271 public static final x86 FSUB_s0_si = _op(0xD8E0, 2, -1, -1, "FSUB_s0_si");
272 public static final x86 FSUB_si_s0 = _op(0xDCE8, 2, -1, -1, "FSUB_si_s0");
273 public static final x86 FSUBP_si_s0 = _op(0xDEE8, 2, -1, -1, "FSUBP_si_s0");
274 public static final x86 FISUB_m16 = _op(0xDE20, 2, -1, -1, "FISUB_m16");
275 public static final x86 FISUB_m32 = _op(0xDA20, 2, -1, -1, "FISUB_m32");
276 public static final x86 FSUBR_m32 = _op(0xD828, 2, -1, -1, "FSUBR_m32");
277 public static final x86 FSUBR_m64 = _op(0xDC28, 2, -1, -1, "FSUBR_m64");
278 public static final x86 FSUBR_s0_si = _op(0xD8E8, 2, -1, -1, "FSUBR_s0_si");
279 public static final x86 FSUBR_si_s0 = _op(0xDCE0, 2, -1, -1, "FSUBR_si_s0");
280 public static final x86 FSUBRP_si_s0 = _op(0xDEE0, 2, -1, -1, "FSUBRP_si_s0");
281 public static final x86 FISUBR_m16 = _op(0xDE28, 2, -1, -1, "FISUBR_m16");
282 public static final x86 FISUBR_m32 = _op(0xDA28, 2, -1, -1, "FISUBR_m32");
283 public static final x86 FTST = _op(0xD9E4, 2, -1, -1, "FTST");
284 public static final x86 FUCOM_si = _op(0xDDE0, 2, -1, -1, "FUCOM_si");
285 public static final x86 FUCOMP_si = _op(0xDDE8, 2, -1, -1, "FUCOMP_si");
286 public static final x86 FUCOMPP = _op(0xDAE9, 2, -1, -1, "FUCOMPP");
287 public static final x86 FXAM = _op(0xD9E5, 2, -1, -1, "FXAM");
288 public static final x86 FXCH_si = _op(0xD9C8, 2, -1, -1, "FXCH_si");
289 public static final x86 FXTRACT = _op(0xD9F4, 2, -1, -1, "FXTRACT");
290 public static final x86 FYL2X = _op(0xD9F1, 2, -1, -1, "FYL2X");
291 public static final x86 FYL2XP1 = _op(0xD9F9, 2, -1, -1, "FYL2XP1");
292 public static final x86 HLT = _op(0xF4, 1, -1, -1, "HLT");
293 public static final x86 IDIV_r8 = _op(0xF638, 2, -1, -1, "IDIV_r8");
294 public static final x86 IDIV_r32 = _op(0xF738, 2, -1, -1, "IDIV_r32");
295 public static final x86 IDIV_m8 = _op(0xF638, 2, -1, -1, "IDIV_m8");
296 public static final x86 IDIV_m32 = _op(0xF738, 2, -1, -1, "IDIV_m32");
297 public static final x86 IMUL_rda_r8 = _op(0xF628, 2, -1, -1, "IMUL_rda_r8");
298 public static final x86 IMUL_rda_r32 = _op(0xF728, 2, -1, -1, "IMUL_rda_r32");
299 public static final x86 IMUL_rda_m8 = _op(0xF628, 2, -1, -1, "IMUL_rda_m8");
300 public static final x86 IMUL_rda_m32 = _op(0xF728, 2, -1, -1, "IMUL_rda_m32");
301 public static final x86 IMUL_r_i8 = _op(0x6B00, 2, -1, -1, "IMUL_r_i8");
302 public static final x86 IMUL_r_i32 = _op(0x6900, 2, -1, -1, "IMUL_r_i32");
303 public static final x86 IMUL_r_r32 = _op(0x0FAF00, 3, -1, -1, "IMUL_r_r32");
304 public static final x86 IMUL_r_r32_i8 = _op(0x6B00, 2, -1, -1, "IMUL_r_r32_i8");
305 public static final x86 IMUL_r_r32_i32 = _op(0x6900, 2, -1, -1, "IMUL_r_r32_i32");
306 public static final x86 IMUL_r_m32 = _op(0x0FAF00, 3, -1, -1, "IMUL_r_m32");
307 public static final x86 IMUL_r_m32_i8 = _op(0x6B00, 2, -1, -1, "IMUL_r_m32_i8");
308 public static final x86 IMUL_r_m32_i32 = _op(0x6900, 2, -1, -1, "IMUL_r_m32_i32");
309 public static final x86 IN_imm8 = _op(0xE4, 1, -1, -1, "IN_imm8");
310 public static final x86 IN_ra8 = _op(0xEC, 1, -1, -1, "IN_ra8");
311 public static final x86 IN_ra32 = _op(0xED, 1, -1, -1, "IN_ra32");
312 public static final x86 INC_r8 = _op(0xFE00, 2, -1, -1, "INC_r8");
313 public static final x86 INC_m8 = _op(0xFE00, 2, -1, -1, "INC_m8");
314 public static final x86 INC_m32 = _op(0xFF00, 2, -1, -1, "INC_m32");
315 public static final x86 INC_r32 = _op(0x40, 1, -1, -1, "INC_r32");
316 public static final x86 INS_m8_rd = _op(0x6C, 1, -1, -1, "INS_m8_rd");
317 public static final x86 INS_m32_rd = _op(0x6D, 1, -1, -1, "INS_m32_rd");
318 public static final x86 INT_3 = _op(0xCC, 1, -1, -1, "INT_3");
319 public static final x86 INT_i8 = _op(0xCD, 1, -1, -1, "INT_i8");
320 public static final x86 INTO = _op(0xCE, 1, -1, -1, "INTO");
321 public static final x86 INVD = _op(0x0F08, 2, -1, -1, "INVD");
322 public static final x86 INVLPG = _op(0x0F0138, 3, -1, -1, "INVLPG");
323 public static final x86 IRET = _op(0xCF, 1, -1, -1, "IRET");
324 public static final x86 JO = _op(0x00, 1, -1, -1, "JO");
325 public static final x86 JNO = _op(0x01, 1, -1, -1, "JNO");
326 public static final x86 JB = _op(0x02, 1, -1, -1, "JB");
327 public static final x86 JAE = _op(0x03, 1, -1, -1, "JAE");
328 public static final x86 JE = _op(0x04, 1, -1, -1, "JE");
329 public static final x86 JNE = _op(0x05, 1, -1, -1, "JNE");
330 public static final x86 JBE = _op(0x06, 1, -1, -1, "JBE");
331 public static final x86 JA = _op(0x07, 1, -1, -1, "JA");
332 public static final x86 JS = _op(0x08, 1, -1, -1, "JS");
333 public static final x86 JNS = _op(0x09, 1, -1, -1, "JNS");
334 public static final x86 JP = _op(0x0A, 1, -1, -1, "JP");
335 public static final x86 JNP = _op(0x0B, 1, -1, -1, "JNP");
336 public static final x86 JL = _op(0x0C, 1, -1, -1, "JL");
337 public static final x86 JGE = _op(0x0D, 1, -1, -1, "JGE");
338 public static final x86 JLE = _op(0x0E, 1, -1, -1, "JLE");
339 public static final x86 JG = _op(0x0F, 1, -1, -1, "JG");
340 public static final x86 JCXZ_8 = _op(0xE3, 1, -1, -1, "JCXZ_8");
341 public static final x86 JMP = _op(0xE0, 1, -1, -1, "JMP");
342 public static final x86 JMP_r = _op(0xFF20, 2, -1, -1, "JMP_r");
343 public static final x86 JMP_abs = _op(0xEA, 1, -1, -1, "JMP_abs");
344 public static final x86 JMP_m = _op(0xFF20, 2, -1, -1, "JMP_m");
345 public static final x86 LAHF = _op(0x9F, 1, -1, -1, "LAHF");
346 public static final x86 LAR_r_r = _op(0x0F0200, 3, -1, -1, "LAR_r_r");
347 public static final x86 LAR_r_m = _op(0x0F0200, 3, -1, -1, "LAR_r_m");
348 public static final x86 LDS = _op(0xC500, 2, -1, -1, "LDS");
349 public static final x86 LSS = _op(0x0FB200, 3, -1, -1, "LSS");
350 public static final x86 LES = _op(0xC400, 2, -1, -1, "LES");
351 public static final x86 LFS = _op(0x0FB400, 3, -1, -1, "LFS");
352 public static final x86 LGS = _op(0x0FB500, 3, -1, -1, "LGS");
353 public static final x86 LEA = _op(0x8D00, 2, -1, -1, "LEA");
354 public static final x86 LEAVE = _op(0xC9, 1, -1, -1, "LEAVE");
355 public static final x86 LGDT = _op(0x0F0110, 3, -1, -1, "LGDT");
356 public static final x86 LIDT = _op(0x0F0118, 3, -1, -1, "LIDT");
357 public static final x86 LLDT = _op(0x0F0010, 3, -1, -1, "LLDT");
358 public static final x86 LMSW = _op(0x0F0130, 3, -1, -1, "LMSW");
359 public static final x86 LOCK = _op(0xF0, 1, -1, -1, "LOCK");
360 public static final x86 LODS_m8 = _op(0xAC, 1, -1, -1, "LODS_m8");
361 public static final x86 LODS_m32 = _op(0xAD, 1, -1, -1, "LODS_m32");
362 public static final x86 LOOP = _op(0xE2, 1, -1, -1, "LOOP");
363 public static final x86 LOOPE = _op(0xE1, 1, -1, -1, "LOOPE");
364 public static final x86 LOOPNE = _op(0xE0, 1, -1, -1, "LOOPNE");
365 public static final x86 LSL_r_r = _op(0x0F0300, 3, -1, -1, "LSL_r_r");
366 public static final x86 LSL_r_m = _op(0x0F0300, 3, -1, -1, "LSL_r_m");
367 public static final x86 LTR_r = _op(0x0F0018, 3, -1, -1, "LTR_r");
368 public static final x86 LTR_m = _op(0x0F0018, 3, -1, -1, "LTR_m");
369 public static final x86 MOV_r_m8 = _op(0x8A00, 2, -1, -1, "MOV_r_m8");
370 public static final x86 MOV_r_m32 = _op(0x8B00, 2, -1, -1, "MOV_r_m32");
371 public static final x86 MOV_r_r8 = _op(0x8A00, 2, -1, -1, "MOV_r_r8");
372 public static final x86 MOV_r_r32 = _op(0x8B00, 2, -1, -1, "MOV_r_r32");
373 public static final x86 MOV_m_r8 = _op(0x8800, 2, -1, -1, "MOV_m_r8");
374 public static final x86 MOV_m_r32 = _op(0x8900, 2, -1, -1, "MOV_m_r32");
375 public static final x86 MOV_r_sr = _op(0x8C00, 2, -1, -1, "MOV_r_sr");
376 public static final x86 MOV_m_sr = _op(0x8C00, 2, -1, -1, "MOV_m_sr");
377 public static final x86 MOV_sr_r = _op(0x8E00, 2, -1, -1, "MOV_sr_r");
378 public static final x86 MOV_sr_m = _op(0x8E00, 2, -1, -1, "MOV_sr_m");
379 public static final x86 MOV_ra_mo8 = _op(0xA0, 1, -1, -1, "MOV_ra_mo8");
380 public static final x86 MOV_ra_mo32 = _op(0xA1, 1, -1, -1, "MOV_ra_mo32");
381 public static final x86 MOV_mo8_ra = _op(0xA2, 1, -1, -1, "MOV_mo8_ra");
382 public static final x86 MOV_mo32_ra = _op(0xA3, 1, -1, -1, "MOV_mo32_ra");
383 public static final x86 MOV_r_i8 = _op(0xB0, 1, -1, -1, "MOV_r_i8");
384 public static final x86 MOV_r_i32 = _op(0xB8, 1, -1, -1, "MOV_r_i32");
385 public static final x86 MOV_m_i8 = _op(0xC600, 2, -1, -1, "MOV_m_i8");
386 public static final x86 MOV_m_i32 = _op(0xC700, 2, -1, -1, "MOV_m_i32");
387 public static final x86 MOV_cr_r = _op(0x0F2200, 3, -1, -1, "MOV_cr_r");
388 public static final x86 MOV_r_cr = _op(0x0F2000, 3, -1, -1, "MOV_r_cr");
389 public static final x86 MOV_r_dr = _op(0x0F2100, 3, -1, -1, "MOV_r_dr");
390 public static final x86 MOV_dr_r = _op(0x0F2300, 3, -1, -1, "MOV_dr_r");
391 public static final x86 MOVD_mm_r = _op(0x0F6E00, 3, -1, -1, "MOVD_mm_r");
392 public static final x86 MOVD_mm_m = _op(0x0F6E00, 3, -1, -1, "MOVD_mm_m");
393 public static final x86 MOVD_r_mm = _op(0x0F7E00, 3, -1, -1, "MOVD_r_mm");
394 public static final x86 MOVD_m_mm = _op(0x0F7E00, 3, -1, -1, "MOVD_m_mm");
395 public static final x86 MOVQ_mm_mm = _op(0x0F6F00, 3, -1, -1, "MOVQ_mm_mm");
396 public static final x86 MOVQ_mm_m = _op(0x0F6F00, 3, -1, -1, "MOVQ_mm_m");
397 public static final x86 MOVQ_m_mm = _op(0x0F7F00, 3, -1, -1, "MOVQ_m_mm");
398 public static final x86 MOVS_8 = _op(0xA4, 1, -1, -1, "MOVS_8");
399 public static final x86 MOVS_32 = _op(0xA5, 1, -1, -1, "MOVS_32");
400 public static final x86 MOVSX_r_r8 = _op(0x0FBE00, 3, -1, -1, "MOVSX_r_r8");
401 public static final x86 MOVSX_r_m8 = _op(0x0FBE00, 3, -1, -1, "MOVSX_r_m8");
402 public static final x86 MOVSX_r_r16 = _op(0x0FBF00, 3, -1, -1, "MOVSX_r_r16");
403 public static final x86 MOVSX_r_m16 = _op(0x0FBF00, 3, -1, -1, "MOVSX_r_m16");
404 public static final x86 MOVZX_r_r8 = _op(0x0FB600, 3, -1, -1, "MOVZX_r_r8");
405 public static final x86 MOVZX_r_m8 = _op(0x0FB600, 3, -1, -1, "MOVZX_r_m8");
406 public static final x86 MOVZX_r_r16 = _op(0x0FB700, 3, -1, -1, "MOVZX_r_r16");
407 public static final x86 MOVZX_r_m16 = _op(0x0FB700, 3, -1, -1, "MOVZX_r_m16");
408 public static final x86 MUL_rda_r8 = _op(0xF620, 2, -1, -1, "MUL_rda_r8");
409 public static final x86 MUL_rda_r32 = _op(0xF720, 2, -1, -1, "MUL_rda_r32");
410 public static final x86 MUL_rda_m8 = _op(0xF620, 2, -1, -1, "MUL_rda_m8");
411 public static final x86 MUL_rda_m32 = _op(0xF720, 2, -1, -1, "MUL_rda_m32");
412 public static final x86 NEG_r8 = _op(0xF618, 2, -1, -1, "NEG_r8");
413 public static final x86 NEG_m8 = _op(0xF618, 2, -1, -1, "NEG_m8");
414 public static final x86 NEG_r32 = _op(0xF718, 2, -1, -1, "NEG_r32");
415 public static final x86 NEG_m32 = _op(0xF718, 2, -1, -1, "NEG_m32");
416 public static final x86 NOP = _op(0x90, 1, -1, -1, "NOP");
417 public static final x86 NOT_r8 = _op(0xF610, 2, -1, -1, "NOT_r8");
418 public static final x86 NOT_m8 = _op(0xF610, 2, -1, -1, "NOT_m8");
419 public static final x86 NOT_r32 = _op(0xF710, 2, -1, -1, "NOT_r32");
420 public static final x86 NOT_m32 = _op(0xF710, 2, -1, -1, "NOT_m32");
421 public static final x86 OR_ra_i8 = _op(0x0C, 1, UV, 1, "OR_ra_i8");
422 public static final x86 OR_ra_i32 = _op(0x0D, 1, UV, 1, "OR_ra_i32");
423 public static final x86 OR_r_i8 = _op(0x8008, 2, UV, 1, "OR_r_i8");
424 public static final x86 OR_r_i32 = _op(0x8108, 2, UV, 1, "OR_r_i32");
425 public static final x86 OR_m_i8 = _op(0x8008, 2, UV, 4, "OR_m_i8");
426 public static final x86 OR_m_i32 = _op(0x8108, 2, UV, 4, "OR_m_i32");
427 public static final x86 OR_r_m8 = _op(0x0A00, 2, UV, 2, "OR_r_m8");
428 public static final x86 OR_r_m32 = _op(0x0B00, 2, UV, 2, "OR_r_m32");
429 public static final x86 OR_m_r8 = _op(0x0800, 2, UV, 4, "OR_m_r8");
430 public static final x86 OR_m_r32 = _op(0x0900, 2, UV, 4, "OR_m_r32");
431 public static final x86 OR_r_r8 = _op(0x0A00, 2, UV, 1, "OR_r_r8");
432 public static final x86 OR_r_r32 = _op(0x0B00, 2, UV, 1, "OR_r_r32");
433 public static final x86 OUT_i8_ra8 = _op(0xE6, 1, -1, -1, "OUT_i8_ra8");
434 public static final x86 OUT_i8_ra32 = _op(0xE7, 1, -1, -1, "OUT_i8_ra32");
435 public static final x86 OUT_rd_ra8 = _op(0xEE, 1, -1, -1, "OUT_rd_ra8");
436 public static final x86 OUT_rd_ra32 = _op(0xEF, 1, -1, -1, "OUT_rd_ra32");
437 public static final x86 OUTS_rd_m8 = _op(0x6E, 1, -1, -1, "OUTS_rd_m8");
438 public static final x86 OUTS_rd_m32 = _op(0x6F, 1, -1, -1, "OUTS_rd_m32");
439 public static final x86 PACKSSWB_mm_mm = _op(0x0F6300, 3, -1, -1, "PACKSSWB_mm_mm");
440 public static final x86 PACKSSWB_mm_m = _op(0x0F6300, 3, -1, -1, "PACKSSWB_mm_m");
441 public static final x86 PACKSSDW_mm_mm = _op(0x0F6B00, 3, -1, -1, "PACKSSDW_mm_mm");
442 public static final x86 PACKSSDW_mm_m = _op(0x0F6B00, 3, -1, -1, "PACKSSDW_mm_m");
443 public static final x86 PACKUSWB_mm_mm = _op(0x0F6700, 3, -1, -1, "PACKUSWB_mm_mm");
444 public static final x86 PACKUSWB_mm_m = _op(0x0F6700, 3, -1, -1, "PACKUSWB_mm_m");
445 public static final x86 PADDB_mm_mm = _op(0x0FFC00, 3, -1, -1, "PADDB_mm_mm");
446 public static final x86 PADDW_mm_mm = _op(0x0FFD00, 3, -1, -1, "PADDW_mm_mm");
447 public static final x86 PADDD_mm_mm = _op(0x0FFE00, 3, -1, -1, "PADDD_mm_mm");
448 public static final x86 PADDB_mm_m = _op(0x0FFC00, 3, -1, -1, "PADDB_mm_m");
449 public static final x86 PADDW_mm_m = _op(0x0FFD00, 3, -1, -1, "PADDW_mm_m");
450 public static final x86 PADDD_mm_m = _op(0x0FFE00, 3, -1, -1, "PADDD_mm_m");
451 public static final x86 PADDSB_mm_mm = _op(0x0FEC00, 3, -1, -1, "PADDSB_mm_mm");
452 public static final x86 PADDSW_mm_mm = _op(0x0FED00, 3, -1, -1, "PADDSW_mm_mm");
453 public static final x86 PADDSB_mm_m = _op(0x0FEC00, 3, -1, -1, "PADDSB_mm_m");
454 public static final x86 PADDSW_mm_m = _op(0x0FED00, 3, -1, -1, "PADDSW_mm_m");
455 public static final x86 PADDUSB_mm_mm = _op(0x0FDC00, 3, -1, -1, "PADDUSB_mm_mm");
456 public static final x86 PADDUSW_mm_mm = _op(0x0FDD00, 3, -1, -1, "PADDUSW_mm_mm");
457 public static final x86 PADDUSB_mm_m = _op(0x0FDC00, 3, -1, -1, "PADDUSB_mm_m");
458 public static final x86 PADDUSW_mm_m = _op(0x0FDD00, 3, -1, -1, "PADDUSW_mm_m");
459 public static final x86 PAND_mm_mm = _op(0x0FDB00, 3, -1, -1, "PAND_mm_mm");
460 public static final x86 PAND_mm_m = _op(0x0FDB00, 3, -1, -1, "PAND_mm_m");
461 public static final x86 PANDN_mm_mm = _op(0x0FDF00, 3, -1, -1, "PANDN_mm_mm");
462 public static final x86 PANDN_mm_m = _op(0x0FDF00, 3, -1, -1, "PANDN_mm_m");
463 public static final x86 PCMPEQB_mm_mm = _op(0x0F7400, 3, -1, -1, "PCMPEQB_mm_mm");
464 public static final x86 PCMPEQW_mm_mm = _op(0x0F7500, 3, -1, -1, "PCMPEQW_mm_mm");
465 public static final x86 PCMPEQD_mm_mm = _op(0x0F7600, 3, -1, -1, "PCMPEQD_mm_mm");
466 public static final x86 PCMPEQB_mm_m = _op(0x0F7400, 3, -1, -1, "PCMPEQB_mm_m");
467 public static final x86 PCMPEQW_mm_m = _op(0x0F7500, 3, -1, -1, "PCMPEQW_mm_m");
468 public static final x86 PCMPEQD_mm_m = _op(0x0F7600, 3, -1, -1, "PCMPEQD_mm_m");
469 public static final x86 PCMPGTB_mm_mm = _op(0x0F6400, 3, -1, -1, "PCMPGTB_mm_mm");
470 public static final x86 PCMPGTW_mm_mm = _op(0x0F6500, 3, -1, -1, "PCMPGTW_mm_mm");
471 public static final x86 PCMPGTD_mm_mm = _op(0x0F6600, 3, -1, -1, "PCMPGTD_mm_mm");
472 public static final x86 PCMPGTB_mm_m = _op(0x0F6400, 3, -1, -1, "PCMPGTB_mm_m");
473 public static <