github.com/rsc/go@v0.0.0-20150416155037-e040fd465409/src/cmd/old6a/lex.go (about) 1 // Inferno utils/6a/lex.c 2 // http://code.google.com/p/inferno-os/source/browse/utils/6a/lex.c 3 // 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) 6 // Portions Copyright © 1997-1999 Vita Nuova Limited 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com) 8 // Portions Copyright © 2004,2006 Bruce Ellis 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others 11 // Portions Copyright © 2009 The Go Authors. All rights reserved. 12 // 13 // Permission is hereby granted, free of charge, to any person obtaining a copy 14 // of this software and associated documentation files (the "Software"), to deal 15 // in the Software without restriction, including without limitation the rights 16 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 // copies of the Software, and to permit persons to whom the Software is 18 // furnished to do so, subject to the following conditions: 19 // 20 // The above copyright notice and this permission notice shall be included in 21 // all copies or substantial portions of the Software. 22 // 23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 // THE SOFTWARE. 30 31 //go:generate go tool yacc a.y 32 33 package main 34 35 import ( 36 "cmd/internal/asm" 37 "cmd/internal/obj" 38 "cmd/internal/obj/x86" 39 ) 40 41 var ( 42 yyerror = asm.Yyerror 43 nullgen obj.Addr 44 stmtline int32 45 ) 46 47 func main() { 48 cinit() 49 50 asm.LSCONST = LSCONST 51 asm.LCONST = LCONST 52 asm.LFCONST = LFCONST 53 asm.LNAME = LNAME 54 asm.LVAR = LVAR 55 asm.LLAB = LLAB 56 57 asm.Thechar = '6' 58 asm.Thestring = "amd64" 59 asm.Thelinkarch = &x86.Linkamd64 60 asm.Arches = map[string]*obj.LinkArch{ 61 "amd64p32": &x86.Linkamd64p32, 62 } 63 64 asm.Lexinit = lexinit 65 asm.Cclean = cclean 66 asm.Yyparse = yyparse 67 68 asm.Main() 69 } 70 71 type yy struct{} 72 73 func (yy) Lex(v *yySymType) int { 74 var av asm.Yylval 75 tok := asm.Yylex(&av) 76 v.sym = av.Sym 77 v.lval = av.Lval 78 v.sval = av.Sval 79 v.dval = av.Dval 80 return tok 81 } 82 83 func (yy) Error(msg string) { 84 asm.Yyerror("%s", msg) 85 } 86 87 func yyparse() { 88 yyParse(yy{}) 89 } 90 91 var lexinit = []asm.Lextab{ 92 {"SP", LSP, obj.NAME_AUTO}, 93 {"SB", LSB, obj.NAME_EXTERN}, 94 {"FP", LFP, obj.NAME_PARAM}, 95 {"PC", LPC, obj.TYPE_BRANCH}, 96 97 {"AL", LBREG, x86.REG_AL}, 98 {"CL", LBREG, x86.REG_CL}, 99 {"DL", LBREG, x86.REG_DL}, 100 {"BL", LBREG, x86.REG_BL}, 101 /* "SPB", LBREG, REG_SPB, */ 102 {"SIB", LBREG, x86.REG_SIB}, 103 {"DIB", LBREG, x86.REG_DIB}, 104 {"BPB", LBREG, x86.REG_BPB}, 105 {"R8B", LBREG, x86.REG_R8B}, 106 {"R9B", LBREG, x86.REG_R9B}, 107 {"R10B", LBREG, x86.REG_R10B}, 108 {"R11B", LBREG, x86.REG_R11B}, 109 {"R12B", LBREG, x86.REG_R12B}, 110 {"R13B", LBREG, x86.REG_R13B}, 111 {"R14B", LBREG, x86.REG_R14B}, 112 {"R15B", LBREG, x86.REG_R15B}, 113 {"AH", LBREG, x86.REG_AH}, 114 {"CH", LBREG, x86.REG_CH}, 115 {"DH", LBREG, x86.REG_DH}, 116 {"BH", LBREG, x86.REG_BH}, 117 {"AX", LLREG, x86.REG_AX}, 118 {"CX", LLREG, x86.REG_CX}, 119 {"DX", LLREG, x86.REG_DX}, 120 {"BX", LLREG, x86.REG_BX}, 121 122 /* "SP", LLREG, REG_SP, */ 123 {"BP", LLREG, x86.REG_BP}, 124 {"SI", LLREG, x86.REG_SI}, 125 {"DI", LLREG, x86.REG_DI}, 126 {"R8", LLREG, x86.REG_R8}, 127 {"R9", LLREG, x86.REG_R9}, 128 {"R10", LLREG, x86.REG_R10}, 129 {"R11", LLREG, x86.REG_R11}, 130 {"R12", LLREG, x86.REG_R12}, 131 {"R13", LLREG, x86.REG_R13}, 132 {"R14", LLREG, x86.REG_R14}, 133 {"R15", LLREG, x86.REG_R15}, 134 {"RARG", LLREG, x86.REGARG}, 135 {"F0", LFREG, x86.REG_F0 + 0}, 136 {"F1", LFREG, x86.REG_F0 + 1}, 137 {"F2", LFREG, x86.REG_F0 + 2}, 138 {"F3", LFREG, x86.REG_F0 + 3}, 139 {"F4", LFREG, x86.REG_F0 + 4}, 140 {"F5", LFREG, x86.REG_F0 + 5}, 141 {"F6", LFREG, x86.REG_F0 + 6}, 142 {"F7", LFREG, x86.REG_F0 + 7}, 143 {"M0", LMREG, x86.REG_M0 + 0}, 144 {"M1", LMREG, x86.REG_M0 + 1}, 145 {"M2", LMREG, x86.REG_M0 + 2}, 146 {"M3", LMREG, x86.REG_M0 + 3}, 147 {"M4", LMREG, x86.REG_M0 + 4}, 148 {"M5", LMREG, x86.REG_M0 + 5}, 149 {"M6", LMREG, x86.REG_M0 + 6}, 150 {"M7", LMREG, x86.REG_M0 + 7}, 151 {"X0", LXREG, x86.REG_X0 + 0}, 152 {"X1", LXREG, x86.REG_X0 + 1}, 153 {"X2", LXREG, x86.REG_X0 + 2}, 154 {"X3", LXREG, x86.REG_X0 + 3}, 155 {"X4", LXREG, x86.REG_X0 + 4}, 156 {"X5", LXREG, x86.REG_X0 + 5}, 157 {"X6", LXREG, x86.REG_X0 + 6}, 158 {"X7", LXREG, x86.REG_X0 + 7}, 159 {"X8", LXREG, x86.REG_X0 + 8}, 160 {"X9", LXREG, x86.REG_X0 + 9}, 161 {"X10", LXREG, x86.REG_X0 + 10}, 162 {"X11", LXREG, x86.REG_X0 + 11}, 163 {"X12", LXREG, x86.REG_X0 + 12}, 164 {"X13", LXREG, x86.REG_X0 + 13}, 165 {"X14", LXREG, x86.REG_X0 + 14}, 166 {"X15", LXREG, x86.REG_X0 + 15}, 167 {"CS", LSREG, x86.REG_CS}, 168 {"SS", LSREG, x86.REG_SS}, 169 {"DS", LSREG, x86.REG_DS}, 170 {"ES", LSREG, x86.REG_ES}, 171 {"FS", LSREG, x86.REG_FS}, 172 {"GS", LSREG, x86.REG_GS}, 173 {"GDTR", LBREG, x86.REG_GDTR}, 174 {"IDTR", LBREG, x86.REG_IDTR}, 175 {"LDTR", LBREG, x86.REG_LDTR}, 176 {"MSW", LBREG, x86.REG_MSW}, 177 {"TASK", LBREG, x86.REG_TASK}, 178 {"CR0", LBREG, x86.REG_CR + 0}, 179 {"CR1", LBREG, x86.REG_CR + 1}, 180 {"CR2", LBREG, x86.REG_CR + 2}, 181 {"CR3", LBREG, x86.REG_CR + 3}, 182 {"CR4", LBREG, x86.REG_CR + 4}, 183 {"CR5", LBREG, x86.REG_CR + 5}, 184 {"CR6", LBREG, x86.REG_CR + 6}, 185 {"CR7", LBREG, x86.REG_CR + 7}, 186 {"CR8", LBREG, x86.REG_CR + 8}, 187 {"CR9", LBREG, x86.REG_CR + 9}, 188 {"CR10", LBREG, x86.REG_CR + 10}, 189 {"CR11", LBREG, x86.REG_CR + 11}, 190 {"CR12", LBREG, x86.REG_CR + 12}, 191 {"CR13", LBREG, x86.REG_CR + 13}, 192 {"CR14", LBREG, x86.REG_CR + 14}, 193 {"CR15", LBREG, x86.REG_CR + 15}, 194 {"DR0", LBREG, x86.REG_DR + 0}, 195 {"DR1", LBREG, x86.REG_DR + 1}, 196 {"DR2", LBREG, x86.REG_DR + 2}, 197 {"DR3", LBREG, x86.REG_DR + 3}, 198 {"DR4", LBREG, x86.REG_DR + 4}, 199 {"DR5", LBREG, x86.REG_DR + 5}, 200 {"DR6", LBREG, x86.REG_DR + 6}, 201 {"DR7", LBREG, x86.REG_DR + 7}, 202 {"TR0", LBREG, x86.REG_TR + 0}, 203 {"TR1", LBREG, x86.REG_TR + 1}, 204 {"TR2", LBREG, x86.REG_TR + 2}, 205 {"TR3", LBREG, x86.REG_TR + 3}, 206 {"TR4", LBREG, x86.REG_TR + 4}, 207 {"TR5", LBREG, x86.REG_TR + 5}, 208 {"TR6", LBREG, x86.REG_TR + 6}, 209 {"TR7", LBREG, x86.REG_TR + 7}, 210 {"TLS", LSREG, x86.REG_TLS}, 211 {"AAA", LTYPE0, x86.AAAA}, 212 {"AAD", LTYPE0, x86.AAAD}, 213 {"AAM", LTYPE0, x86.AAAM}, 214 {"AAS", LTYPE0, x86.AAAS}, 215 {"ADCB", LTYPE3, x86.AADCB}, 216 {"ADCL", LTYPE3, x86.AADCL}, 217 {"ADCQ", LTYPE3, x86.AADCQ}, 218 {"ADCW", LTYPE3, x86.AADCW}, 219 {"ADDB", LTYPE3, x86.AADDB}, 220 {"ADDL", LTYPE3, x86.AADDL}, 221 {"ADDQ", LTYPE3, x86.AADDQ}, 222 {"ADDW", LTYPE3, x86.AADDW}, 223 {"ADJSP", LTYPE2, x86.AADJSP}, 224 {"ANDB", LTYPE3, x86.AANDB}, 225 {"ANDL", LTYPE3, x86.AANDL}, 226 {"ANDQ", LTYPE3, x86.AANDQ}, 227 {"ANDW", LTYPE3, x86.AANDW}, 228 {"ARPL", LTYPE3, x86.AARPL}, 229 {"BOUNDL", LTYPE3, x86.ABOUNDL}, 230 {"BOUNDW", LTYPE3, x86.ABOUNDW}, 231 {"BSFL", LTYPE3, x86.ABSFL}, 232 {"BSFQ", LTYPE3, x86.ABSFQ}, 233 {"BSFW", LTYPE3, x86.ABSFW}, 234 {"BSRL", LTYPE3, x86.ABSRL}, 235 {"BSRQ", LTYPE3, x86.ABSRQ}, 236 {"BSRW", LTYPE3, x86.ABSRW}, 237 {"BSWAPL", LTYPE1, x86.ABSWAPL}, 238 {"BSWAPQ", LTYPE1, x86.ABSWAPQ}, 239 {"BTCL", LTYPE3, x86.ABTCL}, 240 {"BTCQ", LTYPE3, x86.ABTCQ}, 241 {"BTCW", LTYPE3, x86.ABTCW}, 242 {"BTL", LTYPE3, x86.ABTL}, 243 {"BTQ", LTYPE3, x86.ABTQ}, 244 {"BTRL", LTYPE3, x86.ABTRL}, 245 {"BTRQ", LTYPE3, x86.ABTRQ}, 246 {"BTRW", LTYPE3, x86.ABTRW}, 247 {"BTSL", LTYPE3, x86.ABTSL}, 248 {"BTSQ", LTYPE3, x86.ABTSQ}, 249 {"BTSW", LTYPE3, x86.ABTSW}, 250 {"BTW", LTYPE3, x86.ABTW}, 251 {"BYTE", LTYPE2, x86.ABYTE}, 252 {"CALL", LTYPEC, obj.ACALL}, 253 {"CLC", LTYPE0, x86.ACLC}, 254 {"CLD", LTYPE0, x86.ACLD}, 255 {"CLI", LTYPE0, x86.ACLI}, 256 {"CLTS", LTYPE0, x86.ACLTS}, 257 {"CMC", LTYPE0, x86.ACMC}, 258 {"CMPB", LTYPE4, x86.ACMPB}, 259 {"CMPL", LTYPE4, x86.ACMPL}, 260 {"CMPQ", LTYPE4, x86.ACMPQ}, 261 {"CMPW", LTYPE4, x86.ACMPW}, 262 {"CMPSB", LTYPE0, x86.ACMPSB}, 263 {"CMPSL", LTYPE0, x86.ACMPSL}, 264 {"CMPSQ", LTYPE0, x86.ACMPSQ}, 265 {"CMPSW", LTYPE0, x86.ACMPSW}, 266 {"CMPXCHG8B", LTYPE1, x86.ACMPXCHG8B}, 267 {"CMPXCHGB", LTYPE3, x86.ACMPXCHGB}, /* LTYPE3? */ 268 {"CMPXCHGL", LTYPE3, x86.ACMPXCHGL}, 269 {"CMPXCHGQ", LTYPE3, x86.ACMPXCHGQ}, 270 {"CMPXCHGW", LTYPE3, x86.ACMPXCHGW}, 271 {"CPUID", LTYPE0, x86.ACPUID}, 272 {"DAA", LTYPE0, x86.ADAA}, 273 {"DAS", LTYPE0, x86.ADAS}, 274 {"DATA", LTYPED, obj.ADATA}, 275 {"DECB", LTYPE1, x86.ADECB}, 276 {"DECL", LTYPE1, x86.ADECL}, 277 {"DECQ", LTYPE1, x86.ADECQ}, 278 {"DECW", LTYPE1, x86.ADECW}, 279 {"DIVB", LTYPE2, x86.ADIVB}, 280 {"DIVL", LTYPE2, x86.ADIVL}, 281 {"DIVQ", LTYPE2, x86.ADIVQ}, 282 {"DIVW", LTYPE2, x86.ADIVW}, 283 {"EMMS", LTYPE0, x86.AEMMS}, 284 {"END", LTYPE0, obj.AEND}, 285 {"ENTER", LTYPE2, x86.AENTER}, 286 {"GLOBL", LTYPEG, obj.AGLOBL}, 287 {"HLT", LTYPE0, x86.AHLT}, 288 {"IDIVB", LTYPE2, x86.AIDIVB}, 289 {"IDIVL", LTYPE2, x86.AIDIVL}, 290 {"IDIVQ", LTYPE2, x86.AIDIVQ}, 291 {"IDIVW", LTYPE2, x86.AIDIVW}, 292 {"IMULB", LTYPEI, x86.AIMULB}, 293 {"IMULL", LTYPEI, x86.AIMULL}, 294 {"IMULQ", LTYPEI, x86.AIMULQ}, 295 {"IMUL3Q", LTYPEX, x86.AIMUL3Q}, 296 {"IMULW", LTYPEI, x86.AIMULW}, 297 {"INB", LTYPE0, x86.AINB}, 298 {"INL", LTYPE0, x86.AINL}, 299 {"INW", LTYPE0, x86.AINW}, 300 {"INCB", LTYPE1, x86.AINCB}, 301 {"INCL", LTYPE1, x86.AINCL}, 302 {"INCQ", LTYPE1, x86.AINCQ}, 303 {"INCW", LTYPE1, x86.AINCW}, 304 {"INSB", LTYPE0, x86.AINSB}, 305 {"INSL", LTYPE0, x86.AINSL}, 306 {"INSW", LTYPE0, x86.AINSW}, 307 {"INT", LTYPE2, x86.AINT}, 308 {"INTO", LTYPE0, x86.AINTO}, 309 {"INVD", LTYPE0, x86.AINVD}, 310 {"INVLPG", LTYPE2, x86.AINVLPG}, 311 {"IRETL", LTYPE0, x86.AIRETL}, 312 {"IRETQ", LTYPE0, x86.AIRETQ}, 313 {"IRETW", LTYPE0, x86.AIRETW}, 314 {"JOS", LTYPER, x86.AJOS}, /* overflow set (OF = 1) */ 315 {"JO", LTYPER, x86.AJOS}, /* alternate */ 316 {"JOC", LTYPER, x86.AJOC}, /* overflow clear (OF = 0) */ 317 {"JNO", LTYPER, x86.AJOC}, /* alternate */ 318 {"JCS", LTYPER, x86.AJCS}, /* carry set (CF = 1) */ 319 {"JB", LTYPER, x86.AJCS}, /* alternate */ 320 {"JC", LTYPER, x86.AJCS}, /* alternate */ 321 {"JNAE", LTYPER, x86.AJCS}, /* alternate */ 322 {"JLO", LTYPER, x86.AJCS}, /* alternate */ 323 {"JCC", LTYPER, x86.AJCC}, /* carry clear (CF = 0) */ 324 {"JAE", LTYPER, x86.AJCC}, /* alternate */ 325 {"JNB", LTYPER, x86.AJCC}, /* alternate */ 326 {"JNC", LTYPER, x86.AJCC}, /* alternate */ 327 {"JHS", LTYPER, x86.AJCC}, /* alternate */ 328 {"JEQ", LTYPER, x86.AJEQ}, /* equal (ZF = 1) */ 329 {"JE", LTYPER, x86.AJEQ}, /* alternate */ 330 {"JZ", LTYPER, x86.AJEQ}, /* alternate */ 331 {"JNE", LTYPER, x86.AJNE}, /* not equal (ZF = 0) */ 332 {"JNZ", LTYPER, x86.AJNE}, /* alternate */ 333 {"JLS", LTYPER, x86.AJLS}, /* lower or same (unsigned) (CF = 1 || ZF = 1) */ 334 {"JBE", LTYPER, x86.AJLS}, /* alternate */ 335 {"JNA", LTYPER, x86.AJLS}, /* alternate */ 336 {"JHI", LTYPER, x86.AJHI}, /* higher (unsigned) (CF = 0 && ZF = 0) */ 337 {"JA", LTYPER, x86.AJHI}, /* alternate */ 338 {"JNBE", LTYPER, x86.AJHI}, /* alternate */ 339 {"JMI", LTYPER, x86.AJMI}, /* negative (minus) (SF = 1) */ 340 {"JS", LTYPER, x86.AJMI}, /* alternate */ 341 {"JPL", LTYPER, x86.AJPL}, /* non-negative (plus) (SF = 0) */ 342 {"JNS", LTYPER, x86.AJPL}, /* alternate */ 343 {"JPS", LTYPER, x86.AJPS}, /* parity set (PF = 1) */ 344 {"JP", LTYPER, x86.AJPS}, /* alternate */ 345 {"JPE", LTYPER, x86.AJPS}, /* alternate */ 346 {"JPC", LTYPER, x86.AJPC}, /* parity clear (PF = 0) */ 347 {"JNP", LTYPER, x86.AJPC}, /* alternate */ 348 {"JPO", LTYPER, x86.AJPC}, /* alternate */ 349 {"JLT", LTYPER, x86.AJLT}, /* less than (signed) (SF != OF) */ 350 {"JL", LTYPER, x86.AJLT}, /* alternate */ 351 {"JNGE", LTYPER, x86.AJLT}, /* alternate */ 352 {"JGE", LTYPER, x86.AJGE}, /* greater than or equal (signed) (SF = OF) */ 353 {"JNL", LTYPER, x86.AJGE}, /* alternate */ 354 {"JLE", LTYPER, x86.AJLE}, /* less than or equal (signed) (ZF = 1 || SF != OF) */ 355 {"JNG", LTYPER, x86.AJLE}, /* alternate */ 356 {"JGT", LTYPER, x86.AJGT}, /* greater than (signed) (ZF = 0 && SF = OF) */ 357 {"JG", LTYPER, x86.AJGT}, /* alternate */ 358 {"JNLE", LTYPER, x86.AJGT}, /* alternate */ 359 {"JCXZL", LTYPER, x86.AJCXZL}, 360 {"JCXZQ", LTYPER, x86.AJCXZQ}, 361 {"JMP", LTYPEC, obj.AJMP}, 362 {"LAHF", LTYPE0, x86.ALAHF}, 363 {"LARL", LTYPE3, x86.ALARL}, 364 {"LARW", LTYPE3, x86.ALARW}, 365 {"LEAL", LTYPE3, x86.ALEAL}, 366 {"LEAQ", LTYPE3, x86.ALEAQ}, 367 {"LEAW", LTYPE3, x86.ALEAW}, 368 {"LEAVEL", LTYPE0, x86.ALEAVEL}, 369 {"LEAVEQ", LTYPE0, x86.ALEAVEQ}, 370 {"LEAVEW", LTYPE0, x86.ALEAVEW}, 371 {"LFENCE", LTYPE0, x86.ALFENCE}, 372 {"LOCK", LTYPE0, x86.ALOCK}, 373 {"LODSB", LTYPE0, x86.ALODSB}, 374 {"LODSL", LTYPE0, x86.ALODSL}, 375 {"LODSQ", LTYPE0, x86.ALODSQ}, 376 {"LODSW", LTYPE0, x86.ALODSW}, 377 {"LONG", LTYPE2, x86.ALONG}, 378 {"LOOP", LTYPER, x86.ALOOP}, 379 {"LOOPEQ", LTYPER, x86.ALOOPEQ}, 380 {"LOOPNE", LTYPER, x86.ALOOPNE}, 381 {"LSLL", LTYPE3, x86.ALSLL}, 382 {"LSLW", LTYPE3, x86.ALSLW}, 383 {"MFENCE", LTYPE0, x86.AMFENCE}, 384 {"MODE", LTYPE2, x86.AMODE}, 385 {"MOVB", LTYPE3, x86.AMOVB}, 386 {"MOVL", LTYPEM, x86.AMOVL}, 387 {"MOVQ", LTYPEM, x86.AMOVQ}, 388 {"MOVW", LTYPEM, x86.AMOVW}, 389 {"MOVBLSX", LTYPE3, x86.AMOVBLSX}, 390 {"MOVBLZX", LTYPE3, x86.AMOVBLZX}, 391 {"MOVBQSX", LTYPE3, x86.AMOVBQSX}, 392 {"MOVBQZX", LTYPE3, x86.AMOVBQZX}, 393 {"MOVBWSX", LTYPE3, x86.AMOVBWSX}, 394 {"MOVBWZX", LTYPE3, x86.AMOVBWZX}, 395 {"MOVLQSX", LTYPE3, x86.AMOVLQSX}, 396 {"MOVLQZX", LTYPE3, x86.AMOVLQZX}, 397 {"MOVNTIL", LTYPE3, x86.AMOVNTIL}, 398 {"MOVNTIQ", LTYPE3, x86.AMOVNTIQ}, 399 {"MOVQL", LTYPE3, x86.AMOVQL}, 400 {"MOVWLSX", LTYPE3, x86.AMOVWLSX}, 401 {"MOVWLZX", LTYPE3, x86.AMOVWLZX}, 402 {"MOVWQSX", LTYPE3, x86.AMOVWQSX}, 403 {"MOVWQZX", LTYPE3, x86.AMOVWQZX}, 404 {"MOVSB", LTYPE0, x86.AMOVSB}, 405 {"MOVSL", LTYPE0, x86.AMOVSL}, 406 {"MOVSQ", LTYPE0, x86.AMOVSQ}, 407 {"MOVSW", LTYPE0, x86.AMOVSW}, 408 {"MULB", LTYPE2, x86.AMULB}, 409 {"MULL", LTYPE2, x86.AMULL}, 410 {"MULQ", LTYPE2, x86.AMULQ}, 411 {"MULW", LTYPE2, x86.AMULW}, 412 {"NEGB", LTYPE1, x86.ANEGB}, 413 {"NEGL", LTYPE1, x86.ANEGL}, 414 {"NEGQ", LTYPE1, x86.ANEGQ}, 415 {"NEGW", LTYPE1, x86.ANEGW}, 416 {"NOP", LTYPEN, obj.ANOP}, 417 {"NOTB", LTYPE1, x86.ANOTB}, 418 {"NOTL", LTYPE1, x86.ANOTL}, 419 {"NOTQ", LTYPE1, x86.ANOTQ}, 420 {"NOTW", LTYPE1, x86.ANOTW}, 421 {"ORB", LTYPE3, x86.AORB}, 422 {"ORL", LTYPE3, x86.AORL}, 423 {"ORQ", LTYPE3, x86.AORQ}, 424 {"ORW", LTYPE3, x86.AORW}, 425 {"OUTB", LTYPE0, x86.AOUTB}, 426 {"OUTL", LTYPE0, x86.AOUTL}, 427 {"OUTW", LTYPE0, x86.AOUTW}, 428 {"OUTSB", LTYPE0, x86.AOUTSB}, 429 {"OUTSL", LTYPE0, x86.AOUTSL}, 430 {"OUTSW", LTYPE0, x86.AOUTSW}, 431 {"PAUSE", LTYPEN, x86.APAUSE}, 432 {"POPAL", LTYPE0, x86.APOPAL}, 433 {"POPAW", LTYPE0, x86.APOPAW}, 434 {"POPFL", LTYPE0, x86.APOPFL}, 435 {"POPFQ", LTYPE0, x86.APOPFQ}, 436 {"POPFW", LTYPE0, x86.APOPFW}, 437 {"POPL", LTYPE1, x86.APOPL}, 438 {"POPQ", LTYPE1, x86.APOPQ}, 439 {"POPW", LTYPE1, x86.APOPW}, 440 {"PUSHAL", LTYPE0, x86.APUSHAL}, 441 {"PUSHAW", LTYPE0, x86.APUSHAW}, 442 {"PUSHFL", LTYPE0, x86.APUSHFL}, 443 {"PUSHFQ", LTYPE0, x86.APUSHFQ}, 444 {"PUSHFW", LTYPE0, x86.APUSHFW}, 445 {"PUSHL", LTYPE2, x86.APUSHL}, 446 {"PUSHQ", LTYPE2, x86.APUSHQ}, 447 {"PUSHW", LTYPE2, x86.APUSHW}, 448 {"RCLB", LTYPE3, x86.ARCLB}, 449 {"RCLL", LTYPE3, x86.ARCLL}, 450 {"RCLQ", LTYPE3, x86.ARCLQ}, 451 {"RCLW", LTYPE3, x86.ARCLW}, 452 {"RCRB", LTYPE3, x86.ARCRB}, 453 {"RCRL", LTYPE3, x86.ARCRL}, 454 {"RCRQ", LTYPE3, x86.ARCRQ}, 455 {"RCRW", LTYPE3, x86.ARCRW}, 456 {"RDMSR", LTYPE0, x86.ARDMSR}, 457 {"RDPMC", LTYPE0, x86.ARDPMC}, 458 {"RDTSC", LTYPE0, x86.ARDTSC}, 459 {"REP", LTYPE0, x86.AREP}, 460 {"REPN", LTYPE0, x86.AREPN}, 461 {"RET", LTYPE0, obj.ARET}, 462 {"RETFL", LTYPERT, x86.ARETFL}, 463 {"RETFW", LTYPERT, x86.ARETFW}, 464 {"RETFQ", LTYPERT, x86.ARETFQ}, 465 {"ROLB", LTYPE3, x86.AROLB}, 466 {"ROLL", LTYPE3, x86.AROLL}, 467 {"ROLQ", LTYPE3, x86.AROLQ}, 468 {"ROLW", LTYPE3, x86.AROLW}, 469 {"RORB", LTYPE3, x86.ARORB}, 470 {"RORL", LTYPE3, x86.ARORL}, 471 {"RORQ", LTYPE3, x86.ARORQ}, 472 {"RORW", LTYPE3, x86.ARORW}, 473 {"RSM", LTYPE0, x86.ARSM}, 474 {"SAHF", LTYPE0, x86.ASAHF}, 475 {"SALB", LTYPE3, x86.ASALB}, 476 {"SALL", LTYPE3, x86.ASALL}, 477 {"SALQ", LTYPE3, x86.ASALQ}, 478 {"SALW", LTYPE3, x86.ASALW}, 479 {"SARB", LTYPE3, x86.ASARB}, 480 {"SARL", LTYPE3, x86.ASARL}, 481 {"SARQ", LTYPE3, x86.ASARQ}, 482 {"SARW", LTYPE3, x86.ASARW}, 483 {"SBBB", LTYPE3, x86.ASBBB}, 484 {"SBBL", LTYPE3, x86.ASBBL}, 485 {"SBBQ", LTYPE3, x86.ASBBQ}, 486 {"SBBW", LTYPE3, x86.ASBBW}, 487 {"SCASB", LTYPE0, x86.ASCASB}, 488 {"SCASL", LTYPE0, x86.ASCASL}, 489 {"SCASQ", LTYPE0, x86.ASCASQ}, 490 {"SCASW", LTYPE0, x86.ASCASW}, 491 {"SETCC", LTYPE1, x86.ASETCC}, /* see JCC etc above for condition codes */ 492 {"SETCS", LTYPE1, x86.ASETCS}, 493 {"SETEQ", LTYPE1, x86.ASETEQ}, 494 {"SETGE", LTYPE1, x86.ASETGE}, 495 {"SETGT", LTYPE1, x86.ASETGT}, 496 {"SETHI", LTYPE1, x86.ASETHI}, 497 {"SETLE", LTYPE1, x86.ASETLE}, 498 {"SETLS", LTYPE1, x86.ASETLS}, 499 {"SETLT", LTYPE1, x86.ASETLT}, 500 {"SETMI", LTYPE1, x86.ASETMI}, 501 {"SETNE", LTYPE1, x86.ASETNE}, 502 {"SETOC", LTYPE1, x86.ASETOC}, 503 {"SETOS", LTYPE1, x86.ASETOS}, 504 {"SETPC", LTYPE1, x86.ASETPC}, 505 {"SETPL", LTYPE1, x86.ASETPL}, 506 {"SETPS", LTYPE1, x86.ASETPS}, 507 {"SFENCE", LTYPE0, x86.ASFENCE}, 508 {"CDQ", LTYPE0, x86.ACDQ}, 509 {"CWD", LTYPE0, x86.ACWD}, 510 {"CQO", LTYPE0, x86.ACQO}, 511 {"SHLB", LTYPE3, x86.ASHLB}, 512 {"SHLL", LTYPES, x86.ASHLL}, 513 {"SHLQ", LTYPES, x86.ASHLQ}, 514 {"SHLW", LTYPES, x86.ASHLW}, 515 {"SHRB", LTYPE3, x86.ASHRB}, 516 {"SHRL", LTYPES, x86.ASHRL}, 517 {"SHRQ", LTYPES, x86.ASHRQ}, 518 {"SHRW", LTYPES, x86.ASHRW}, 519 {"STC", LTYPE0, x86.ASTC}, 520 {"STD", LTYPE0, x86.ASTD}, 521 {"STI", LTYPE0, x86.ASTI}, 522 {"STOSB", LTYPE0, x86.ASTOSB}, 523 {"STOSL", LTYPE0, x86.ASTOSL}, 524 {"STOSQ", LTYPE0, x86.ASTOSQ}, 525 {"STOSW", LTYPE0, x86.ASTOSW}, 526 {"SUBB", LTYPE3, x86.ASUBB}, 527 {"SUBL", LTYPE3, x86.ASUBL}, 528 {"SUBQ", LTYPE3, x86.ASUBQ}, 529 {"SUBW", LTYPE3, x86.ASUBW}, 530 {"SYSCALL", LTYPE0, x86.ASYSCALL}, 531 {"SYSRET", LTYPE0, x86.ASYSRET}, 532 {"SWAPGS", LTYPE0, x86.ASWAPGS}, 533 {"TESTB", LTYPE3, x86.ATESTB}, 534 {"TESTL", LTYPE3, x86.ATESTL}, 535 {"TESTQ", LTYPE3, x86.ATESTQ}, 536 {"TESTW", LTYPE3, x86.ATESTW}, 537 {"TEXT", LTYPET, obj.ATEXT}, 538 {"VERR", LTYPE2, x86.AVERR}, 539 {"VERW", LTYPE2, x86.AVERW}, 540 {"QUAD", LTYPE2, x86.AQUAD}, 541 {"WAIT", LTYPE0, x86.AWAIT}, 542 {"WBINVD", LTYPE0, x86.AWBINVD}, 543 {"WRMSR", LTYPE0, x86.AWRMSR}, 544 {"WORD", LTYPE2, x86.AWORD}, 545 {"XADDB", LTYPE3, x86.AXADDB}, 546 {"XADDL", LTYPE3, x86.AXADDL}, 547 {"XADDQ", LTYPE3, x86.AXADDQ}, 548 {"XADDW", LTYPE3, x86.AXADDW}, 549 {"XCHGB", LTYPE3, x86.AXCHGB}, 550 {"XCHGL", LTYPE3, x86.AXCHGL}, 551 {"XCHGQ", LTYPE3, x86.AXCHGQ}, 552 {"XCHGW", LTYPE3, x86.AXCHGW}, 553 {"XLAT", LTYPE2, x86.AXLAT}, 554 {"XORB", LTYPE3, x86.AXORB}, 555 {"XORL", LTYPE3, x86.AXORL}, 556 {"XORQ", LTYPE3, x86.AXORQ}, 557 {"XORW", LTYPE3, x86.AXORW}, 558 {"CMOVLCC", LTYPE3, x86.ACMOVLCC}, 559 {"CMOVLCS", LTYPE3, x86.ACMOVLCS}, 560 {"CMOVLEQ", LTYPE3, x86.ACMOVLEQ}, 561 {"CMOVLGE", LTYPE3, x86.ACMOVLGE}, 562 {"CMOVLGT", LTYPE3, x86.ACMOVLGT}, 563 {"CMOVLHI", LTYPE3, x86.ACMOVLHI}, 564 {"CMOVLLE", LTYPE3, x86.ACMOVLLE}, 565 {"CMOVLLS", LTYPE3, x86.ACMOVLLS}, 566 {"CMOVLLT", LTYPE3, x86.ACMOVLLT}, 567 {"CMOVLMI", LTYPE3, x86.ACMOVLMI}, 568 {"CMOVLNE", LTYPE3, x86.ACMOVLNE}, 569 {"CMOVLOC", LTYPE3, x86.ACMOVLOC}, 570 {"CMOVLOS", LTYPE3, x86.ACMOVLOS}, 571 {"CMOVLPC", LTYPE3, x86.ACMOVLPC}, 572 {"CMOVLPL", LTYPE3, x86.ACMOVLPL}, 573 {"CMOVLPS", LTYPE3, x86.ACMOVLPS}, 574 {"CMOVQCC", LTYPE3, x86.ACMOVQCC}, 575 {"CMOVQCS", LTYPE3, x86.ACMOVQCS}, 576 {"CMOVQEQ", LTYPE3, x86.ACMOVQEQ}, 577 {"CMOVQGE", LTYPE3, x86.ACMOVQGE}, 578 {"CMOVQGT", LTYPE3, x86.ACMOVQGT}, 579 {"CMOVQHI", LTYPE3, x86.ACMOVQHI}, 580 {"CMOVQLE", LTYPE3, x86.ACMOVQLE}, 581 {"CMOVQLS", LTYPE3, x86.ACMOVQLS}, 582 {"CMOVQLT", LTYPE3, x86.ACMOVQLT}, 583 {"CMOVQMI", LTYPE3, x86.ACMOVQMI}, 584 {"CMOVQNE", LTYPE3, x86.ACMOVQNE}, 585 {"CMOVQOC", LTYPE3, x86.ACMOVQOC}, 586 {"CMOVQOS", LTYPE3, x86.ACMOVQOS}, 587 {"CMOVQPC", LTYPE3, x86.ACMOVQPC}, 588 {"CMOVQPL", LTYPE3, x86.ACMOVQPL}, 589 {"CMOVQPS", LTYPE3, x86.ACMOVQPS}, 590 {"CMOVWCC", LTYPE3, x86.ACMOVWCC}, 591 {"CMOVWCS", LTYPE3, x86.ACMOVWCS}, 592 {"CMOVWEQ", LTYPE3, x86.ACMOVWEQ}, 593 {"CMOVWGE", LTYPE3, x86.ACMOVWGE}, 594 {"CMOVWGT", LTYPE3, x86.ACMOVWGT}, 595 {"CMOVWHI", LTYPE3, x86.ACMOVWHI}, 596 {"CMOVWLE", LTYPE3, x86.ACMOVWLE}, 597 {"CMOVWLS", LTYPE3, x86.ACMOVWLS}, 598 {"CMOVWLT", LTYPE3, x86.ACMOVWLT}, 599 {"CMOVWMI", LTYPE3, x86.ACMOVWMI}, 600 {"CMOVWNE", LTYPE3, x86.ACMOVWNE}, 601 {"CMOVWOC", LTYPE3, x86.ACMOVWOC}, 602 {"CMOVWOS", LTYPE3, x86.ACMOVWOS}, 603 {"CMOVWPC", LTYPE3, x86.ACMOVWPC}, 604 {"CMOVWPL", LTYPE3, x86.ACMOVWPL}, 605 {"CMOVWPS", LTYPE3, x86.ACMOVWPS}, 606 {"FMOVB", LTYPE3, x86.AFMOVB}, 607 {"FMOVBP", LTYPE3, x86.AFMOVBP}, 608 {"FMOVD", LTYPE3, x86.AFMOVD}, 609 {"FMOVDP", LTYPE3, x86.AFMOVDP}, 610 {"FMOVF", LTYPE3, x86.AFMOVF}, 611 {"FMOVFP", LTYPE3, x86.AFMOVFP}, 612 {"FMOVL", LTYPE3, x86.AFMOVL}, 613 {"FMOVLP", LTYPE3, x86.AFMOVLP}, 614 {"FMOVV", LTYPE3, x86.AFMOVV}, 615 {"FMOVVP", LTYPE3, x86.AFMOVVP}, 616 {"FMOVW", LTYPE3, x86.AFMOVW}, 617 {"FMOVWP", LTYPE3, x86.AFMOVWP}, 618 {"FMOVX", LTYPE3, x86.AFMOVX}, 619 {"FMOVXP", LTYPE3, x86.AFMOVXP}, 620 {"FCOMB", LTYPE3, x86.AFCOMB}, 621 {"FCOMBP", LTYPE3, x86.AFCOMBP}, 622 {"FCOMD", LTYPE3, x86.AFCOMD}, 623 {"FCOMDP", LTYPE3, x86.AFCOMDP}, 624 {"FCOMDPP", LTYPE3, x86.AFCOMDPP}, 625 {"FCOMF", LTYPE3, x86.AFCOMF}, 626 {"FCOMFP", LTYPE3, x86.AFCOMFP}, 627 {"FCOML", LTYPE3, x86.AFCOML}, 628 {"FCOMLP", LTYPE3, x86.AFCOMLP}, 629 {"FCOMW", LTYPE3, x86.AFCOMW}, 630 {"FCOMWP", LTYPE3, x86.AFCOMWP}, 631 {"FUCOM", LTYPE3, x86.AFUCOM}, 632 {"FUCOMP", LTYPE3, x86.AFUCOMP}, 633 {"FUCOMPP", LTYPE3, x86.AFUCOMPP}, 634 {"FADDW", LTYPE3, x86.AFADDW}, 635 {"FADDL", LTYPE3, x86.AFADDL}, 636 {"FADDF", LTYPE3, x86.AFADDF}, 637 {"FADDD", LTYPE3, x86.AFADDD}, 638 {"FADDDP", LTYPE3, x86.AFADDDP}, 639 {"FSUBDP", LTYPE3, x86.AFSUBDP}, 640 {"FSUBW", LTYPE3, x86.AFSUBW}, 641 {"FSUBL", LTYPE3, x86.AFSUBL}, 642 {"FSUBF", LTYPE3, x86.AFSUBF}, 643 {"FSUBD", LTYPE3, x86.AFSUBD}, 644 {"FSUBRDP", LTYPE3, x86.AFSUBRDP}, 645 {"FSUBRW", LTYPE3, x86.AFSUBRW}, 646 {"FSUBRL", LTYPE3, x86.AFSUBRL}, 647 {"FSUBRF", LTYPE3, x86.AFSUBRF}, 648 {"FSUBRD", LTYPE3, x86.AFSUBRD}, 649 {"FMULDP", LTYPE3, x86.AFMULDP}, 650 {"FMULW", LTYPE3, x86.AFMULW}, 651 {"FMULL", LTYPE3, x86.AFMULL}, 652 {"FMULF", LTYPE3, x86.AFMULF}, 653 {"FMULD", LTYPE3, x86.AFMULD}, 654 {"FDIVDP", LTYPE3, x86.AFDIVDP}, 655 {"FDIVW", LTYPE3, x86.AFDIVW}, 656 {"FDIVL", LTYPE3, x86.AFDIVL}, 657 {"FDIVF", LTYPE3, x86.AFDIVF}, 658 {"FDIVD", LTYPE3, x86.AFDIVD}, 659 {"FDIVRDP", LTYPE3, x86.AFDIVRDP}, 660 {"FDIVRW", LTYPE3, x86.AFDIVRW}, 661 {"FDIVRL", LTYPE3, x86.AFDIVRL}, 662 {"FDIVRF", LTYPE3, x86.AFDIVRF}, 663 {"FDIVRD", LTYPE3, x86.AFDIVRD}, 664 {"FXCHD", LTYPE3, x86.AFXCHD}, 665 {"FFREE", LTYPE1, x86.AFFREE}, 666 {"FLDCW", LTYPE2, x86.AFLDCW}, 667 {"FLDENV", LTYPE1, x86.AFLDENV}, 668 {"FRSTOR", LTYPE2, x86.AFRSTOR}, 669 {"FSAVE", LTYPE1, x86.AFSAVE}, 670 {"FSTCW", LTYPE1, x86.AFSTCW}, 671 {"FSTENV", LTYPE1, x86.AFSTENV}, 672 {"FSTSW", LTYPE1, x86.AFSTSW}, 673 {"F2XM1", LTYPE0, x86.AF2XM1}, 674 {"FABS", LTYPE0, x86.AFABS}, 675 {"FCHS", LTYPE0, x86.AFCHS}, 676 {"FCLEX", LTYPE0, x86.AFCLEX}, 677 {"FCOS", LTYPE0, x86.AFCOS}, 678 {"FDECSTP", LTYPE0, x86.AFDECSTP}, 679 {"FINCSTP", LTYPE0, x86.AFINCSTP}, 680 {"FINIT", LTYPE0, x86.AFINIT}, 681 {"FLD1", LTYPE0, x86.AFLD1}, 682 {"FLDL2E", LTYPE0, x86.AFLDL2E}, 683 {"FLDL2T", LTYPE0, x86.AFLDL2T}, 684 {"FLDLG2", LTYPE0, x86.AFLDLG2}, 685 {"FLDLN2", LTYPE0, x86.AFLDLN2}, 686 {"FLDPI", LTYPE0, x86.AFLDPI}, 687 {"FLDZ", LTYPE0, x86.AFLDZ}, 688 {"FNOP", LTYPE0, x86.AFNOP}, 689 {"FPATAN", LTYPE0, x86.AFPATAN}, 690 {"FPREM", LTYPE0, x86.AFPREM}, 691 {"FPREM1", LTYPE0, x86.AFPREM1}, 692 {"FPTAN", LTYPE0, x86.AFPTAN}, 693 {"FRNDINT", LTYPE0, x86.AFRNDINT}, 694 {"FSCALE", LTYPE0, x86.AFSCALE}, 695 {"FSIN", LTYPE0, x86.AFSIN}, 696 {"FSINCOS", LTYPE0, x86.AFSINCOS}, 697 {"FSQRT", LTYPE0, x86.AFSQRT}, 698 {"FTST", LTYPE0, x86.AFTST}, 699 {"FXAM", LTYPE0, x86.AFXAM}, 700 {"FXTRACT", LTYPE0, x86.AFXTRACT}, 701 {"FYL2X", LTYPE0, x86.AFYL2X}, 702 {"FYL2XP1", LTYPE0, x86.AFYL2XP1}, 703 {"ADDPD", LTYPE3, x86.AADDPD}, 704 {"ADDPS", LTYPE3, x86.AADDPS}, 705 {"ADDSD", LTYPE3, x86.AADDSD}, 706 {"ADDSS", LTYPE3, x86.AADDSS}, 707 {"ANDNPD", LTYPE3, x86.AANDNPD}, 708 {"ANDNPS", LTYPE3, x86.AANDNPS}, 709 {"ANDPD", LTYPE3, x86.AANDPD}, 710 {"ANDPS", LTYPE3, x86.AANDPS}, 711 {"CMPPD", LTYPEXC, x86.ACMPPD}, 712 {"CMPPS", LTYPEXC, x86.ACMPPS}, 713 {"CMPSD", LTYPEXC, x86.ACMPSD}, 714 {"CMPSS", LTYPEXC, x86.ACMPSS}, 715 {"COMISD", LTYPE3, x86.ACOMISD}, 716 {"COMISS", LTYPE3, x86.ACOMISS}, 717 {"CVTPL2PD", LTYPE3, x86.ACVTPL2PD}, 718 {"CVTPL2PS", LTYPE3, x86.ACVTPL2PS}, 719 {"CVTPD2PL", LTYPE3, x86.ACVTPD2PL}, 720 {"CVTPD2PS", LTYPE3, x86.ACVTPD2PS}, 721 {"CVTPS2PL", LTYPE3, x86.ACVTPS2PL}, 722 {"PF2IW", LTYPE3, x86.APF2IW}, 723 {"PF2IL", LTYPE3, x86.APF2IL}, 724 {"PF2ID", LTYPE3, x86.APF2IL}, /* syn */ 725 {"PI2FL", LTYPE3, x86.API2FL}, 726 {"PI2FD", LTYPE3, x86.API2FL}, /* syn */ 727 {"PI2FW", LTYPE3, x86.API2FW}, 728 {"CVTPS2PD", LTYPE3, x86.ACVTPS2PD}, 729 {"CVTSD2SL", LTYPE3, x86.ACVTSD2SL}, 730 {"CVTSD2SQ", LTYPE3, x86.ACVTSD2SQ}, 731 {"CVTSD2SS", LTYPE3, x86.ACVTSD2SS}, 732 {"CVTSL2SD", LTYPE3, x86.ACVTSL2SD}, 733 {"CVTSQ2SD", LTYPE3, x86.ACVTSQ2SD}, 734 {"CVTSL2SS", LTYPE3, x86.ACVTSL2SS}, 735 {"CVTSQ2SS", LTYPE3, x86.ACVTSQ2SS}, 736 {"CVTSS2SD", LTYPE3, x86.ACVTSS2SD}, 737 {"CVTSS2SL", LTYPE3, x86.ACVTSS2SL}, 738 {"CVTSS2SQ", LTYPE3, x86.ACVTSS2SQ}, 739 {"CVTTPD2PL", LTYPE3, x86.ACVTTPD2PL}, 740 {"CVTTPS2PL", LTYPE3, x86.ACVTTPS2PL}, 741 {"CVTTSD2SL", LTYPE3, x86.ACVTTSD2SL}, 742 {"CVTTSD2SQ", LTYPE3, x86.ACVTTSD2SQ}, 743 {"CVTTSS2SL", LTYPE3, x86.ACVTTSS2SL}, 744 {"CVTTSS2SQ", LTYPE3, x86.ACVTTSS2SQ}, 745 {"DIVPD", LTYPE3, x86.ADIVPD}, 746 {"DIVPS", LTYPE3, x86.ADIVPS}, 747 {"DIVSD", LTYPE3, x86.ADIVSD}, 748 {"DIVSS", LTYPE3, x86.ADIVSS}, 749 {"FXRSTOR", LTYPE2, x86.AFXRSTOR}, 750 {"FXRSTOR64", LTYPE2, x86.AFXRSTOR64}, 751 {"FXSAVE", LTYPE1, x86.AFXSAVE}, 752 {"FXSAVE64", LTYPE1, x86.AFXSAVE64}, 753 {"LDMXCSR", LTYPE2, x86.ALDMXCSR}, 754 {"MASKMOVOU", LTYPE3, x86.AMASKMOVOU}, 755 {"MASKMOVDQU", LTYPE3, x86.AMASKMOVOU}, /* syn */ 756 {"MASKMOVQ", LTYPE3, x86.AMASKMOVQ}, 757 {"MAXPD", LTYPE3, x86.AMAXPD}, 758 {"MAXPS", LTYPE3, x86.AMAXPS}, 759 {"MAXSD", LTYPE3, x86.AMAXSD}, 760 {"MAXSS", LTYPE3, x86.AMAXSS}, 761 {"MINPD", LTYPE3, x86.AMINPD}, 762 {"MINPS", LTYPE3, x86.AMINPS}, 763 {"MINSD", LTYPE3, x86.AMINSD}, 764 {"MINSS", LTYPE3, x86.AMINSS}, 765 {"MOVAPD", LTYPE3, x86.AMOVAPD}, 766 {"MOVAPS", LTYPE3, x86.AMOVAPS}, 767 {"MOVD", LTYPE3, x86.AMOVQ}, /* syn */ 768 {"MOVDQ2Q", LTYPE3, x86.AMOVQ}, /* syn */ 769 {"MOVO", LTYPE3, x86.AMOVO}, 770 {"MOVOA", LTYPE3, x86.AMOVO}, /* syn */ 771 {"MOVOU", LTYPE3, x86.AMOVOU}, 772 {"MOVHLPS", LTYPE3, x86.AMOVHLPS}, 773 {"MOVHPD", LTYPE3, x86.AMOVHPD}, 774 {"MOVHPS", LTYPE3, x86.AMOVHPS}, 775 {"MOVLHPS", LTYPE3, x86.AMOVLHPS}, 776 {"MOVLPD", LTYPE3, x86.AMOVLPD}, 777 {"MOVLPS", LTYPE3, x86.AMOVLPS}, 778 {"MOVMSKPD", LTYPE3, x86.AMOVMSKPD}, 779 {"MOVMSKPS", LTYPE3, x86.AMOVMSKPS}, 780 {"MOVNTO", LTYPE3, x86.AMOVNTO}, 781 {"MOVNTDQ", LTYPE3, x86.AMOVNTO}, /* syn */ 782 {"MOVNTPD", LTYPE3, x86.AMOVNTPD}, 783 {"MOVNTPS", LTYPE3, x86.AMOVNTPS}, 784 {"MOVNTQ", LTYPE3, x86.AMOVNTQ}, 785 {"MOVQOZX", LTYPE3, x86.AMOVQOZX}, 786 {"MOVSD", LTYPE3, x86.AMOVSD}, 787 {"MOVSS", LTYPE3, x86.AMOVSS}, 788 {"MOVUPD", LTYPE3, x86.AMOVUPD}, 789 {"MOVUPS", LTYPE3, x86.AMOVUPS}, 790 {"MULPD", LTYPE3, x86.AMULPD}, 791 {"MULPS", LTYPE3, x86.AMULPS}, 792 {"MULSD", LTYPE3, x86.AMULSD}, 793 {"MULSS", LTYPE3, x86.AMULSS}, 794 {"ORPD", LTYPE3, x86.AORPD}, 795 {"ORPS", LTYPE3, x86.AORPS}, 796 {"PACKSSLW", LTYPE3, x86.APACKSSLW}, 797 {"PACKSSWB", LTYPE3, x86.APACKSSWB}, 798 {"PACKUSWB", LTYPE3, x86.APACKUSWB}, 799 {"PADDB", LTYPE3, x86.APADDB}, 800 {"PADDL", LTYPE3, x86.APADDL}, 801 {"PADDQ", LTYPE3, x86.APADDQ}, 802 {"PADDSB", LTYPE3, x86.APADDSB}, 803 {"PADDSW", LTYPE3, x86.APADDSW}, 804 {"PADDUSB", LTYPE3, x86.APADDUSB}, 805 {"PADDUSW", LTYPE3, x86.APADDUSW}, 806 {"PADDW", LTYPE3, x86.APADDW}, 807 {"PAND", LTYPE3, x86.APAND}, 808 {"PANDB", LTYPE3, x86.APANDB}, 809 {"PANDL", LTYPE3, x86.APANDL}, 810 {"PANDSB", LTYPE3, x86.APANDSB}, 811 {"PANDSW", LTYPE3, x86.APANDSW}, 812 {"PANDUSB", LTYPE3, x86.APANDUSB}, 813 {"PANDUSW", LTYPE3, x86.APANDUSW}, 814 {"PANDW", LTYPE3, x86.APANDW}, 815 {"PANDN", LTYPE3, x86.APANDN}, 816 {"PAVGB", LTYPE3, x86.APAVGB}, 817 {"PAVGW", LTYPE3, x86.APAVGW}, 818 {"PCMPEQB", LTYPE3, x86.APCMPEQB}, 819 {"PCMPEQL", LTYPE3, x86.APCMPEQL}, 820 {"PCMPEQW", LTYPE3, x86.APCMPEQW}, 821 {"PCMPGTB", LTYPE3, x86.APCMPGTB}, 822 {"PCMPGTL", LTYPE3, x86.APCMPGTL}, 823 {"PCMPGTW", LTYPE3, x86.APCMPGTW}, 824 {"PEXTRW", LTYPEX, x86.APEXTRW}, 825 {"PINSRW", LTYPEX, x86.APINSRW}, 826 {"PINSRD", LTYPEX, x86.APINSRD}, 827 {"PINSRQ", LTYPEX, x86.APINSRQ}, 828 {"PMADDWL", LTYPE3, x86.APMADDWL}, 829 {"PMAXSW", LTYPE3, x86.APMAXSW}, 830 {"PMAXUB", LTYPE3, x86.APMAXUB}, 831 {"PMINSW", LTYPE3, x86.APMINSW}, 832 {"PMINUB", LTYPE3, x86.APMINUB}, 833 {"PMOVMSKB", LTYPE3, x86.APMOVMSKB}, 834 {"PMULHRW", LTYPE3, x86.APMULHRW}, 835 {"PMULHUW", LTYPE3, x86.APMULHUW}, 836 {"PMULHW", LTYPE3, x86.APMULHW}, 837 {"PMULLW", LTYPE3, x86.APMULLW}, 838 {"PMULULQ", LTYPE3, x86.APMULULQ}, 839 {"POR", LTYPE3, x86.APOR}, 840 {"PSADBW", LTYPE3, x86.APSADBW}, 841 {"PSHUFHW", LTYPEX, x86.APSHUFHW}, 842 {"PSHUFL", LTYPEX, x86.APSHUFL}, 843 {"PSHUFLW", LTYPEX, x86.APSHUFLW}, 844 {"PSHUFW", LTYPEX, x86.APSHUFW}, 845 {"PSHUFB", LTYPEM, x86.APSHUFB}, 846 {"PSLLO", LTYPE3, x86.APSLLO}, 847 {"PSLLDQ", LTYPE3, x86.APSLLO}, /* syn */ 848 {"PSLLL", LTYPE3, x86.APSLLL}, 849 {"PSLLQ", LTYPE3, x86.APSLLQ}, 850 {"PSLLW", LTYPE3, x86.APSLLW}, 851 {"PSRAL", LTYPE3, x86.APSRAL}, 852 {"PSRAW", LTYPE3, x86.APSRAW}, 853 {"PSRLO", LTYPE3, x86.APSRLO}, 854 {"PSRLDQ", LTYPE3, x86.APSRLO}, /* syn */ 855 {"PSRLL", LTYPE3, x86.APSRLL}, 856 {"PSRLQ", LTYPE3, x86.APSRLQ}, 857 {"PSRLW", LTYPE3, x86.APSRLW}, 858 {"PSUBB", LTYPE3, x86.APSUBB}, 859 {"PSUBL", LTYPE3, x86.APSUBL}, 860 {"PSUBQ", LTYPE3, x86.APSUBQ}, 861 {"PSUBSB", LTYPE3, x86.APSUBSB}, 862 {"PSUBSW", LTYPE3, x86.APSUBSW}, 863 {"PSUBUSB", LTYPE3, x86.APSUBUSB}, 864 {"PSUBUSW", LTYPE3, x86.APSUBUSW}, 865 {"PSUBW", LTYPE3, x86.APSUBW}, 866 {"PUNPCKHBW", LTYPE3, x86.APUNPCKHBW}, 867 {"PUNPCKHLQ", LTYPE3, x86.APUNPCKHLQ}, 868 {"PUNPCKHQDQ", LTYPE3, x86.APUNPCKHQDQ}, 869 {"PUNPCKHWL", LTYPE3, x86.APUNPCKHWL}, 870 {"PUNPCKLBW", LTYPE3, x86.APUNPCKLBW}, 871 {"PUNPCKLLQ", LTYPE3, x86.APUNPCKLLQ}, 872 {"PUNPCKLQDQ", LTYPE3, x86.APUNPCKLQDQ}, 873 {"PUNPCKLWL", LTYPE3, x86.APUNPCKLWL}, 874 {"PXOR", LTYPE3, x86.APXOR}, 875 {"RCPPS", LTYPE3, x86.ARCPPS}, 876 {"RCPSS", LTYPE3, x86.ARCPSS}, 877 {"RSQRTPS", LTYPE3, x86.ARSQRTPS}, 878 {"RSQRTSS", LTYPE3, x86.ARSQRTSS}, 879 {"SHUFPD", LTYPEX, x86.ASHUFPD}, 880 {"SHUFPS", LTYPEX, x86.ASHUFPS}, 881 {"SQRTPD", LTYPE3, x86.ASQRTPD}, 882 {"SQRTPS", LTYPE3, x86.ASQRTPS}, 883 {"SQRTSD", LTYPE3, x86.ASQRTSD}, 884 {"SQRTSS", LTYPE3, x86.ASQRTSS}, 885 {"STMXCSR", LTYPE1, x86.ASTMXCSR}, 886 {"SUBPD", LTYPE3, x86.ASUBPD}, 887 {"SUBPS", LTYPE3, x86.ASUBPS}, 888 {"SUBSD", LTYPE3, x86.ASUBSD}, 889 {"SUBSS", LTYPE3, x86.ASUBSS}, 890 {"UCOMISD", LTYPE3, x86.AUCOMISD}, 891 {"UCOMISS", LTYPE3, x86.AUCOMISS}, 892 {"UNPCKHPD", LTYPE3, x86.AUNPCKHPD}, 893 {"UNPCKHPS", LTYPE3, x86.AUNPCKHPS}, 894 {"UNPCKLPD", LTYPE3, x86.AUNPCKLPD}, 895 {"UNPCKLPS", LTYPE3, x86.AUNPCKLPS}, 896 {"XORPD", LTYPE3, x86.AXORPD}, 897 {"XORPS", LTYPE3, x86.AXORPS}, 898 {"CRC32B", LTYPE4, x86.ACRC32B}, 899 {"CRC32Q", LTYPE4, x86.ACRC32Q}, 900 {"PREFETCHT0", LTYPE2, x86.APREFETCHT0}, 901 {"PREFETCHT1", LTYPE2, x86.APREFETCHT1}, 902 {"PREFETCHT2", LTYPE2, x86.APREFETCHT2}, 903 {"PREFETCHNTA", LTYPE2, x86.APREFETCHNTA}, 904 {"UNDEF", LTYPE0, obj.AUNDEF}, 905 {"AESENC", LTYPE3, x86.AAESENC}, 906 {"AESENCLAST", LTYPE3, x86.AAESENCLAST}, 907 {"AESDEC", LTYPE3, x86.AAESDEC}, 908 {"AESDECLAST", LTYPE3, x86.AAESDECLAST}, 909 {"AESIMC", LTYPE3, x86.AAESIMC}, 910 {"AESKEYGENASSIST", LTYPEX, x86.AAESKEYGENASSIST}, 911 {"PSHUFD", LTYPEX, x86.APSHUFD}, 912 {"USEFIELD", LTYPEN, obj.AUSEFIELD}, 913 {"PCLMULQDQ", LTYPEX, x86.APCLMULQDQ}, 914 {"PCDATA", LTYPEPC, obj.APCDATA}, 915 {"FUNCDATA", LTYPEF, obj.AFUNCDATA}, 916 } 917 918 func cinit() { 919 } 920 921 func checkscale(scale int16) { 922 switch scale { 923 case 1, 924 2, 925 4, 926 8: 927 return 928 } 929 930 yyerror("scale must be 1248: %d", scale) 931 } 932 933 func cclean() { 934 var g2 Addr2 935 936 g2.from = nullgen 937 g2.to = nullgen 938 outcode(obj.AEND, &g2) 939 } 940 941 var lastpc *obj.Prog 942 943 type Addr2 struct { 944 from obj.Addr 945 from3 obj.Addr 946 to obj.Addr 947 } 948 949 func outcode(a int, g2 *Addr2) { 950 var p *obj.Prog 951 var pl *obj.Plist 952 953 if asm.Pass == 1 { 954 goto out 955 } 956 957 p = new(obj.Prog) 958 *p = obj.Prog{} 959 p.Ctxt = asm.Ctxt 960 p.As = int16(a) 961 p.Lineno = stmtline 962 p.From = g2.from 963 p.From3 = g2.from3 964 p.To = g2.to 965 p.Pc = int64(asm.PC) 966 967 if lastpc == nil { 968 pl = obj.Linknewplist(asm.Ctxt) 969 pl.Firstpc = p 970 } else { 971 972 lastpc.Link = p 973 } 974 lastpc = p 975 976 out: 977 if a != obj.AGLOBL && a != obj.ADATA { 978 asm.PC++ 979 } 980 }