Commit 7d48573d authored by Didier Spezia's avatar Didier Spezia Committed by Brad Fitzpatrick

cmd/internal/obj: map/slice literals janitoring

Simplify slice/map literal expressions.
Caught with gofmt -d -s, fixed with gofmt -w -s
Checked that the result can still be compiled with Go 1.4.

Change-Id: I0a6773d12200a7b43491f25f914335069a1fa5e8
Reviewed-on: https://go-review.googlesource.com/13833Reviewed-by: default avatarAndrew Gerrand <adg@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 63ee3210
......@@ -67,201 +67,201 @@ const (
var optab = []Optab{
/* struct Optab:
OPCODE, from, prog->reg, to, type,size,param,flag */
Optab{obj.ATEXT, C_ADDR, C_NONE, C_TEXTSIZE, 0, 0, 0, 0, 0},
Optab{AADD, C_REG, C_REG, C_REG, 1, 4, 0, 0, 0},
Optab{AADD, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
Optab{AMVN, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
Optab{ACMP, C_REG, C_REG, C_NONE, 1, 4, 0, 0, 0},
Optab{AADD, C_RCON, C_REG, C_REG, 2, 4, 0, 0, 0},
Optab{AADD, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
Optab{AMOVW, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
Optab{AMVN, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
Optab{ACMP, C_RCON, C_REG, C_NONE, 2, 4, 0, 0, 0},
Optab{AADD, C_SHIFT, C_REG, C_REG, 3, 4, 0, 0, 0},
Optab{AADD, C_SHIFT, C_NONE, C_REG, 3, 4, 0, 0, 0},
Optab{AMVN, C_SHIFT, C_NONE, C_REG, 3, 4, 0, 0, 0},
Optab{ACMP, C_SHIFT, C_REG, C_NONE, 3, 4, 0, 0, 0},
Optab{AMOVW, C_RACON, C_NONE, C_REG, 4, 4, REGSP, 0, 0},
Optab{AB, C_NONE, C_NONE, C_SBRA, 5, 4, 0, LPOOL, 0},
Optab{ABL, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0},
Optab{ABX, C_NONE, C_NONE, C_SBRA, 74, 20, 0, 0, 0},
Optab{ABEQ, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0},
Optab{ABEQ, C_RCON, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // prediction hinted form, hint ignored
Optab{AB, C_NONE, C_NONE, C_ROREG, 6, 4, 0, LPOOL, 0},
Optab{ABL, C_NONE, C_NONE, C_ROREG, 7, 4, 0, 0, 0},
Optab{ABL, C_REG, C_NONE, C_ROREG, 7, 4, 0, 0, 0},
Optab{ABX, C_NONE, C_NONE, C_ROREG, 75, 12, 0, 0, 0},
Optab{ABXRET, C_NONE, C_NONE, C_ROREG, 76, 4, 0, 0, 0},
Optab{ASLL, C_RCON, C_REG, C_REG, 8, 4, 0, 0, 0},
Optab{ASLL, C_RCON, C_NONE, C_REG, 8, 4, 0, 0, 0},
Optab{ASLL, C_REG, C_NONE, C_REG, 9, 4, 0, 0, 0},
Optab{ASLL, C_REG, C_REG, C_REG, 9, 4, 0, 0, 0},
Optab{ASWI, C_NONE, C_NONE, C_NONE, 10, 4, 0, 0, 0},
Optab{ASWI, C_NONE, C_NONE, C_LOREG, 10, 4, 0, 0, 0},
Optab{ASWI, C_NONE, C_NONE, C_LCON, 10, 4, 0, 0, 0},
Optab{AWORD, C_NONE, C_NONE, C_LCON, 11, 4, 0, 0, 0},
Optab{AWORD, C_NONE, C_NONE, C_LCONADDR, 11, 4, 0, 0, 0},
Optab{AWORD, C_NONE, C_NONE, C_ADDR, 11, 4, 0, 0, 0},
Optab{AWORD, C_NONE, C_NONE, C_TLS_LE, 103, 4, 0, 0, 0},
Optab{AWORD, C_NONE, C_NONE, C_TLS_IE, 104, 4, 0, 0, 0},
Optab{AMOVW, C_NCON, C_NONE, C_REG, 12, 4, 0, 0, 0},
Optab{AMOVW, C_LCON, C_NONE, C_REG, 12, 4, 0, LFROM, 0},
Optab{AMOVW, C_LCONADDR, C_NONE, C_REG, 12, 4, 0, LFROM | LPCREL, 4},
Optab{AADD, C_NCON, C_REG, C_REG, 13, 8, 0, 0, 0},
Optab{AADD, C_NCON, C_NONE, C_REG, 13, 8, 0, 0, 0},
Optab{AMVN, C_NCON, C_NONE, C_REG, 13, 8, 0, 0, 0},
Optab{ACMP, C_NCON, C_REG, C_NONE, 13, 8, 0, 0, 0},
Optab{AADD, C_LCON, C_REG, C_REG, 13, 8, 0, LFROM, 0},
Optab{AADD, C_LCON, C_NONE, C_REG, 13, 8, 0, LFROM, 0},
Optab{AMVN, C_LCON, C_NONE, C_REG, 13, 8, 0, LFROM, 0},
Optab{ACMP, C_LCON, C_REG, C_NONE, 13, 8, 0, LFROM, 0},
Optab{AMOVB, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
Optab{AMOVBS, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
Optab{AMOVBU, C_REG, C_NONE, C_REG, 58, 4, 0, 0, 0},
Optab{AMOVH, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
Optab{AMOVHS, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
Optab{AMOVHU, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
Optab{AMUL, C_REG, C_REG, C_REG, 15, 4, 0, 0, 0},
Optab{AMUL, C_REG, C_NONE, C_REG, 15, 4, 0, 0, 0},
Optab{ADIV, C_REG, C_REG, C_REG, 16, 4, 0, 0, 0},
Optab{ADIV, C_REG, C_NONE, C_REG, 16, 4, 0, 0, 0},
Optab{AMULL, C_REG, C_REG, C_REGREG, 17, 4, 0, 0, 0},
Optab{AMULA, C_REG, C_REG, C_REGREG2, 17, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
Optab{AMOVB, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
Optab{AMOVB, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
Optab{AMOVBS, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
Optab{AMOVBS, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
Optab{AMOVBU, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
Optab{AMOVBU, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
Optab{AMOVW, C_SAUTO, C_NONE, C_REG, 21, 4, REGSP, 0, 0},
Optab{AMOVW, C_SOREG, C_NONE, C_REG, 21, 4, 0, 0, 0},
Optab{AMOVBU, C_SAUTO, C_NONE, C_REG, 21, 4, REGSP, 0, 0},
Optab{AMOVBU, C_SOREG, C_NONE, C_REG, 21, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
Optab{AMOVW, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
Optab{AMOVW, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
Optab{AMOVB, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
Optab{AMOVB, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
Optab{AMOVB, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
Optab{AMOVBS, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
Optab{AMOVBS, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
Optab{AMOVBS, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
Optab{AMOVBU, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
Optab{AMOVBU, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
Optab{AMOVBU, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
Optab{AMOVW, C_TLS_LE, C_NONE, C_REG, 101, 4, 0, LFROM, 0},
Optab{AMOVW, C_TLS_IE, C_NONE, C_REG, 102, 8, 0, LFROM, 0},
Optab{AMOVW, C_LAUTO, C_NONE, C_REG, 31, 8, REGSP, LFROM, 0},
Optab{AMOVW, C_LOREG, C_NONE, C_REG, 31, 8, 0, LFROM, 0},
Optab{AMOVW, C_ADDR, C_NONE, C_REG, 65, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVBU, C_LAUTO, C_NONE, C_REG, 31, 8, REGSP, LFROM, 0},
Optab{AMOVBU, C_LOREG, C_NONE, C_REG, 31, 8, 0, LFROM, 0},
Optab{AMOVBU, C_ADDR, C_NONE, C_REG, 65, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVW, C_LACON, C_NONE, C_REG, 34, 8, REGSP, LFROM, 0},
Optab{AMOVW, C_PSR, C_NONE, C_REG, 35, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_PSR, 36, 4, 0, 0, 0},
Optab{AMOVW, C_RCON, C_NONE, C_PSR, 37, 4, 0, 0, 0},
Optab{AMOVM, C_REGLIST, C_NONE, C_SOREG, 38, 4, 0, 0, 0},
Optab{AMOVM, C_SOREG, C_NONE, C_REGLIST, 39, 4, 0, 0, 0},
Optab{ASWPW, C_SOREG, C_REG, C_REG, 40, 4, 0, 0, 0},
Optab{ARFE, C_NONE, C_NONE, C_NONE, 41, 4, 0, 0, 0},
Optab{AMOVF, C_FREG, C_NONE, C_FAUTO, 50, 4, REGSP, 0, 0},
Optab{AMOVF, C_FREG, C_NONE, C_FOREG, 50, 4, 0, 0, 0},
Optab{AMOVF, C_FAUTO, C_NONE, C_FREG, 51, 4, REGSP, 0, 0},
Optab{AMOVF, C_FOREG, C_NONE, C_FREG, 51, 4, 0, 0, 0},
Optab{AMOVF, C_FREG, C_NONE, C_LAUTO, 52, 12, REGSP, LTO, 0},
Optab{AMOVF, C_FREG, C_NONE, C_LOREG, 52, 12, 0, LTO, 0},
Optab{AMOVF, C_LAUTO, C_NONE, C_FREG, 53, 12, REGSP, LFROM, 0},
Optab{AMOVF, C_LOREG, C_NONE, C_FREG, 53, 12, 0, LFROM, 0},
Optab{AMOVF, C_FREG, C_NONE, C_ADDR, 68, 8, 0, LTO | LPCREL, 4},
Optab{AMOVF, C_ADDR, C_NONE, C_FREG, 69, 8, 0, LFROM | LPCREL, 4},
Optab{AADDF, C_FREG, C_NONE, C_FREG, 54, 4, 0, 0, 0},
Optab{AADDF, C_FREG, C_REG, C_FREG, 54, 4, 0, 0, 0},
Optab{AMOVF, C_FREG, C_NONE, C_FREG, 54, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_FCR, 56, 4, 0, 0, 0},
Optab{AMOVW, C_FCR, C_NONE, C_REG, 57, 4, 0, 0, 0},
Optab{AMOVW, C_SHIFT, C_NONE, C_REG, 59, 4, 0, 0, 0},
Optab{AMOVBU, C_SHIFT, C_NONE, C_REG, 59, 4, 0, 0, 0},
Optab{AMOVB, C_SHIFT, C_NONE, C_REG, 60, 4, 0, 0, 0},
Optab{AMOVBS, C_SHIFT, C_NONE, C_REG, 60, 4, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
Optab{AMOVB, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
Optab{AMOVBS, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
Optab{AMOVBU, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
Optab{AMOVH, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
Optab{AMOVH, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
Optab{AMOVHS, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
Optab{AMOVHS, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
Optab{AMOVHU, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
Optab{AMOVHU, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
Optab{AMOVB, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
Optab{AMOVB, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
Optab{AMOVBS, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
Optab{AMOVBS, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
Optab{AMOVH, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
Optab{AMOVH, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
Optab{AMOVHS, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
Optab{AMOVHS, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
Optab{AMOVHU, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
Optab{AMOVHU, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
Optab{AMOVH, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
Optab{AMOVH, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
Optab{AMOVH, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
Optab{AMOVHS, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
Optab{AMOVHS, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
Optab{AMOVHS, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
Optab{AMOVHU, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
Optab{AMOVHU, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
Optab{AMOVHU, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
Optab{AMOVB, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
Optab{AMOVB, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
Optab{AMOVB, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVBS, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
Optab{AMOVBS, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
Optab{AMOVBS, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVH, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
Optab{AMOVH, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
Optab{AMOVH, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVHS, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
Optab{AMOVHS, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
Optab{AMOVHS, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
Optab{AMOVHU, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
Optab{AMOVHU, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
Optab{AMOVHU, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
Optab{ALDREX, C_SOREG, C_NONE, C_REG, 77, 4, 0, 0, 0},
Optab{ASTREX, C_SOREG, C_REG, C_REG, 78, 4, 0, 0, 0},
Optab{AMOVF, C_ZFCON, C_NONE, C_FREG, 80, 8, 0, 0, 0},
Optab{AMOVF, C_SFCON, C_NONE, C_FREG, 81, 4, 0, 0, 0},
Optab{ACMPF, C_FREG, C_REG, C_NONE, 82, 8, 0, 0, 0},
Optab{ACMPF, C_FREG, C_NONE, C_NONE, 83, 8, 0, 0, 0},
Optab{AMOVFW, C_FREG, C_NONE, C_FREG, 84, 4, 0, 0, 0},
Optab{AMOVWF, C_FREG, C_NONE, C_FREG, 85, 4, 0, 0, 0},
Optab{AMOVFW, C_FREG, C_NONE, C_REG, 86, 8, 0, 0, 0},
Optab{AMOVWF, C_REG, C_NONE, C_FREG, 87, 8, 0, 0, 0},
Optab{AMOVW, C_REG, C_NONE, C_FREG, 88, 4, 0, 0, 0},
Optab{AMOVW, C_FREG, C_NONE, C_REG, 89, 4, 0, 0, 0},
Optab{ATST, C_REG, C_NONE, C_NONE, 90, 4, 0, 0, 0},
Optab{ALDREXD, C_SOREG, C_NONE, C_REG, 91, 4, 0, 0, 0},
Optab{ASTREXD, C_SOREG, C_REG, C_REG, 92, 4, 0, 0, 0},
Optab{APLD, C_SOREG, C_NONE, C_NONE, 95, 4, 0, 0, 0},
Optab{obj.AUNDEF, C_NONE, C_NONE, C_NONE, 96, 4, 0, 0, 0},
Optab{ACLZ, C_REG, C_NONE, C_REG, 97, 4, 0, 0, 0},
Optab{AMULWT, C_REG, C_REG, C_REG, 98, 4, 0, 0, 0},
Optab{AMULAWT, C_REG, C_REG, C_REGREG2, 99, 4, 0, 0, 0},
Optab{obj.AUSEFIELD, C_ADDR, C_NONE, C_NONE, 0, 0, 0, 0, 0},
Optab{obj.APCDATA, C_LCON, C_NONE, C_LCON, 0, 0, 0, 0, 0},
Optab{obj.AFUNCDATA, C_LCON, C_NONE, C_ADDR, 0, 0, 0, 0, 0},
Optab{obj.ANOP, C_NONE, C_NONE, C_NONE, 0, 0, 0, 0, 0},
Optab{obj.ADUFFZERO, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // same as ABL
Optab{obj.ADUFFCOPY, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // same as ABL
Optab{ADATABUNDLE, C_NONE, C_NONE, C_NONE, 100, 4, 0, 0, 0},
Optab{ADATABUNDLEEND, C_NONE, C_NONE, C_NONE, 100, 0, 0, 0, 0},
Optab{obj.AXXX, C_NONE, C_NONE, C_NONE, 0, 4, 0, 0, 0},
{obj.ATEXT, C_ADDR, C_NONE, C_TEXTSIZE, 0, 0, 0, 0, 0},
{AADD, C_REG, C_REG, C_REG, 1, 4, 0, 0, 0},
{AADD, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
{AMVN, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
{ACMP, C_REG, C_REG, C_NONE, 1, 4, 0, 0, 0},
{AADD, C_RCON, C_REG, C_REG, 2, 4, 0, 0, 0},
{AADD, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
{AMOVW, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
{AMVN, C_RCON, C_NONE, C_REG, 2, 4, 0, 0, 0},
{ACMP, C_RCON, C_REG, C_NONE, 2, 4, 0, 0, 0},
{AADD, C_SHIFT, C_REG, C_REG, 3, 4, 0, 0, 0},
{AADD, C_SHIFT, C_NONE, C_REG, 3, 4, 0, 0, 0},
{AMVN, C_SHIFT, C_NONE, C_REG, 3, 4, 0, 0, 0},
{ACMP, C_SHIFT, C_REG, C_NONE, 3, 4, 0, 0, 0},
{AMOVW, C_RACON, C_NONE, C_REG, 4, 4, REGSP, 0, 0},
{AB, C_NONE, C_NONE, C_SBRA, 5, 4, 0, LPOOL, 0},
{ABL, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0},
{ABX, C_NONE, C_NONE, C_SBRA, 74, 20, 0, 0, 0},
{ABEQ, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0},
{ABEQ, C_RCON, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // prediction hinted form, hint ignored
{AB, C_NONE, C_NONE, C_ROREG, 6, 4, 0, LPOOL, 0},
{ABL, C_NONE, C_NONE, C_ROREG, 7, 4, 0, 0, 0},
{ABL, C_REG, C_NONE, C_ROREG, 7, 4, 0, 0, 0},
{ABX, C_NONE, C_NONE, C_ROREG, 75, 12, 0, 0, 0},
{ABXRET, C_NONE, C_NONE, C_ROREG, 76, 4, 0, 0, 0},
{ASLL, C_RCON, C_REG, C_REG, 8, 4, 0, 0, 0},
{ASLL, C_RCON, C_NONE, C_REG, 8, 4, 0, 0, 0},
{ASLL, C_REG, C_NONE, C_REG, 9, 4, 0, 0, 0},
{ASLL, C_REG, C_REG, C_REG, 9, 4, 0, 0, 0},
{ASWI, C_NONE, C_NONE, C_NONE, 10, 4, 0, 0, 0},
{ASWI, C_NONE, C_NONE, C_LOREG, 10, 4, 0, 0, 0},
{ASWI, C_NONE, C_NONE, C_LCON, 10, 4, 0, 0, 0},
{AWORD, C_NONE, C_NONE, C_LCON, 11, 4, 0, 0, 0},
{AWORD, C_NONE, C_NONE, C_LCONADDR, 11, 4, 0, 0, 0},
{AWORD, C_NONE, C_NONE, C_ADDR, 11, 4, 0, 0, 0},
{AWORD, C_NONE, C_NONE, C_TLS_LE, 103, 4, 0, 0, 0},
{AWORD, C_NONE, C_NONE, C_TLS_IE, 104, 4, 0, 0, 0},
{AMOVW, C_NCON, C_NONE, C_REG, 12, 4, 0, 0, 0},
{AMOVW, C_LCON, C_NONE, C_REG, 12, 4, 0, LFROM, 0},
{AMOVW, C_LCONADDR, C_NONE, C_REG, 12, 4, 0, LFROM | LPCREL, 4},
{AADD, C_NCON, C_REG, C_REG, 13, 8, 0, 0, 0},
{AADD, C_NCON, C_NONE, C_REG, 13, 8, 0, 0, 0},
{AMVN, C_NCON, C_NONE, C_REG, 13, 8, 0, 0, 0},
{ACMP, C_NCON, C_REG, C_NONE, 13, 8, 0, 0, 0},
{AADD, C_LCON, C_REG, C_REG, 13, 8, 0, LFROM, 0},
{AADD, C_LCON, C_NONE, C_REG, 13, 8, 0, LFROM, 0},
{AMVN, C_LCON, C_NONE, C_REG, 13, 8, 0, LFROM, 0},
{ACMP, C_LCON, C_REG, C_NONE, 13, 8, 0, LFROM, 0},
{AMOVB, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
{AMOVBS, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
{AMOVBU, C_REG, C_NONE, C_REG, 58, 4, 0, 0, 0},
{AMOVH, C_REG, C_NONE, C_REG, 1, 4, 0, 0, 0},
{AMOVHS, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
{AMOVHU, C_REG, C_NONE, C_REG, 14, 8, 0, 0, 0},
{AMUL, C_REG, C_REG, C_REG, 15, 4, 0, 0, 0},
{AMUL, C_REG, C_NONE, C_REG, 15, 4, 0, 0, 0},
{ADIV, C_REG, C_REG, C_REG, 16, 4, 0, 0, 0},
{ADIV, C_REG, C_NONE, C_REG, 16, 4, 0, 0, 0},
{AMULL, C_REG, C_REG, C_REGREG, 17, 4, 0, 0, 0},
{AMULA, C_REG, C_REG, C_REGREG2, 17, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
{AMOVW, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
{AMOVB, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
{AMOVB, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
{AMOVBS, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
{AMOVBS, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
{AMOVBU, C_REG, C_NONE, C_SAUTO, 20, 4, REGSP, 0, 0},
{AMOVBU, C_REG, C_NONE, C_SOREG, 20, 4, 0, 0, 0},
{AMOVW, C_SAUTO, C_NONE, C_REG, 21, 4, REGSP, 0, 0},
{AMOVW, C_SOREG, C_NONE, C_REG, 21, 4, 0, 0, 0},
{AMOVBU, C_SAUTO, C_NONE, C_REG, 21, 4, REGSP, 0, 0},
{AMOVBU, C_SOREG, C_NONE, C_REG, 21, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
{AMOVW, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
{AMOVW, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
{AMOVB, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
{AMOVB, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
{AMOVB, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
{AMOVBS, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
{AMOVBS, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
{AMOVBS, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
{AMOVBU, C_REG, C_NONE, C_LAUTO, 30, 8, REGSP, LTO, 0},
{AMOVBU, C_REG, C_NONE, C_LOREG, 30, 8, 0, LTO, 0},
{AMOVBU, C_REG, C_NONE, C_ADDR, 64, 8, 0, LTO | LPCREL, 4},
{AMOVW, C_TLS_LE, C_NONE, C_REG, 101, 4, 0, LFROM, 0},
{AMOVW, C_TLS_IE, C_NONE, C_REG, 102, 8, 0, LFROM, 0},
{AMOVW, C_LAUTO, C_NONE, C_REG, 31, 8, REGSP, LFROM, 0},
{AMOVW, C_LOREG, C_NONE, C_REG, 31, 8, 0, LFROM, 0},
{AMOVW, C_ADDR, C_NONE, C_REG, 65, 8, 0, LFROM | LPCREL, 4},
{AMOVBU, C_LAUTO, C_NONE, C_REG, 31, 8, REGSP, LFROM, 0},
{AMOVBU, C_LOREG, C_NONE, C_REG, 31, 8, 0, LFROM, 0},
{AMOVBU, C_ADDR, C_NONE, C_REG, 65, 8, 0, LFROM | LPCREL, 4},
{AMOVW, C_LACON, C_NONE, C_REG, 34, 8, REGSP, LFROM, 0},
{AMOVW, C_PSR, C_NONE, C_REG, 35, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_PSR, 36, 4, 0, 0, 0},
{AMOVW, C_RCON, C_NONE, C_PSR, 37, 4, 0, 0, 0},
{AMOVM, C_REGLIST, C_NONE, C_SOREG, 38, 4, 0, 0, 0},
{AMOVM, C_SOREG, C_NONE, C_REGLIST, 39, 4, 0, 0, 0},
{ASWPW, C_SOREG, C_REG, C_REG, 40, 4, 0, 0, 0},
{ARFE, C_NONE, C_NONE, C_NONE, 41, 4, 0, 0, 0},
{AMOVF, C_FREG, C_NONE, C_FAUTO, 50, 4, REGSP, 0, 0},
{AMOVF, C_FREG, C_NONE, C_FOREG, 50, 4, 0, 0, 0},
{AMOVF, C_FAUTO, C_NONE, C_FREG, 51, 4, REGSP, 0, 0},
{AMOVF, C_FOREG, C_NONE, C_FREG, 51, 4, 0, 0, 0},
{AMOVF, C_FREG, C_NONE, C_LAUTO, 52, 12, REGSP, LTO, 0},
{AMOVF, C_FREG, C_NONE, C_LOREG, 52, 12, 0, LTO, 0},
{AMOVF, C_LAUTO, C_NONE, C_FREG, 53, 12, REGSP, LFROM, 0},
{AMOVF, C_LOREG, C_NONE, C_FREG, 53, 12, 0, LFROM, 0},
{AMOVF, C_FREG, C_NONE, C_ADDR, 68, 8, 0, LTO | LPCREL, 4},
{AMOVF, C_ADDR, C_NONE, C_FREG, 69, 8, 0, LFROM | LPCREL, 4},
{AADDF, C_FREG, C_NONE, C_FREG, 54, 4, 0, 0, 0},
{AADDF, C_FREG, C_REG, C_FREG, 54, 4, 0, 0, 0},
{AMOVF, C_FREG, C_NONE, C_FREG, 54, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_FCR, 56, 4, 0, 0, 0},
{AMOVW, C_FCR, C_NONE, C_REG, 57, 4, 0, 0, 0},
{AMOVW, C_SHIFT, C_NONE, C_REG, 59, 4, 0, 0, 0},
{AMOVBU, C_SHIFT, C_NONE, C_REG, 59, 4, 0, 0, 0},
{AMOVB, C_SHIFT, C_NONE, C_REG, 60, 4, 0, 0, 0},
{AMOVBS, C_SHIFT, C_NONE, C_REG, 60, 4, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
{AMOVB, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
{AMOVBS, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
{AMOVBU, C_REG, C_NONE, C_SHIFT, 61, 4, 0, 0, 0},
{AMOVH, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
{AMOVH, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
{AMOVHS, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
{AMOVHS, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
{AMOVHU, C_REG, C_NONE, C_HAUTO, 70, 4, REGSP, 0, 0},
{AMOVHU, C_REG, C_NONE, C_HOREG, 70, 4, 0, 0, 0},
{AMOVB, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
{AMOVB, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
{AMOVBS, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
{AMOVBS, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
{AMOVH, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
{AMOVH, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
{AMOVHS, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
{AMOVHS, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
{AMOVHU, C_HAUTO, C_NONE, C_REG, 71, 4, REGSP, 0, 0},
{AMOVHU, C_HOREG, C_NONE, C_REG, 71, 4, 0, 0, 0},
{AMOVH, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
{AMOVH, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
{AMOVH, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
{AMOVHS, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
{AMOVHS, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
{AMOVHS, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
{AMOVHU, C_REG, C_NONE, C_LAUTO, 72, 8, REGSP, LTO, 0},
{AMOVHU, C_REG, C_NONE, C_LOREG, 72, 8, 0, LTO, 0},
{AMOVHU, C_REG, C_NONE, C_ADDR, 94, 8, 0, LTO | LPCREL, 4},
{AMOVB, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
{AMOVB, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
{AMOVB, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
{AMOVBS, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
{AMOVBS, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
{AMOVBS, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
{AMOVH, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
{AMOVH, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
{AMOVH, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
{AMOVHS, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
{AMOVHS, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
{AMOVHS, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
{AMOVHU, C_LAUTO, C_NONE, C_REG, 73, 8, REGSP, LFROM, 0},
{AMOVHU, C_LOREG, C_NONE, C_REG, 73, 8, 0, LFROM, 0},
{AMOVHU, C_ADDR, C_NONE, C_REG, 93, 8, 0, LFROM | LPCREL, 4},
{ALDREX, C_SOREG, C_NONE, C_REG, 77, 4, 0, 0, 0},
{ASTREX, C_SOREG, C_REG, C_REG, 78, 4, 0, 0, 0},
{AMOVF, C_ZFCON, C_NONE, C_FREG, 80, 8, 0, 0, 0},
{AMOVF, C_SFCON, C_NONE, C_FREG, 81, 4, 0, 0, 0},
{ACMPF, C_FREG, C_REG, C_NONE, 82, 8, 0, 0, 0},
{ACMPF, C_FREG, C_NONE, C_NONE, 83, 8, 0, 0, 0},
{AMOVFW, C_FREG, C_NONE, C_FREG, 84, 4, 0, 0, 0},
{AMOVWF, C_FREG, C_NONE, C_FREG, 85, 4, 0, 0, 0},
{AMOVFW, C_FREG, C_NONE, C_REG, 86, 8, 0, 0, 0},
{AMOVWF, C_REG, C_NONE, C_FREG, 87, 8, 0, 0, 0},
{AMOVW, C_REG, C_NONE, C_FREG, 88, 4, 0, 0, 0},
{AMOVW, C_FREG, C_NONE, C_REG, 89, 4, 0, 0, 0},
{ATST, C_REG, C_NONE, C_NONE, 90, 4, 0, 0, 0},
{ALDREXD, C_SOREG, C_NONE, C_REG, 91, 4, 0, 0, 0},
{ASTREXD, C_SOREG, C_REG, C_REG, 92, 4, 0, 0, 0},
{APLD, C_SOREG, C_NONE, C_NONE, 95, 4, 0, 0, 0},
{obj.AUNDEF, C_NONE, C_NONE, C_NONE, 96, 4, 0, 0, 0},
{ACLZ, C_REG, C_NONE, C_REG, 97, 4, 0, 0, 0},
{AMULWT, C_REG, C_REG, C_REG, 98, 4, 0, 0, 0},
{AMULAWT, C_REG, C_REG, C_REGREG2, 99, 4, 0, 0, 0},
{obj.AUSEFIELD, C_ADDR, C_NONE, C_NONE, 0, 0, 0, 0, 0},
{obj.APCDATA, C_LCON, C_NONE, C_LCON, 0, 0, 0, 0, 0},
{obj.AFUNCDATA, C_LCON, C_NONE, C_ADDR, 0, 0, 0, 0, 0},
{obj.ANOP, C_NONE, C_NONE, C_NONE, 0, 0, 0, 0, 0},
{obj.ADUFFZERO, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // same as ABL
{obj.ADUFFCOPY, C_NONE, C_NONE, C_SBRA, 5, 4, 0, 0, 0}, // same as ABL
{ADATABUNDLE, C_NONE, C_NONE, C_NONE, 100, 4, 0, 0, 0},
{ADATABUNDLEEND, C_NONE, C_NONE, C_NONE, 100, 0, 0, 0, 0},
{obj.AXXX, C_NONE, C_NONE, C_NONE, 0, 4, 0, 0, 0},
}
var pool struct {
......
......@@ -59,342 +59,342 @@ type Optab struct {
}
var optab = []Optab{
Optab{obj.ATEXT, C_LEXT, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0},
Optab{obj.ATEXT, C_LEXT, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0},
Optab{obj.ATEXT, C_ADDR, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0},
Optab{obj.ATEXT, C_ADDR, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0},
{obj.ATEXT, C_LEXT, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0},
{obj.ATEXT, C_LEXT, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0},
{obj.ATEXT, C_ADDR, C_NONE, C_NONE, C_TEXTSIZE, 0, 0, 0},
{obj.ATEXT, C_ADDR, C_NONE, C_LCON, C_TEXTSIZE, 0, 0, 0},
/* move register */
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_REG, 1, 4, 0},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_REG, 12, 4, 0},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_REG, 13, 4, 0},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_REG, 12, 4, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_REG, 13, 4, 0},
Optab{AADD, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
Optab{AADD, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
Optab{AADD, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
Optab{AADD, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
Optab{AADD, C_UCON, C_REG, C_NONE, C_REG, 20, 4, 0},
Optab{AADD, C_UCON, C_NONE, C_NONE, C_REG, 20, 4, 0},
Optab{AADD, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
Optab{AADD, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
Optab{AADDC, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
Optab{AADDC, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
Optab{AADDC, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
Optab{AADDC, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
Optab{AADDC, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
Optab{AADDC, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
Optab{AAND, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0}, /* logical, no literal */
Optab{AAND, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{AANDCC, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
Optab{AANDCC, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{AANDCC, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 4, 0},
Optab{AANDCC, C_ANDCON, C_REG, C_NONE, C_REG, 58, 4, 0},
Optab{AANDCC, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0},
Optab{AANDCC, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0},
Optab{AANDCC, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0},
Optab{AANDCC, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0},
Optab{AMULLW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
Optab{AMULLW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
Optab{AMULLW, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
Optab{AMULLW, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
Optab{AMULLW, C_ANDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
Optab{AMULLW, C_ANDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
Optab{AMULLW, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
Optab{AMULLW, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
Optab{ASUBC, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0},
Optab{ASUBC, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0},
Optab{ASUBC, C_REG, C_NONE, C_ADDCON, C_REG, 27, 4, 0},
Optab{ASUBC, C_REG, C_NONE, C_LCON, C_REG, 28, 12, 0},
Optab{AOR, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0}, /* logical, literal not cc (or/xor) */
Optab{AOR, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{AOR, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 4, 0},
Optab{AOR, C_ANDCON, C_REG, C_NONE, C_REG, 58, 4, 0},
Optab{AOR, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0},
Optab{AOR, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0},
Optab{AOR, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0},
Optab{AOR, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0},
Optab{ADIVW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0}, /* op r1[,r2],r3 */
Optab{ADIVW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
Optab{ASUB, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0}, /* op r2[,r1],r3 */
Optab{ASUB, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0},
Optab{ASLW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{ASLW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
Optab{ASLD, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{ASLD, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
Optab{ASLD, C_SCON, C_REG, C_NONE, C_REG, 25, 4, 0},
Optab{ASLD, C_SCON, C_NONE, C_NONE, C_REG, 25, 4, 0},
Optab{ASLW, C_SCON, C_REG, C_NONE, C_REG, 57, 4, 0},
Optab{ASLW, C_SCON, C_NONE, C_NONE, C_REG, 57, 4, 0},
Optab{ASRAW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{ASRAW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
Optab{ASRAW, C_SCON, C_REG, C_NONE, C_REG, 56, 4, 0},
Optab{ASRAW, C_SCON, C_NONE, C_NONE, C_REG, 56, 4, 0},
Optab{ASRAD, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
Optab{ASRAD, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
Optab{ASRAD, C_SCON, C_REG, C_NONE, C_REG, 56, 4, 0},
Optab{ASRAD, C_SCON, C_NONE, C_NONE, C_REG, 56, 4, 0},
Optab{ARLWMI, C_SCON, C_REG, C_LCON, C_REG, 62, 4, 0},
Optab{ARLWMI, C_REG, C_REG, C_LCON, C_REG, 63, 4, 0},
Optab{ARLDMI, C_SCON, C_REG, C_LCON, C_REG, 30, 4, 0},
Optab{ARLDC, C_SCON, C_REG, C_LCON, C_REG, 29, 4, 0},
Optab{ARLDCL, C_SCON, C_REG, C_LCON, C_REG, 29, 4, 0},
Optab{ARLDCL, C_REG, C_REG, C_LCON, C_REG, 14, 4, 0},
Optab{ARLDCL, C_REG, C_NONE, C_LCON, C_REG, 14, 4, 0},
Optab{AFADD, C_FREG, C_NONE, C_NONE, C_FREG, 2, 4, 0},
Optab{AFADD, C_FREG, C_REG, C_NONE, C_FREG, 2, 4, 0},
Optab{AFABS, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0},
Optab{AFABS, C_NONE, C_NONE, C_NONE, C_FREG, 33, 4, 0},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0},
Optab{AFMADD, C_FREG, C_REG, C_FREG, C_FREG, 34, 4, 0},
Optab{AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 4, 0},
Optab{AFMUL, C_FREG, C_REG, C_NONE, C_FREG, 32, 4, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_REG, 1, 4, 0},
{AMOVB, C_REG, C_NONE, C_NONE, C_REG, 12, 4, 0},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_REG, 13, 4, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_REG, 12, 4, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_REG, 13, 4, 0},
{AADD, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
{AADD, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
{AADD, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
{AADD, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
{AADD, C_UCON, C_REG, C_NONE, C_REG, 20, 4, 0},
{AADD, C_UCON, C_NONE, C_NONE, C_REG, 20, 4, 0},
{AADD, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
{AADD, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
{AADDC, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
{AADDC, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
{AADDC, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
{AADDC, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
{AADDC, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
{AADDC, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
{AAND, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0}, /* logical, no literal */
{AAND, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{AANDCC, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
{AANDCC, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{AANDCC, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 4, 0},
{AANDCC, C_ANDCON, C_REG, C_NONE, C_REG, 58, 4, 0},
{AANDCC, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0},
{AANDCC, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0},
{AANDCC, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0},
{AANDCC, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0},
{AMULLW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0},
{AMULLW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
{AMULLW, C_ADDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
{AMULLW, C_ADDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
{AMULLW, C_ANDCON, C_REG, C_NONE, C_REG, 4, 4, 0},
{AMULLW, C_ANDCON, C_NONE, C_NONE, C_REG, 4, 4, 0},
{AMULLW, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
{AMULLW, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
{ASUBC, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0},
{ASUBC, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0},
{ASUBC, C_REG, C_NONE, C_ADDCON, C_REG, 27, 4, 0},
{ASUBC, C_REG, C_NONE, C_LCON, C_REG, 28, 12, 0},
{AOR, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0}, /* logical, literal not cc (or/xor) */
{AOR, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{AOR, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 4, 0},
{AOR, C_ANDCON, C_REG, C_NONE, C_REG, 58, 4, 0},
{AOR, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0},
{AOR, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0},
{AOR, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0},
{AOR, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0},
{ADIVW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0}, /* op r1[,r2],r3 */
{ADIVW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0},
{ASUB, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0}, /* op r2[,r1],r3 */
{ASUB, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0},
{ASLW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{ASLW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
{ASLD, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{ASLD, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
{ASLD, C_SCON, C_REG, C_NONE, C_REG, 25, 4, 0},
{ASLD, C_SCON, C_NONE, C_NONE, C_REG, 25, 4, 0},
{ASLW, C_SCON, C_REG, C_NONE, C_REG, 57, 4, 0},
{ASLW, C_SCON, C_NONE, C_NONE, C_REG, 57, 4, 0},
{ASRAW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{ASRAW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
{ASRAW, C_SCON, C_REG, C_NONE, C_REG, 56, 4, 0},
{ASRAW, C_SCON, C_NONE, C_NONE, C_REG, 56, 4, 0},
{ASRAD, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0},
{ASRAD, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0},
{ASRAD, C_SCON, C_REG, C_NONE, C_REG, 56, 4, 0},
{ASRAD, C_SCON, C_NONE, C_NONE, C_REG, 56, 4, 0},
{ARLWMI, C_SCON, C_REG, C_LCON, C_REG, 62, 4, 0},
{ARLWMI, C_REG, C_REG, C_LCON, C_REG, 63, 4, 0},
{ARLDMI, C_SCON, C_REG, C_LCON, C_REG, 30, 4, 0},
{ARLDC, C_SCON, C_REG, C_LCON, C_REG, 29, 4, 0},
{ARLDCL, C_SCON, C_REG, C_LCON, C_REG, 29, 4, 0},
{ARLDCL, C_REG, C_REG, C_LCON, C_REG, 14, 4, 0},
{ARLDCL, C_REG, C_NONE, C_LCON, C_REG, 14, 4, 0},
{AFADD, C_FREG, C_NONE, C_NONE, C_FREG, 2, 4, 0},
{AFADD, C_FREG, C_REG, C_NONE, C_FREG, 2, 4, 0},
{AFABS, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0},
{AFABS, C_NONE, C_NONE, C_NONE, C_FREG, 33, 4, 0},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0},
{AFMADD, C_FREG, C_REG, C_FREG, C_FREG, 34, 4, 0},
{AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 4, 0},
{AFMUL, C_FREG, C_REG, C_NONE, C_FREG, 32, 4, 0},
/* store, short offset */
Optab{AMOVD, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVW, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVWZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVBZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVBZU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVB, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVBU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVBZU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AMOVBU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVD, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVW, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVWZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVBZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVBZU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVB, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVBU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO},
{AMOVD, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AMOVW, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AMOVB, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AMOVD, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AMOVW, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AMOVB, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AMOVD, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVW, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVBZU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVB, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AMOVBU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
/* load, short offset */
Optab{AMOVD, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVW, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVWZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVBZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVBZU, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVB, C_ZOREG, C_REG, C_NONE, C_REG, 9, 8, REGZERO},
Optab{AMOVBU, C_ZOREG, C_REG, C_NONE, C_REG, 9, 8, REGZERO},
Optab{AMOVD, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
Optab{AMOVW, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
Optab{AMOVWZ, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
Optab{AMOVBZ, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
Optab{AMOVB, C_SEXT, C_NONE, C_NONE, C_REG, 9, 8, REGSB},
Optab{AMOVD, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
Optab{AMOVW, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
Optab{AMOVWZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
Optab{AMOVBZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
Optab{AMOVB, C_SAUTO, C_NONE, C_NONE, C_REG, 9, 8, REGSP},
Optab{AMOVD, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVW, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVWZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVBZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVBZU, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
Optab{AMOVB, C_SOREG, C_NONE, C_NONE, C_REG, 9, 8, REGZERO},
Optab{AMOVBU, C_SOREG, C_NONE, C_NONE, C_REG, 9, 8, REGZERO},
{AMOVD, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVW, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVWZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVBZ, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVBZU, C_ZOREG, C_REG, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVB, C_ZOREG, C_REG, C_NONE, C_REG, 9, 8, REGZERO},
{AMOVBU, C_ZOREG, C_REG, C_NONE, C_REG, 9, 8, REGZERO},
{AMOVD, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
{AMOVW, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
{AMOVWZ, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
{AMOVBZ, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB},
{AMOVB, C_SEXT, C_NONE, C_NONE, C_REG, 9, 8, REGSB},
{AMOVD, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
{AMOVW, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
{AMOVWZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
{AMOVBZ, C_SAUTO, C_NONE, C_NONE, C_REG, 8, 4, REGSP},
{AMOVB, C_SAUTO, C_NONE, C_NONE, C_REG, 9, 8, REGSP},
{AMOVD, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVW, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVWZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVBZ, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVBZU, C_SOREG, C_NONE, C_NONE, C_REG, 8, 4, REGZERO},
{AMOVB, C_SOREG, C_NONE, C_NONE, C_REG, 9, 8, REGZERO},
{AMOVBU, C_SOREG, C_NONE, C_NONE, C_REG, 9, 8, REGZERO},
/* store, long offset */
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
Optab{AMOVBZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
Optab{AMOVB, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AMOVW, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AMOVB, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AMOVD, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AMOVW, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AMOVB, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AMOVD, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AMOVW, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AMOVB, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AMOVD, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{AMOVBZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{AMOVB, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
/* load, long offset */
Optab{AMOVD, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
Optab{AMOVW, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
Optab{AMOVWZ, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
Optab{AMOVBZ, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
Optab{AMOVB, C_LEXT, C_NONE, C_NONE, C_REG, 37, 12, REGSB},
Optab{AMOVD, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
Optab{AMOVW, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
Optab{AMOVWZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
Optab{AMOVBZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
Optab{AMOVB, C_LAUTO, C_NONE, C_NONE, C_REG, 37, 12, REGSP},
Optab{AMOVD, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
Optab{AMOVW, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
Optab{AMOVWZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
Optab{AMOVBZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
Optab{AMOVB, C_LOREG, C_NONE, C_NONE, C_REG, 37, 12, REGZERO},
Optab{AMOVD, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
Optab{AMOVW, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
Optab{AMOVWZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
Optab{AMOVBZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
Optab{AMOVB, C_ADDR, C_NONE, C_NONE, C_REG, 76, 12, 0},
{AMOVD, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
{AMOVW, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
{AMOVWZ, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
{AMOVBZ, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB},
{AMOVB, C_LEXT, C_NONE, C_NONE, C_REG, 37, 12, REGSB},
{AMOVD, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
{AMOVW, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
{AMOVWZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
{AMOVBZ, C_LAUTO, C_NONE, C_NONE, C_REG, 36, 8, REGSP},
{AMOVB, C_LAUTO, C_NONE, C_NONE, C_REG, 37, 12, REGSP},
{AMOVD, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
{AMOVW, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
{AMOVWZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
{AMOVBZ, C_LOREG, C_NONE, C_NONE, C_REG, 36, 8, REGZERO},
{AMOVB, C_LOREG, C_NONE, C_NONE, C_REG, 37, 12, REGZERO},
{AMOVD, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
{AMOVW, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
{AMOVWZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
{AMOVBZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0},
{AMOVB, C_ADDR, C_NONE, C_NONE, C_REG, 76, 12, 0},
/* load constant */
Optab{AMOVD, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB},
Optab{AMOVD, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
Optab{AMOVD, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
Optab{AMOVD, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
Optab{AMOVD, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
Optab{AMOVW, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB}, /* TO DO: check */
Optab{AMOVW, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
Optab{AMOVW, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
Optab{AMOVW, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
Optab{AMOVW, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
Optab{AMOVWZ, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB}, /* TO DO: check */
Optab{AMOVWZ, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
Optab{AMOVWZ, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
Optab{AMOVWZ, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
Optab{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVD, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB},
{AMOVD, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
{AMOVD, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
{AMOVD, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
{AMOVD, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVW, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB}, /* TO DO: check */
{AMOVW, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
{AMOVW, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
{AMOVW, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
{AMOVW, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVWZ, C_SECON, C_NONE, C_NONE, C_REG, 3, 4, REGSB}, /* TO DO: check */
{AMOVWZ, C_SACON, C_NONE, C_NONE, C_REG, 3, 4, REGSP},
{AMOVWZ, C_LECON, C_NONE, C_NONE, C_REG, 26, 8, REGSB},
{AMOVWZ, C_LACON, C_NONE, C_NONE, C_REG, 26, 8, REGSP},
{AMOVWZ, C_ADDCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
/* load unsigned/long constants (TO DO: check) */
Optab{AMOVD, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
Optab{AMOVD, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
Optab{AMOVW, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
Optab{AMOVW, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
Optab{AMOVWZ, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
Optab{AMOVWZ, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
Optab{AMOVHBR, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0},
Optab{AMOVHBR, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
Optab{AMOVHBR, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0},
Optab{AMOVHBR, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
Optab{ASYSCALL, C_NONE, C_NONE, C_NONE, C_NONE, 5, 4, 0},
Optab{ASYSCALL, C_REG, C_NONE, C_NONE, C_NONE, 77, 12, 0},
Optab{ASYSCALL, C_SCON, C_NONE, C_NONE, C_NONE, 77, 12, 0},
Optab{ABEQ, C_NONE, C_NONE, C_NONE, C_SBRA, 16, 4, 0},
Optab{ABEQ, C_CREG, C_NONE, C_NONE, C_SBRA, 16, 4, 0},
Optab{ABR, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0},
Optab{ABC, C_SCON, C_REG, C_NONE, C_SBRA, 16, 4, 0},
Optab{ABC, C_SCON, C_REG, C_NONE, C_LBRA, 17, 4, 0},
Optab{ABR, C_NONE, C_NONE, C_NONE, C_LR, 18, 4, 0},
Optab{ABR, C_NONE, C_NONE, C_NONE, C_CTR, 18, 4, 0},
Optab{ABR, C_REG, C_NONE, C_NONE, C_CTR, 18, 4, 0},
Optab{ABR, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0},
Optab{ABC, C_NONE, C_REG, C_NONE, C_LR, 18, 4, 0},
Optab{ABC, C_NONE, C_REG, C_NONE, C_CTR, 18, 4, 0},
Optab{ABC, C_SCON, C_REG, C_NONE, C_LR, 18, 4, 0},
Optab{ABC, C_SCON, C_REG, C_NONE, C_CTR, 18, 4, 0},
Optab{ABC, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0},
Optab{AFMOVD, C_SEXT, C_NONE, C_NONE, C_FREG, 8, 4, REGSB},
Optab{AFMOVD, C_SAUTO, C_NONE, C_NONE, C_FREG, 8, 4, REGSP},
Optab{AFMOVD, C_SOREG, C_NONE, C_NONE, C_FREG, 8, 4, REGZERO},
Optab{AFMOVD, C_LEXT, C_NONE, C_NONE, C_FREG, 36, 8, REGSB},
Optab{AFMOVD, C_LAUTO, C_NONE, C_NONE, C_FREG, 36, 8, REGSP},
Optab{AFMOVD, C_LOREG, C_NONE, C_NONE, C_FREG, 36, 8, REGZERO},
Optab{AFMOVD, C_ADDR, C_NONE, C_NONE, C_FREG, 75, 8, 0},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
Optab{AFMOVD, C_FREG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
Optab{ASYNC, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0},
Optab{AWORD, C_LCON, C_NONE, C_NONE, C_NONE, 40, 4, 0},
Optab{ADWORD, C_LCON, C_NONE, C_NONE, C_NONE, 31, 8, 0},
Optab{ADWORD, C_DCON, C_NONE, C_NONE, C_NONE, 31, 8, 0},
Optab{AADDME, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0},
Optab{AEXTSB, C_REG, C_NONE, C_NONE, C_REG, 48, 4, 0},
Optab{AEXTSB, C_NONE, C_NONE, C_NONE, C_REG, 48, 4, 0},
Optab{ANEG, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0},
Optab{ANEG, C_NONE, C_NONE, C_NONE, C_REG, 47, 4, 0},
Optab{AREM, C_REG, C_NONE, C_NONE, C_REG, 50, 12, 0},
Optab{AREM, C_REG, C_REG, C_NONE, C_REG, 50, 12, 0},
Optab{AREMU, C_REG, C_NONE, C_NONE, C_REG, 50, 16, 0},
Optab{AREMU, C_REG, C_REG, C_NONE, C_REG, 50, 16, 0},
Optab{AREMD, C_REG, C_NONE, C_NONE, C_REG, 51, 12, 0},
Optab{AREMD, C_REG, C_REG, C_NONE, C_REG, 51, 12, 0},
Optab{AREMDU, C_REG, C_NONE, C_NONE, C_REG, 51, 12, 0},
Optab{AREMDU, C_REG, C_REG, C_NONE, C_REG, 51, 12, 0},
Optab{AMTFSB0, C_SCON, C_NONE, C_NONE, C_NONE, 52, 4, 0},
Optab{AMOVFL, C_FPSCR, C_NONE, C_NONE, C_FREG, 53, 4, 0},
Optab{AMOVFL, C_FREG, C_NONE, C_NONE, C_FPSCR, 64, 4, 0},
Optab{AMOVFL, C_FREG, C_NONE, C_LCON, C_FPSCR, 64, 4, 0},
Optab{AMOVFL, C_LCON, C_NONE, C_NONE, C_FPSCR, 65, 4, 0},
Optab{AMOVD, C_MSR, C_NONE, C_NONE, C_REG, 54, 4, 0}, /* mfmsr */
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_MSR, 54, 4, 0}, /* mtmsrd */
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_MSR, 54, 4, 0}, /* mtmsr */
{AMOVD, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVD, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
{AMOVW, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVW, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
{AMOVWZ, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO},
{AMOVWZ, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0},
{AMOVHBR, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0},
{AMOVHBR, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
{AMOVHBR, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0},
{AMOVHBR, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
{ASYSCALL, C_NONE, C_NONE, C_NONE, C_NONE, 5, 4, 0},
{ASYSCALL, C_REG, C_NONE, C_NONE, C_NONE, 77, 12, 0},
{ASYSCALL, C_SCON, C_NONE, C_NONE, C_NONE, 77, 12, 0},
{ABEQ, C_NONE, C_NONE, C_NONE, C_SBRA, 16, 4, 0},
{ABEQ, C_CREG, C_NONE, C_NONE, C_SBRA, 16, 4, 0},
{ABR, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0},
{ABC, C_SCON, C_REG, C_NONE, C_SBRA, 16, 4, 0},
{ABC, C_SCON, C_REG, C_NONE, C_LBRA, 17, 4, 0},
{ABR, C_NONE, C_NONE, C_NONE, C_LR, 18, 4, 0},
{ABR, C_NONE, C_NONE, C_NONE, C_CTR, 18, 4, 0},
{ABR, C_REG, C_NONE, C_NONE, C_CTR, 18, 4, 0},
{ABR, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0},
{ABC, C_NONE, C_REG, C_NONE, C_LR, 18, 4, 0},
{ABC, C_NONE, C_REG, C_NONE, C_CTR, 18, 4, 0},
{ABC, C_SCON, C_REG, C_NONE, C_LR, 18, 4, 0},
{ABC, C_SCON, C_REG, C_NONE, C_CTR, 18, 4, 0},
{ABC, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0},
{AFMOVD, C_SEXT, C_NONE, C_NONE, C_FREG, 8, 4, REGSB},
{AFMOVD, C_SAUTO, C_NONE, C_NONE, C_FREG, 8, 4, REGSP},
{AFMOVD, C_SOREG, C_NONE, C_NONE, C_FREG, 8, 4, REGZERO},
{AFMOVD, C_LEXT, C_NONE, C_NONE, C_FREG, 36, 8, REGSB},
{AFMOVD, C_LAUTO, C_NONE, C_NONE, C_FREG, 36, 8, REGSP},
{AFMOVD, C_LOREG, C_NONE, C_NONE, C_FREG, 36, 8, REGZERO},
{AFMOVD, C_ADDR, C_NONE, C_NONE, C_FREG, 75, 8, 0},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO},
{AFMOVD, C_FREG, C_NONE, C_NONE, C_ADDR, 74, 8, 0},
{ASYNC, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0},
{AWORD, C_LCON, C_NONE, C_NONE, C_NONE, 40, 4, 0},
{ADWORD, C_LCON, C_NONE, C_NONE, C_NONE, 31, 8, 0},
{ADWORD, C_DCON, C_NONE, C_NONE, C_NONE, 31, 8, 0},
{AADDME, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0},
{AEXTSB, C_REG, C_NONE, C_NONE, C_REG, 48, 4, 0},
{AEXTSB, C_NONE, C_NONE, C_NONE, C_REG, 48, 4, 0},
{ANEG, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0},
{ANEG, C_NONE, C_NONE, C_NONE, C_REG, 47, 4, 0},
{AREM, C_REG, C_NONE, C_NONE, C_REG, 50, 12, 0},
{AREM, C_REG, C_REG, C_NONE, C_REG, 50, 12, 0},
{AREMU, C_REG, C_NONE, C_NONE, C_REG, 50, 16, 0},
{AREMU, C_REG, C_REG, C_NONE, C_REG, 50, 16, 0},
{AREMD, C_REG, C_NONE, C_NONE, C_REG, 51, 12, 0},
{AREMD, C_REG, C_REG, C_NONE, C_REG, 51, 12, 0},
{AREMDU, C_REG, C_NONE, C_NONE, C_REG, 51, 12, 0},
{AREMDU, C_REG, C_REG, C_NONE, C_REG, 51, 12, 0},
{AMTFSB0, C_SCON, C_NONE, C_NONE, C_NONE, 52, 4, 0},
{AMOVFL, C_FPSCR, C_NONE, C_NONE, C_FREG, 53, 4, 0},
{AMOVFL, C_FREG, C_NONE, C_NONE, C_FPSCR, 64, 4, 0},
{AMOVFL, C_FREG, C_NONE, C_LCON, C_FPSCR, 64, 4, 0},
{AMOVFL, C_LCON, C_NONE, C_NONE, C_FPSCR, 65, 4, 0},
{AMOVD, C_MSR, C_NONE, C_NONE, C_REG, 54, 4, 0}, /* mfmsr */
{AMOVD, C_REG, C_NONE, C_NONE, C_MSR, 54, 4, 0}, /* mtmsrd */
{AMOVWZ, C_REG, C_NONE, C_NONE, C_MSR, 54, 4, 0}, /* mtmsr */
/* 64-bit special registers */
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_LR, 66, 4, 0},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
Optab{AMOVD, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
Optab{AMOVD, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVD, C_LR, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVD, C_CTR, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVD, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_LR, 66, 4, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
{AMOVD, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
{AMOVD, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVD, C_LR, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVD, C_CTR, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVD, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
/* 32-bit special registers (gloss over sign-extension or not?) */
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
Optab{AMOVW, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVW, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
Optab{AMOVWZ, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVWZ, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
Optab{AMOVFL, C_FPSCR, C_NONE, C_NONE, C_CREG, 73, 4, 0},
Optab{AMOVFL, C_CREG, C_NONE, C_NONE, C_CREG, 67, 4, 0},
Optab{AMOVW, C_CREG, C_NONE, C_NONE, C_REG, 68, 4, 0},
Optab{AMOVWZ, C_CREG, C_NONE, C_NONE, C_REG, 68, 4, 0},
Optab{AMOVFL, C_REG, C_NONE, C_LCON, C_CREG, 69, 4, 0},
Optab{AMOVFL, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
Optab{AMOVW, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
Optab{AMOVWZ, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
Optab{ACMP, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0},
Optab{ACMP, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0},
Optab{ACMP, C_REG, C_NONE, C_NONE, C_ADDCON, 71, 4, 0},
Optab{ACMP, C_REG, C_REG, C_NONE, C_ADDCON, 71, 4, 0},
Optab{ACMPU, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0},
Optab{ACMPU, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0},
Optab{ACMPU, C_REG, C_NONE, C_NONE, C_ANDCON, 71, 4, 0},
Optab{ACMPU, C_REG, C_REG, C_NONE, C_ANDCON, 71, 4, 0},
Optab{AFCMPO, C_FREG, C_NONE, C_NONE, C_FREG, 70, 4, 0},
Optab{AFCMPO, C_FREG, C_REG, C_NONE, C_FREG, 70, 4, 0},
Optab{ATW, C_LCON, C_REG, C_NONE, C_REG, 60, 4, 0},
Optab{ATW, C_LCON, C_REG, C_NONE, C_ADDCON, 61, 4, 0},
Optab{ADCBF, C_ZOREG, C_NONE, C_NONE, C_NONE, 43, 4, 0},
Optab{ADCBF, C_ZOREG, C_REG, C_NONE, C_NONE, 43, 4, 0},
Optab{AECOWX, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0},
Optab{AECIWX, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0},
Optab{AECOWX, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
Optab{AECIWX, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
Optab{AEIEIO, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0},
Optab{ATLBIE, C_REG, C_NONE, C_NONE, C_NONE, 49, 4, 0},
Optab{ATLBIE, C_SCON, C_NONE, C_NONE, C_REG, 49, 4, 0},
Optab{ASLBMFEE, C_REG, C_NONE, C_NONE, C_REG, 55, 4, 0},
Optab{ASLBMTE, C_REG, C_NONE, C_NONE, C_REG, 55, 4, 0},
Optab{ASTSW, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
Optab{ASTSW, C_REG, C_NONE, C_LCON, C_ZOREG, 41, 4, 0},
Optab{ALSW, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
Optab{ALSW, C_ZOREG, C_NONE, C_LCON, C_REG, 42, 4, 0},
Optab{obj.AUNDEF, C_NONE, C_NONE, C_NONE, C_NONE, 78, 4, 0},
Optab{obj.AUSEFIELD, C_ADDR, C_NONE, C_NONE, C_NONE, 0, 0, 0},
Optab{obj.APCDATA, C_LCON, C_NONE, C_NONE, C_LCON, 0, 0, 0},
Optab{obj.AFUNCDATA, C_SCON, C_NONE, C_NONE, C_ADDR, 0, 0, 0},
Optab{obj.ANOP, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0, 0},
Optab{obj.ADUFFZERO, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0}, // same as ABR/ABL
Optab{obj.ADUFFCOPY, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0}, // same as ABR/ABL
Optab{obj.AXXX, C_NONE, C_NONE, C_NONE, C_NONE, 0, 4, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
{AMOVW, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVW, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0},
{AMOVWZ, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVWZ, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0},
{AMOVFL, C_FPSCR, C_NONE, C_NONE, C_CREG, 73, 4, 0},
{AMOVFL, C_CREG, C_NONE, C_NONE, C_CREG, 67, 4, 0},
{AMOVW, C_CREG, C_NONE, C_NONE, C_REG, 68, 4, 0},
{AMOVWZ, C_CREG, C_NONE, C_NONE, C_REG, 68, 4, 0},
{AMOVFL, C_REG, C_NONE, C_LCON, C_CREG, 69, 4, 0},
{AMOVFL, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
{AMOVW, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
{AMOVWZ, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0},
{ACMP, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0},
{ACMP, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0},
{ACMP, C_REG, C_NONE, C_NONE, C_ADDCON, 71, 4, 0},
{ACMP, C_REG, C_REG, C_NONE, C_ADDCON, 71, 4, 0},
{ACMPU, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0},
{ACMPU, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0},
{ACMPU, C_REG, C_NONE, C_NONE, C_ANDCON, 71, 4, 0},
{ACMPU, C_REG, C_REG, C_NONE, C_ANDCON, 71, 4, 0},
{AFCMPO, C_FREG, C_NONE, C_NONE, C_FREG, 70, 4, 0},
{AFCMPO, C_FREG, C_REG, C_NONE, C_FREG, 70, 4, 0},
{ATW, C_LCON, C_REG, C_NONE, C_REG, 60, 4, 0},
{ATW, C_LCON, C_REG, C_NONE, C_ADDCON, 61, 4, 0},
{ADCBF, C_ZOREG, C_NONE, C_NONE, C_NONE, 43, 4, 0},
{ADCBF, C_ZOREG, C_REG, C_NONE, C_NONE, 43, 4, 0},
{AECOWX, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0},
{AECIWX, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0},
{AECOWX, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
{AECIWX, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
{AEIEIO, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0},
{ATLBIE, C_REG, C_NONE, C_NONE, C_NONE, 49, 4, 0},
{ATLBIE, C_SCON, C_NONE, C_NONE, C_REG, 49, 4, 0},
{ASLBMFEE, C_REG, C_NONE, C_NONE, C_REG, 55, 4, 0},
{ASLBMTE, C_REG, C_NONE, C_NONE, C_REG, 55, 4, 0},
{ASTSW, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0},
{ASTSW, C_REG, C_NONE, C_LCON, C_ZOREG, 41, 4, 0},
{ALSW, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0},
{ALSW, C_ZOREG, C_NONE, C_LCON, C_REG, 42, 4, 0},
{obj.AUNDEF, C_NONE, C_NONE, C_NONE, C_NONE, 78, 4, 0},
{obj.AUSEFIELD, C_ADDR, C_NONE, C_NONE, C_NONE, 0, 0, 0},
{obj.APCDATA, C_LCON, C_NONE, C_NONE, C_LCON, 0, 0, 0},
{obj.AFUNCDATA, C_SCON, C_NONE, C_NONE, C_ADDR, 0, 0, 0},
{obj.ANOP, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0, 0},
{obj.ADUFFZERO, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0}, // same as ABR/ABL
{obj.ADUFFCOPY, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0}, // same as ABR/ABL
{obj.AXXX, C_NONE, C_NONE, C_NONE, C_NONE, 0, 4, 0},
}
type Oprang struct {
......
......@@ -789,704 +789,704 @@ var yaes2 = []ytab{
var optab =
/* as, ytab, andproto, opcode */
[]Optab{
Optab{obj.AXXX, nil, 0, [23]uint8{}},
Optab{AAAA, ynone, P32, [23]uint8{0x37}},
Optab{AAAD, ynone, P32, [23]uint8{0xd5, 0x0a}},
Optab{AAAM, ynone, P32, [23]uint8{0xd4, 0x0a}},
Optab{AAAS, ynone, P32, [23]uint8{0x3f}},
Optab{AADCB, yxorb, Pb, [23]uint8{0x14, 0x80, 02, 0x10, 0x10}},
Optab{AADCL, yxorl, Px, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
Optab{AADCQ, yxorl, Pw, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
Optab{AADCW, yxorl, Pe, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
Optab{AADDB, yxorb, Pb, [23]uint8{0x04, 0x80, 00, 0x00, 0x02}},
Optab{AADDL, yaddl, Px, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
Optab{AADDPD, yxm, Pq, [23]uint8{0x58}},
Optab{AADDPS, yxm, Pm, [23]uint8{0x58}},
Optab{AADDQ, yaddl, Pw, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
Optab{AADDSD, yxm, Pf2, [23]uint8{0x58}},
Optab{AADDSS, yxm, Pf3, [23]uint8{0x58}},
Optab{AADDW, yaddl, Pe, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
Optab{AADJSP, nil, 0, [23]uint8{}},
Optab{AANDB, yxorb, Pb, [23]uint8{0x24, 0x80, 04, 0x20, 0x22}},
Optab{AANDL, yxorl, Px, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
Optab{AANDNPD, yxm, Pq, [23]uint8{0x55}},
Optab{AANDNPS, yxm, Pm, [23]uint8{0x55}},
Optab{AANDPD, yxm, Pq, [23]uint8{0x54}},
Optab{AANDPS, yxm, Pq, [23]uint8{0x54}},
Optab{AANDQ, yxorl, Pw, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
Optab{AANDW, yxorl, Pe, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
Optab{AARPL, yrl_ml, P32, [23]uint8{0x63}},
Optab{ABOUNDL, yrl_m, P32, [23]uint8{0x62}},
Optab{ABOUNDW, yrl_m, Pe, [23]uint8{0x62}},
Optab{ABSFL, yml_rl, Pm, [23]uint8{0xbc}},
Optab{ABSFQ, yml_rl, Pw, [23]uint8{0x0f, 0xbc}},
Optab{ABSFW, yml_rl, Pq, [23]uint8{0xbc}},
Optab{ABSRL, yml_rl, Pm, [23]uint8{0xbd}},
Optab{ABSRQ, yml_rl, Pw, [23]uint8{0x0f, 0xbd}},
Optab{ABSRW, yml_rl, Pq, [23]uint8{0xbd}},
Optab{ABSWAPL, ybswap, Px, [23]uint8{0x0f, 0xc8}},
Optab{ABSWAPQ, ybswap, Pw, [23]uint8{0x0f, 0xc8}},
Optab{ABTCL, ybtl, Pm, [23]uint8{0xba, 07, 0xbb}},
Optab{ABTCQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 07, 0x0f, 0xbb}},
Optab{ABTCW, ybtl, Pq, [23]uint8{0xba, 07, 0xbb}},
Optab{ABTL, ybtl, Pm, [23]uint8{0xba, 04, 0xa3}},
Optab{ABTQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 04, 0x0f, 0xa3}},
Optab{ABTRL, ybtl, Pm, [23]uint8{0xba, 06, 0xb3}},
Optab{ABTRQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 06, 0x0f, 0xb3}},
Optab{ABTRW, ybtl, Pq, [23]uint8{0xba, 06, 0xb3}},
Optab{ABTSL, ybtl, Pm, [23]uint8{0xba, 05, 0xab}},
Optab{ABTSQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 05, 0x0f, 0xab}},
Optab{ABTSW, ybtl, Pq, [23]uint8{0xba, 05, 0xab}},
Optab{ABTW, ybtl, Pq, [23]uint8{0xba, 04, 0xa3}},
Optab{ABYTE, ybyte, Px, [23]uint8{1}},
Optab{obj.ACALL, ycall, Px, [23]uint8{0xff, 02, 0xff, 0x15, 0xe8}},
Optab{ACDQ, ynone, Px, [23]uint8{0x99}},
Optab{ACLC, ynone, Px, [23]uint8{0xf8}},
Optab{ACLD, ynone, Px, [23]uint8{0xfc}},
Optab{ACLI, ynone, Px, [23]uint8{0xfa}},
Optab{ACLTS, ynone, Pm, [23]uint8{0x06}},
Optab{ACMC, ynone, Px, [23]uint8{0xf5}},
Optab{ACMOVLCC, yml_rl, Pm, [23]uint8{0x43}},
Optab{ACMOVLCS, yml_rl, Pm, [23]uint8{0x42}},
Optab{ACMOVLEQ, yml_rl, Pm, [23]uint8{0x44}},
Optab{ACMOVLGE, yml_rl, Pm, [23]uint8{0x4d}},
Optab{ACMOVLGT, yml_rl, Pm, [23]uint8{0x4f}},
Optab{ACMOVLHI, yml_rl, Pm, [23]uint8{0x47}},
Optab{ACMOVLLE, yml_rl, Pm, [23]uint8{0x4e}},
Optab{ACMOVLLS, yml_rl, Pm, [23]uint8{0x46}},
Optab{ACMOVLLT, yml_rl, Pm, [23]uint8{0x4c}},
Optab{ACMOVLMI, yml_rl, Pm, [23]uint8{0x48}},
Optab{ACMOVLNE, yml_rl, Pm, [23]uint8{0x45}},
Optab{ACMOVLOC, yml_rl, Pm, [23]uint8{0x41}},
Optab{ACMOVLOS, yml_rl, Pm, [23]uint8{0x40}},
Optab{ACMOVLPC, yml_rl, Pm, [23]uint8{0x4b}},
Optab{ACMOVLPL, yml_rl, Pm, [23]uint8{0x49}},
Optab{ACMOVLPS, yml_rl, Pm, [23]uint8{0x4a}},
Optab{ACMOVQCC, yml_rl, Pw, [23]uint8{0x0f, 0x43}},
Optab{ACMOVQCS, yml_rl, Pw, [23]uint8{0x0f, 0x42}},
Optab{ACMOVQEQ, yml_rl, Pw, [23]uint8{0x0f, 0x44}},
Optab{ACMOVQGE, yml_rl, Pw, [23]uint8{0x0f, 0x4d}},
Optab{ACMOVQGT, yml_rl, Pw, [23]uint8{0x0f, 0x4f}},
Optab{ACMOVQHI, yml_rl, Pw, [23]uint8{0x0f, 0x47}},
Optab{ACMOVQLE, yml_rl, Pw, [23]uint8{0x0f, 0x4e}},
Optab{ACMOVQLS, yml_rl, Pw, [23]uint8{0x0f, 0x46}},
Optab{ACMOVQLT, yml_rl, Pw, [23]uint8{0x0f, 0x4c}},
Optab{ACMOVQMI, yml_rl, Pw, [23]uint8{0x0f, 0x48}},
Optab{ACMOVQNE, yml_rl, Pw, [23]uint8{0x0f, 0x45}},
Optab{ACMOVQOC, yml_rl, Pw, [23]uint8{0x0f, 0x41}},
Optab{ACMOVQOS, yml_rl, Pw, [23]uint8{0x0f, 0x40}},
Optab{ACMOVQPC, yml_rl, Pw, [23]uint8{0x0f, 0x4b}},
Optab{ACMOVQPL, yml_rl, Pw, [23]uint8{0x0f, 0x49}},
Optab{ACMOVQPS, yml_rl, Pw, [23]uint8{0x0f, 0x4a}},
Optab{ACMOVWCC, yml_rl, Pq, [23]uint8{0x43}},
Optab{ACMOVWCS, yml_rl, Pq, [23]uint8{0x42}},
Optab{ACMOVWEQ, yml_rl, Pq, [23]uint8{0x44}},
Optab{ACMOVWGE, yml_rl, Pq, [23]uint8{0x4d}},
Optab{ACMOVWGT, yml_rl, Pq, [23]uint8{0x4f}},
Optab{ACMOVWHI, yml_rl, Pq, [23]uint8{0x47}},
Optab{ACMOVWLE, yml_rl, Pq, [23]uint8{0x4e}},
Optab{ACMOVWLS, yml_rl, Pq, [23]uint8{0x46}},
Optab{ACMOVWLT, yml_rl, Pq, [23]uint8{0x4c}},
Optab{ACMOVWMI, yml_rl, Pq, [23]uint8{0x48}},
Optab{ACMOVWNE, yml_rl, Pq, [23]uint8{0x45}},
Optab{ACMOVWOC, yml_rl, Pq, [23]uint8{0x41}},
Optab{ACMOVWOS, yml_rl, Pq, [23]uint8{0x40}},
Optab{ACMOVWPC, yml_rl, Pq, [23]uint8{0x4b}},
Optab{ACMOVWPL, yml_rl, Pq, [23]uint8{0x49}},
Optab{ACMOVWPS, yml_rl, Pq, [23]uint8{0x4a}},
Optab{ACMPB, ycmpb, Pb, [23]uint8{0x3c, 0x80, 07, 0x38, 0x3a}},
Optab{ACMPL, ycmpl, Px, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
Optab{ACMPPD, yxcmpi, Px, [23]uint8{Pe, 0xc2}},
Optab{ACMPPS, yxcmpi, Pm, [23]uint8{0xc2, 0}},
Optab{ACMPQ, ycmpl, Pw, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
Optab{ACMPSB, ynone, Pb, [23]uint8{0xa6}},
Optab{ACMPSD, yxcmpi, Px, [23]uint8{Pf2, 0xc2}},
Optab{ACMPSL, ynone, Px, [23]uint8{0xa7}},
Optab{ACMPSQ, ynone, Pw, [23]uint8{0xa7}},
Optab{ACMPSS, yxcmpi, Px, [23]uint8{Pf3, 0xc2}},
Optab{ACMPSW, ynone, Pe, [23]uint8{0xa7}},
Optab{ACMPW, ycmpl, Pe, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
Optab{ACOMISD, yxcmp, Pe, [23]uint8{0x2f}},
Optab{ACOMISS, yxcmp, Pm, [23]uint8{0x2f}},
Optab{ACPUID, ynone, Pm, [23]uint8{0xa2}},
Optab{ACVTPL2PD, yxcvm2, Px, [23]uint8{Pf3, 0xe6, Pe, 0x2a}},
Optab{ACVTPL2PS, yxcvm2, Pm, [23]uint8{0x5b, 0, 0x2a, 0}},
Optab{ACVTPD2PL, yxcvm1, Px, [23]uint8{Pf2, 0xe6, Pe, 0x2d}},
Optab{ACVTPD2PS, yxm, Pe, [23]uint8{0x5a}},
Optab{ACVTPS2PL, yxcvm1, Px, [23]uint8{Pe, 0x5b, Pm, 0x2d}},
Optab{ACVTPS2PD, yxm, Pm, [23]uint8{0x5a}},
Optab{API2FW, ymfp, Px, [23]uint8{0x0c}},
Optab{ACVTSD2SL, yxcvfl, Pf2, [23]uint8{0x2d}},
Optab{ACVTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2d}},
Optab{ACVTSD2SS, yxm, Pf2, [23]uint8{0x5a}},
Optab{ACVTSL2SD, yxcvlf, Pf2, [23]uint8{0x2a}},
Optab{ACVTSQ2SD, yxcvqf, Pw, [23]uint8{Pf2, 0x2a}},
Optab{ACVTSL2SS, yxcvlf, Pf3, [23]uint8{0x2a}},
Optab{ACVTSQ2SS, yxcvqf, Pw, [23]uint8{Pf3, 0x2a}},
Optab{ACVTSS2SD, yxm, Pf3, [23]uint8{0x5a}},
Optab{ACVTSS2SL, yxcvfl, Pf3, [23]uint8{0x2d}},
Optab{ACVTSS2SQ, yxcvfq, Pw, [23]uint8{Pf3, 0x2d}},
Optab{ACVTTPD2PL, yxcvm1, Px, [23]uint8{Pe, 0xe6, Pe, 0x2c}},
Optab{ACVTTPS2PL, yxcvm1, Px, [23]uint8{Pf3, 0x5b, Pm, 0x2c}},
Optab{ACVTTSD2SL, yxcvfl, Pf2, [23]uint8{0x2c}},
Optab{ACVTTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2c}},
Optab{ACVTTSS2SL, yxcvfl, Pf3, [23]uint8{0x2c}},
Optab{ACVTTSS2SQ, yxcvfq, Pw, [23]uint8{Pf3, 0x2c}},
Optab{ACWD, ynone, Pe, [23]uint8{0x99}},
Optab{ACQO, ynone, Pw, [23]uint8{0x99}},
Optab{ADAA, ynone, P32, [23]uint8{0x27}},
Optab{ADAS, ynone, P32, [23]uint8{0x2f}},
Optab{obj.ADATA, nil, 0, [23]uint8{}},
Optab{ADECB, yincb, Pb, [23]uint8{0xfe, 01}},
Optab{ADECL, yincl, Px1, [23]uint8{0x48, 0xff, 01}},
Optab{ADECQ, yincq, Pw, [23]uint8{0xff, 01}},
Optab{ADECW, yincw, Pe, [23]uint8{0xff, 01}},
Optab{ADIVB, ydivb, Pb, [23]uint8{0xf6, 06}},
Optab{ADIVL, ydivl, Px, [23]uint8{0xf7, 06}},
Optab{ADIVPD, yxm, Pe, [23]uint8{0x5e}},
Optab{ADIVPS, yxm, Pm, [23]uint8{0x5e}},
Optab{ADIVQ, ydivl, Pw, [23]uint8{0xf7, 06}},
Optab{ADIVSD, yxm, Pf2, [23]uint8{0x5e}},
Optab{ADIVSS, yxm, Pf3, [23]uint8{0x5e}},
Optab{ADIVW, ydivl, Pe, [23]uint8{0xf7, 06}},
Optab{AEMMS, ynone, Pm, [23]uint8{0x77}},
Optab{AENTER, nil, 0, [23]uint8{}}, /* botch */
Optab{AFXRSTOR, ysvrs, Pm, [23]uint8{0xae, 01, 0xae, 01}},
Optab{AFXSAVE, ysvrs, Pm, [23]uint8{0xae, 00, 0xae, 00}},
Optab{AFXRSTOR64, ysvrs, Pw, [23]uint8{0x0f, 0xae, 01, 0x0f, 0xae, 01}},
Optab{AFXSAVE64, ysvrs, Pw, [23]uint8{0x0f, 0xae, 00, 0x0f, 0xae, 00}},
Optab{obj.AGLOBL, nil, 0, [23]uint8{}},
Optab{AHLT, ynone, Px, [23]uint8{0xf4}},
Optab{AIDIVB, ydivb, Pb, [23]uint8{0xf6, 07}},
Optab{AIDIVL, ydivl, Px, [23]uint8{0xf7, 07}},
Optab{AIDIVQ, ydivl, Pw, [23]uint8{0xf7, 07}},
Optab{AIDIVW, ydivl, Pe, [23]uint8{0xf7, 07}},
Optab{AIMULB, ydivb, Pb, [23]uint8{0xf6, 05}},
Optab{AIMULL, yimul, Px, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
Optab{AIMULQ, yimul, Pw, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
Optab{AIMULW, yimul, Pe, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
Optab{AIMUL3Q, yimul3, Pw, [23]uint8{0x6b, 00}},
Optab{AINB, yin, Pb, [23]uint8{0xe4, 0xec}},
Optab{AINCB, yincb, Pb, [23]uint8{0xfe, 00}},
Optab{AINCL, yincl, Px1, [23]uint8{0x40, 0xff, 00}},
Optab{AINCQ, yincq, Pw, [23]uint8{0xff, 00}},
Optab{AINCW, yincw, Pe, [23]uint8{0xff, 00}},
Optab{AINL, yin, Px, [23]uint8{0xe5, 0xed}},
Optab{AINSB, ynone, Pb, [23]uint8{0x6c}},
Optab{AINSL, ynone, Px, [23]uint8{0x6d}},
Optab{AINSW, ynone, Pe, [23]uint8{0x6d}},
Optab{AINT, yint, Px, [23]uint8{0xcd}},
Optab{AINTO, ynone, P32, [23]uint8{0xce}},
Optab{AINW, yin, Pe, [23]uint8{0xe5, 0xed}},
Optab{AIRETL, ynone, Px, [23]uint8{0xcf}},
Optab{AIRETQ, ynone, Pw, [23]uint8{0xcf}},
Optab{AIRETW, ynone, Pe, [23]uint8{0xcf}},
Optab{AJCC, yjcond, Px, [23]uint8{0x73, 0x83, 00}},
Optab{AJCS, yjcond, Px, [23]uint8{0x72, 0x82}},
Optab{AJCXZL, yloop, Px, [23]uint8{0xe3}},
Optab{AJCXZW, yloop, Px, [23]uint8{0xe3}},
Optab{AJCXZQ, yloop, Px, [23]uint8{0xe3}},
Optab{AJEQ, yjcond, Px, [23]uint8{0x74, 0x84}},
Optab{AJGE, yjcond, Px, [23]uint8{0x7d, 0x8d}},
Optab{AJGT, yjcond, Px, [23]uint8{0x7f, 0x8f}},
Optab{AJHI, yjcond, Px, [23]uint8{0x77, 0x87}},
Optab{AJLE, yjcond, Px, [23]uint8{0x7e, 0x8e}},
Optab{AJLS, yjcond, Px, [23]uint8{0x76, 0x86}},
Optab{AJLT, yjcond, Px, [23]uint8{0x7c, 0x8c}},
Optab{AJMI, yjcond, Px, [23]uint8{0x78, 0x88}},
Optab{obj.AJMP, yjmp, Px, [23]uint8{0xff, 04, 0xeb, 0xe9}},
Optab{AJNE, yjcond, Px, [23]uint8{0x75, 0x85}},
Optab{AJOC, yjcond, Px, [23]uint8{0x71, 0x81, 00}},
Optab{AJOS, yjcond, Px, [23]uint8{0x70, 0x80, 00}},
Optab{AJPC, yjcond, Px, [23]uint8{0x7b, 0x8b}},
Optab{AJPL, yjcond, Px, [23]uint8{0x79, 0x89}},
Optab{AJPS, yjcond, Px, [23]uint8{0x7a, 0x8a}},
Optab{ALAHF, ynone, Px, [23]uint8{0x9f}},
Optab{ALARL, yml_rl, Pm, [23]uint8{0x02}},
Optab{ALARW, yml_rl, Pq, [23]uint8{0x02}},
Optab{ALDMXCSR, ysvrs, Pm, [23]uint8{0xae, 02, 0xae, 02}},
Optab{ALEAL, ym_rl, Px, [23]uint8{0x8d}},
Optab{ALEAQ, ym_rl, Pw, [23]uint8{0x8d}},
Optab{ALEAVEL, ynone, P32, [23]uint8{0xc9}},
Optab{ALEAVEQ, ynone, Py, [23]uint8{0xc9}},
Optab{ALEAVEW, ynone, Pe, [23]uint8{0xc9}},
Optab{ALEAW, ym_rl, Pe, [23]uint8{0x8d}},
Optab{ALOCK, ynone, Px, [23]uint8{0xf0}},
Optab{ALODSB, ynone, Pb, [23]uint8{0xac}},
Optab{ALODSL, ynone, Px, [23]uint8{0xad}},
Optab{ALODSQ, ynone, Pw, [23]uint8{0xad}},
Optab{ALODSW, ynone, Pe, [23]uint8{0xad}},
Optab{ALONG, ybyte, Px, [23]uint8{4}},
Optab{ALOOP, yloop, Px, [23]uint8{0xe2}},
Optab{ALOOPEQ, yloop, Px, [23]uint8{0xe1}},
Optab{ALOOPNE, yloop, Px, [23]uint8{0xe0}},
Optab{ALSLL, yml_rl, Pm, [23]uint8{0x03}},
Optab{ALSLW, yml_rl, Pq, [23]uint8{0x03}},
Optab{AMASKMOVOU, yxr, Pe, [23]uint8{0xf7}},
Optab{AMASKMOVQ, ymr, Pm, [23]uint8{0xf7}},
Optab{AMAXPD, yxm, Pe, [23]uint8{0x5f}},
Optab{AMAXPS, yxm, Pm, [23]uint8{0x5f}},
Optab{AMAXSD, yxm, Pf2, [23]uint8{0x5f}},
Optab{AMAXSS, yxm, Pf3, [23]uint8{0x5f}},
Optab{AMINPD, yxm, Pe, [23]uint8{0x5d}},
Optab{AMINPS, yxm, Pm, [23]uint8{0x5d}},
Optab{AMINSD, yxm, Pf2, [23]uint8{0x5d}},
Optab{AMINSS, yxm, Pf3, [23]uint8{0x5d}},
Optab{AMOVAPD, yxmov, Pe, [23]uint8{0x28, 0x29}},
Optab{AMOVAPS, yxmov, Pm, [23]uint8{0x28, 0x29}},
Optab{AMOVB, ymovb, Pb, [23]uint8{0x88, 0x8a, 0xb0, 0xc6, 00}},
Optab{AMOVBLSX, ymb_rl, Pm, [23]uint8{0xbe}},
Optab{AMOVBLZX, ymb_rl, Pm, [23]uint8{0xb6}},
Optab{AMOVBQSX, ymb_rl, Pw, [23]uint8{0x0f, 0xbe}},
Optab{AMOVBQZX, ymb_rl, Pm, [23]uint8{0xb6}},
Optab{AMOVBWSX, ymb_rl, Pq, [23]uint8{0xbe}},
Optab{AMOVBWZX, ymb_rl, Pq, [23]uint8{0xb6}},
Optab{AMOVO, yxmov, Pe, [23]uint8{0x6f, 0x7f}},
Optab{AMOVOU, yxmov, Pf3, [23]uint8{0x6f, 0x7f}},
Optab{AMOVHLPS, yxr, Pm, [23]uint8{0x12}},
Optab{AMOVHPD, yxmov, Pe, [23]uint8{0x16, 0x17}},
Optab{AMOVHPS, yxmov, Pm, [23]uint8{0x16, 0x17}},
Optab{AMOVL, ymovl, Px, [23]uint8{0x89, 0x8b, 0x31, 0xb8, 0xc7, 00, 0x6e, 0x7e, Pe, 0x6e, Pe, 0x7e, 0}},
Optab{AMOVLHPS, yxr, Pm, [23]uint8{0x16}},
Optab{AMOVLPD, yxmov, Pe, [23]uint8{0x12, 0x13}},
Optab{AMOVLPS, yxmov, Pm, [23]uint8{0x12, 0x13}},
Optab{AMOVLQSX, yml_rl, Pw, [23]uint8{0x63}},
Optab{AMOVLQZX, yml_rl, Px, [23]uint8{0x8b}},
Optab{AMOVMSKPD, yxrrl, Pq, [23]uint8{0x50}},
Optab{AMOVMSKPS, yxrrl, Pm, [23]uint8{0x50}},
Optab{AMOVNTO, yxr_ml, Pe, [23]uint8{0xe7}},
Optab{AMOVNTPD, yxr_ml, Pe, [23]uint8{0x2b}},
Optab{AMOVNTPS, yxr_ml, Pm, [23]uint8{0x2b}},
Optab{AMOVNTQ, ymr_ml, Pm, [23]uint8{0xe7}},
Optab{AMOVQ, ymovq, Pw8, [23]uint8{0x6f, 0x7f, Pf2, 0xd6, Pf3, 0x7e, Pe, 0xd6, 0x89, 0x8b, 0x31, 0xc7, 00, 0xb8, 0xc7, 00, 0x6e, 0x7e, Pe, 0x6e, Pe, 0x7e, 0}},
Optab{AMOVQOZX, ymrxr, Pf3, [23]uint8{0xd6, 0x7e}},
Optab{AMOVSB, ynone, Pb, [23]uint8{0xa4}},
Optab{AMOVSD, yxmov, Pf2, [23]uint8{0x10, 0x11}},
Optab{AMOVSL, ynone, Px, [23]uint8{0xa5}},
Optab{AMOVSQ, ynone, Pw, [23]uint8{0xa5}},
Optab{AMOVSS, yxmov, Pf3, [23]uint8{0x10, 0x11}},
Optab{AMOVSW, ynone, Pe, [23]uint8{0xa5}},
Optab{AMOVUPD, yxmov, Pe, [23]uint8{0x10, 0x11}},
Optab{AMOVUPS, yxmov, Pm, [23]uint8{0x10, 0x11}},
Optab{AMOVW, ymovw, Pe, [23]uint8{0x89, 0x8b, 0x31, 0xb8, 0xc7, 00, 0}},
Optab{AMOVWLSX, yml_rl, Pm, [23]uint8{0xbf}},
Optab{AMOVWLZX, yml_rl, Pm, [23]uint8{0xb7}},
Optab{AMOVWQSX, yml_rl, Pw, [23]uint8{0x0f, 0xbf}},
Optab{AMOVWQZX, yml_rl, Pw, [23]uint8{0x0f, 0xb7}},
Optab{AMULB, ydivb, Pb, [23]uint8{0xf6, 04}},
Optab{AMULL, ydivl, Px, [23]uint8{0xf7, 04}},
Optab{AMULPD, yxm, Pe, [23]uint8{0x59}},
Optab{AMULPS, yxm, Ym, [23]uint8{0x59}},
Optab{AMULQ, ydivl, Pw, [23]uint8{0xf7, 04}},
Optab{AMULSD, yxm, Pf2, [23]uint8{0x59}},
Optab{AMULSS, yxm, Pf3, [23]uint8{0x59}},
Optab{AMULW, ydivl, Pe, [23]uint8{0xf7, 04}},
Optab{ANEGB, yscond, Pb, [23]uint8{0xf6, 03}},
Optab{ANEGL, yscond, Px, [23]uint8{0xf7, 03}},
Optab{ANEGQ, yscond, Pw, [23]uint8{0xf7, 03}},
Optab{ANEGW, yscond, Pe, [23]uint8{0xf7, 03}},
Optab{obj.ANOP, ynop, Px, [23]uint8{0, 0}},
Optab{ANOTB, yscond, Pb, [23]uint8{0xf6, 02}},
Optab{ANOTL, yscond, Px, [23]uint8{0xf7, 02}}, // TODO(rsc): yscond is wrong here.
Optab{ANOTQ, yscond, Pw, [23]uint8{0xf7, 02}},
Optab{ANOTW, yscond, Pe, [23]uint8{0xf7, 02}},
Optab{AORB, yxorb, Pb, [23]uint8{0x0c, 0x80, 01, 0x08, 0x0a}},
Optab{AORL, yxorl, Px, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
Optab{AORPD, yxm, Pq, [23]uint8{0x56}},
Optab{AORPS, yxm, Pm, [23]uint8{0x56}},
Optab{AORQ, yxorl, Pw, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
Optab{AORW, yxorl, Pe, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
Optab{AOUTB, yin, Pb, [23]uint8{0xe6, 0xee}},
Optab{AOUTL, yin, Px, [23]uint8{0xe7, 0xef}},
Optab{AOUTSB, ynone, Pb, [23]uint8{0x6e}},
Optab{AOUTSL, ynone, Px, [23]uint8{0x6f}},
Optab{AOUTSW, ynone, Pe, [23]uint8{0x6f}},
Optab{AOUTW, yin, Pe, [23]uint8{0xe7, 0xef}},
Optab{APACKSSLW, ymm, Py1, [23]uint8{0x6b, Pe, 0x6b}},
Optab{APACKSSWB, ymm, Py1, [23]uint8{0x63, Pe, 0x63}},
Optab{APACKUSWB, ymm, Py1, [23]uint8{0x67, Pe, 0x67}},
Optab{APADDB, ymm, Py1, [23]uint8{0xfc, Pe, 0xfc}},
Optab{APADDL, ymm, Py1, [23]uint8{0xfe, Pe, 0xfe}},
Optab{APADDQ, yxm, Pe, [23]uint8{0xd4}},
Optab{APADDSB, ymm, Py1, [23]uint8{0xec, Pe, 0xec}},
Optab{APADDSW, ymm, Py1, [23]uint8{0xed, Pe, 0xed}},
Optab{APADDUSB, ymm, Py1, [23]uint8{0xdc, Pe, 0xdc}},
Optab{APADDUSW, ymm, Py1, [23]uint8{0xdd, Pe, 0xdd}},
Optab{APADDW, ymm, Py1, [23]uint8{0xfd, Pe, 0xfd}},
Optab{APAND, ymm, Py1, [23]uint8{0xdb, Pe, 0xdb}},
Optab{APANDN, ymm, Py1, [23]uint8{0xdf, Pe, 0xdf}},
Optab{APAUSE, ynone, Px, [23]uint8{0xf3, 0x90}},
Optab{APAVGB, ymm, Py1, [23]uint8{0xe0, Pe, 0xe0}},
Optab{APAVGW, ymm, Py1, [23]uint8{0xe3, Pe, 0xe3}},
Optab{APCMPEQB, ymm, Py1, [23]uint8{0x74, Pe, 0x74}},
Optab{APCMPEQL, ymm, Py1, [23]uint8{0x76, Pe, 0x76}},
Optab{APCMPEQW, ymm, Py1, [23]uint8{0x75, Pe, 0x75}},
Optab{APCMPGTB, ymm, Py1, [23]uint8{0x64, Pe, 0x64}},
Optab{APCMPGTL, ymm, Py1, [23]uint8{0x66, Pe, 0x66}},
Optab{APCMPGTW, ymm, Py1, [23]uint8{0x65, Pe, 0x65}},
Optab{APEXTRW, yextrw, Pq, [23]uint8{0xc5, 00}},
Optab{APF2IL, ymfp, Px, [23]uint8{0x1d}},
Optab{APF2IW, ymfp, Px, [23]uint8{0x1c}},
Optab{API2FL, ymfp, Px, [23]uint8{0x0d}},
Optab{APFACC, ymfp, Px, [23]uint8{0xae}},
Optab{APFADD, ymfp, Px, [23]uint8{0x9e}},
Optab{APFCMPEQ, ymfp, Px, [23]uint8{0xb0}},
Optab{APFCMPGE, ymfp, Px, [23]uint8{0x90}},
Optab{APFCMPGT, ymfp, Px, [23]uint8{0xa0}},
Optab{APFMAX, ymfp, Px, [23]uint8{0xa4}},
Optab{APFMIN, ymfp, Px, [23]uint8{0x94}},
Optab{APFMUL, ymfp, Px, [23]uint8{0xb4}},
Optab{APFNACC, ymfp, Px, [23]uint8{0x8a}},
Optab{APFPNACC, ymfp, Px, [23]uint8{0x8e}},
Optab{APFRCP, ymfp, Px, [23]uint8{0x96}},
Optab{APFRCPIT1, ymfp, Px, [23]uint8{0xa6}},
Optab{APFRCPI2T, ymfp, Px, [23]uint8{0xb6}},
Optab{APFRSQIT1, ymfp, Px, [23]uint8{0xa7}},
Optab{APFRSQRT, ymfp, Px, [23]uint8{0x97}},
Optab{APFSUB, ymfp, Px, [23]uint8{0x9a}},
Optab{APFSUBR, ymfp, Px, [23]uint8{0xaa}},
Optab{APINSRW, yinsrw, Pq, [23]uint8{0xc4, 00}},
Optab{APINSRD, yinsr, Pq, [23]uint8{0x3a, 0x22, 00}},
Optab{APINSRQ, yinsr, Pq3, [23]uint8{0x3a, 0x22, 00}},
Optab{APMADDWL, ymm, Py1, [23]uint8{0xf5, Pe, 0xf5}},
Optab{APMAXSW, yxm, Pe, [23]uint8{0xee}},
Optab{APMAXUB, yxm, Pe, [23]uint8{0xde}},
Optab{APMINSW, yxm, Pe, [23]uint8{0xea}},
Optab{APMINUB, yxm, Pe, [23]uint8{0xda}},
Optab{APMOVMSKB, ymskb, Px, [23]uint8{Pe, 0xd7, 0xd7}},
Optab{APMULHRW, ymfp, Px, [23]uint8{0xb7}},
Optab{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
Optab{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
Optab{APMULLW, ymm, Py1, [23]uint8{0xd5, Pe, 0xd5}},
Optab{APMULULQ, ymm, Py1, [23]uint8{0xf4, Pe, 0xf4}},
Optab{APOPAL, ynone, P32, [23]uint8{0x61}},
Optab{APOPAW, ynone, Pe, [23]uint8{0x61}},
Optab{APOPFL, ynone, P32, [23]uint8{0x9d}},
Optab{APOPFQ, ynone, Py, [23]uint8{0x9d}},
Optab{APOPFW, ynone, Pe, [23]uint8{0x9d}},
Optab{APOPL, ypopl, P32, [23]uint8{0x58, 0x8f, 00}},
Optab{APOPQ, ypopl, Py, [23]uint8{0x58, 0x8f, 00}},
Optab{APOPW, ypopl, Pe, [23]uint8{0x58, 0x8f, 00}},
Optab{APOR, ymm, Py1, [23]uint8{0xeb, Pe, 0xeb}},
Optab{APSADBW, yxm, Pq, [23]uint8{0xf6}},
Optab{APSHUFHW, yxshuf, Pf3, [23]uint8{0x70, 00}},
Optab{APSHUFL, yxshuf, Pq, [23]uint8{0x70, 00}},
Optab{APSHUFLW, yxshuf, Pf2, [23]uint8{0x70, 00}},
Optab{APSHUFW, ymshuf, Pm, [23]uint8{0x70, 00}},
Optab{APSHUFB, ymshufb, Pq, [23]uint8{0x38, 0x00}},
Optab{APSLLO, ypsdq, Pq, [23]uint8{0x73, 07}},
Optab{APSLLL, yps, Py3, [23]uint8{0xf2, 0x72, 06, Pe, 0xf2, Pe, 0x72, 06}},
Optab{APSLLQ, yps, Py3, [23]uint8{0xf3, 0x73, 06, Pe, 0xf3, Pe, 0x73, 06}},
Optab{APSLLW, yps, Py3, [23]uint8{0xf1, 0x71, 06, Pe, 0xf1, Pe, 0x71, 06}},
Optab{APSRAL, yps, Py3, [23]uint8{0xe2, 0x72, 04, Pe, 0xe2, Pe, 0x72, 04}},
Optab{APSRAW, yps, Py3, [23]uint8{0xe1, 0x71, 04, Pe, 0xe1, Pe, 0x71, 04}},
Optab{APSRLO, ypsdq, Pq, [23]uint8{0x73, 03}},
Optab{APSRLL, yps, Py3, [23]uint8{0xd2, 0x72, 02, Pe, 0xd2, Pe, 0x72, 02}},
Optab{APSRLQ, yps, Py3, [23]uint8{0xd3, 0x73, 02, Pe, 0xd3, Pe, 0x73, 02}},
Optab{APSRLW, yps, Py3, [23]uint8{0xd1, 0x71, 02, Pe, 0xe1, Pe, 0x71, 02}},
Optab{APSUBB, yxm, Pe, [23]uint8{0xf8}},
Optab{APSUBL, yxm, Pe, [23]uint8{0xfa}},
Optab{APSUBQ, yxm, Pe, [23]uint8{0xfb}},
Optab{APSUBSB, yxm, Pe, [23]uint8{0xe8}},
Optab{APSUBSW, yxm, Pe, [23]uint8{0xe9}},
Optab{APSUBUSB, yxm, Pe, [23]uint8{0xd8}},
Optab{APSUBUSW, yxm, Pe, [23]uint8{0xd9}},
Optab{APSUBW, yxm, Pe, [23]uint8{0xf9}},
Optab{APSWAPL, ymfp, Px, [23]uint8{0xbb}},
Optab{APUNPCKHBW, ymm, Py1, [23]uint8{0x68, Pe, 0x68}},
Optab{APUNPCKHLQ, ymm, Py1, [23]uint8{0x6a, Pe, 0x6a}},
Optab{APUNPCKHQDQ, yxm, Pe, [23]uint8{0x6d}},
Optab{APUNPCKHWL, ymm, Py1, [23]uint8{0x69, Pe, 0x69}},
Optab{APUNPCKLBW, ymm, Py1, [23]uint8{0x60, Pe, 0x60}},
Optab{APUNPCKLLQ, ymm, Py1, [23]uint8{0x62, Pe, 0x62}},
Optab{APUNPCKLQDQ, yxm, Pe, [23]uint8{0x6c}},
Optab{APUNPCKLWL, ymm, Py1, [23]uint8{0x61, Pe, 0x61}},
Optab{APUSHAL, ynone, P32, [23]uint8{0x60}},
Optab{APUSHAW, ynone, Pe, [23]uint8{0x60}},
Optab{APUSHFL, ynone, P32, [23]uint8{0x9c}},
Optab{APUSHFQ, ynone, Py, [23]uint8{0x9c}},
Optab{APUSHFW, ynone, Pe, [23]uint8{0x9c}},
Optab{APUSHL, ypushl, P32, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
Optab{APUSHQ, ypushl, Py, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
Optab{APUSHW, ypushl, Pe, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
Optab{APXOR, ymm, Py1, [23]uint8{0xef, Pe, 0xef}},
Optab{AQUAD, ybyte, Px, [23]uint8{8}},
Optab{ARCLB, yshb, Pb, [23]uint8{0xd0, 02, 0xc0, 02, 0xd2, 02}},
Optab{ARCLL, yshl, Px, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
Optab{ARCLQ, yshl, Pw, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
Optab{ARCLW, yshl, Pe, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
Optab{ARCPPS, yxm, Pm, [23]uint8{0x53}},
Optab{ARCPSS, yxm, Pf3, [23]uint8{0x53}},
Optab{ARCRB, yshb, Pb, [23]uint8{0xd0, 03, 0xc0, 03, 0xd2, 03}},
Optab{ARCRL, yshl, Px, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
Optab{ARCRQ, yshl, Pw, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
Optab{ARCRW, yshl, Pe, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
Optab{AREP, ynone, Px, [23]uint8{0xf3}},
Optab{AREPN, ynone, Px, [23]uint8{0xf2}},
Optab{obj.ARET, ynone, Px, [23]uint8{0xc3}},
Optab{ARETFW, yret, Pe, [23]uint8{0xcb, 0xca}},
Optab{ARETFL, yret, Px, [23]uint8{0xcb, 0xca}},
Optab{ARETFQ, yret, Pw, [23]uint8{0xcb, 0xca}},
Optab{AROLB, yshb, Pb, [23]uint8{0xd0, 00, 0xc0, 00, 0xd2, 00}},
Optab{AROLL, yshl, Px, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
Optab{AROLQ, yshl, Pw, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
Optab{AROLW, yshl, Pe, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
Optab{ARORB, yshb, Pb, [23]uint8{0xd0, 01, 0xc0, 01, 0xd2, 01}},
Optab{ARORL, yshl, Px, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
Optab{ARORQ, yshl, Pw, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
Optab{ARORW, yshl, Pe, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
Optab{ARSQRTPS, yxm, Pm, [23]uint8{0x52}},
Optab{ARSQRTSS, yxm, Pf3, [23]uint8{0x52}},
Optab{ASAHF, ynone, Px1, [23]uint8{0x9e, 00, 0x86, 0xe0, 0x50, 0x9d}}, /* XCHGB AH,AL; PUSH AX; POPFL */
Optab{ASALB, yshb, Pb, [23]uint8{0xd0, 04, 0xc0, 04, 0xd2, 04}},
Optab{ASALL, yshl, Px, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASALQ, yshl, Pw, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASALW, yshl, Pe, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASARB, yshb, Pb, [23]uint8{0xd0, 07, 0xc0, 07, 0xd2, 07}},
Optab{ASARL, yshl, Px, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
Optab{ASARQ, yshl, Pw, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
Optab{ASARW, yshl, Pe, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
Optab{ASBBB, yxorb, Pb, [23]uint8{0x1c, 0x80, 03, 0x18, 0x1a}},
Optab{ASBBL, yxorl, Px, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
Optab{ASBBQ, yxorl, Pw, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
Optab{ASBBW, yxorl, Pe, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
Optab{ASCASB, ynone, Pb, [23]uint8{0xae}},
Optab{ASCASL, ynone, Px, [23]uint8{0xaf}},
Optab{ASCASQ, ynone, Pw, [23]uint8{0xaf}},
Optab{ASCASW, ynone, Pe, [23]uint8{0xaf}},
Optab{ASETCC, yscond, Pb, [23]uint8{0x0f, 0x93, 00}},
Optab{ASETCS, yscond, Pb, [23]uint8{0x0f, 0x92, 00}},
Optab{ASETEQ, yscond, Pb, [23]uint8{0x0f, 0x94, 00}},
Optab{ASETGE, yscond, Pb, [23]uint8{0x0f, 0x9d, 00}},
Optab{ASETGT, yscond, Pb, [23]uint8{0x0f, 0x9f, 00}},
Optab{ASETHI, yscond, Pb, [23]uint8{0x0f, 0x97, 00}},
Optab{ASETLE, yscond, Pb, [23]uint8{0x0f, 0x9e, 00}},
Optab{ASETLS, yscond, Pb, [23]uint8{0x0f, 0x96, 00}},
Optab{ASETLT, yscond, Pb, [23]uint8{0x0f, 0x9c, 00}},
Optab{ASETMI, yscond, Pb, [23]uint8{0x0f, 0x98, 00}},
Optab{ASETNE, yscond, Pb, [23]uint8{0x0f, 0x95, 00}},
Optab{ASETOC, yscond, Pb, [23]uint8{0x0f, 0x91, 00}},
Optab{ASETOS, yscond, Pb, [23]uint8{0x0f, 0x90, 00}},
Optab{ASETPC, yscond, Pb, [23]uint8{0x0f, 0x9b, 00}},
Optab{ASETPL, yscond, Pb, [23]uint8{0x0f, 0x99, 00}},
Optab{ASETPS, yscond, Pb, [23]uint8{0x0f, 0x9a, 00}},
Optab{ASHLB, yshb, Pb, [23]uint8{0xd0, 04, 0xc0, 04, 0xd2, 04}},
Optab{ASHLL, yshl, Px, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASHLQ, yshl, Pw, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASHLW, yshl, Pe, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
Optab{ASHRB, yshb, Pb, [23]uint8{0xd0, 05, 0xc0, 05, 0xd2, 05}},
Optab{ASHRL, yshl, Px, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
Optab{ASHRQ, yshl, Pw, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
Optab{ASHRW, yshl, Pe, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
Optab{ASHUFPD, yxshuf, Pq, [23]uint8{0xc6, 00}},
Optab{ASHUFPS, yxshuf, Pm, [23]uint8{0xc6, 00}},
Optab{ASQRTPD, yxm, Pe, [23]uint8{0x51}},
Optab{ASQRTPS, yxm, Pm, [23]uint8{0x51}},
Optab{ASQRTSD, yxm, Pf2, [23]uint8{0x51}},
Optab{ASQRTSS, yxm, Pf3, [23]uint8{0x51}},
Optab{ASTC, ynone, Px, [23]uint8{0xf9}},
Optab{ASTD, ynone, Px, [23]uint8{0xfd}},
Optab{ASTI, ynone, Px, [23]uint8{0xfb}},
Optab{ASTMXCSR, ysvrs, Pm, [23]uint8{0xae, 03, 0xae, 03}},
Optab{ASTOSB, ynone, Pb, [23]uint8{0xaa}},
Optab{ASTOSL, ynone, Px, [23]uint8{0xab}},
Optab{ASTOSQ, ynone, Pw, [23]uint8{0xab}},
Optab{ASTOSW, ynone, Pe, [23]uint8{0xab}},
Optab{ASUBB, yxorb, Pb, [23]uint8{0x2c, 0x80, 05, 0x28, 0x2a}},
Optab{ASUBL, yaddl, Px, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
Optab{ASUBPD, yxm, Pe, [23]uint8{0x5c}},
Optab{ASUBPS, yxm, Pm, [23]uint8{0x5c}},
Optab{ASUBQ, yaddl, Pw, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
Optab{ASUBSD, yxm, Pf2, [23]uint8{0x5c}},
Optab{ASUBSS, yxm, Pf3, [23]uint8{0x5c}},
Optab{ASUBW, yaddl, Pe, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
Optab{ASWAPGS, ynone, Pm, [23]uint8{0x01, 0xf8}},
Optab{ASYSCALL, ynone, Px, [23]uint8{0x0f, 0x05}}, /* fast syscall */
Optab{ATESTB, ytestb, Pb, [23]uint8{0xa8, 0xf6, 00, 0x84, 0x84}},
Optab{ATESTL, ytestl, Px, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
Optab{ATESTQ, ytestl, Pw, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
Optab{ATESTW, ytestl, Pe, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
Optab{obj.ATEXT, ytext, Px, [23]uint8{}},
Optab{AUCOMISD, yxcmp, Pe, [23]uint8{0x2e}},
Optab{AUCOMISS, yxcmp, Pm, [23]uint8{0x2e}},
Optab{AUNPCKHPD, yxm, Pe, [23]uint8{0x15}},
Optab{AUNPCKHPS, yxm, Pm, [23]uint8{0x15}},
Optab{AUNPCKLPD, yxm, Pe, [23]uint8{0x14}},
Optab{AUNPCKLPS, yxm, Pm, [23]uint8{0x14}},
Optab{AVERR, ydivl, Pm, [23]uint8{0x00, 04}},
Optab{AVERW, ydivl, Pm, [23]uint8{0x00, 05}},
Optab{AWAIT, ynone, Px, [23]uint8{0x9b}},
Optab{AWORD, ybyte, Px, [23]uint8{2}},
Optab{AXCHGB, yml_mb, Pb, [23]uint8{0x86, 0x86}},
Optab{AXCHGL, yxchg, Px, [23]uint8{0x90, 0x90, 0x87, 0x87}},
Optab{AXCHGQ, yxchg, Pw, [23]uint8{0x90, 0x90, 0x87, 0x87}},
Optab{AXCHGW, yxchg, Pe, [23]uint8{0x90, 0x90, 0x87, 0x87}},
Optab{AXLAT, ynone, Px, [23]uint8{0xd7}},
Optab{AXORB, yxorb, Pb, [23]uint8{0x34, 0x80, 06, 0x30, 0x32}},
Optab{AXORL, yxorl, Px, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
Optab{AXORPD, yxm, Pe, [23]uint8{0x57}},
Optab{AXORPS, yxm, Pm, [23]uint8{0x57}},
Optab{AXORQ, yxorl, Pw, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
Optab{AXORW, yxorl, Pe, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
Optab{AFMOVB, yfmvx, Px, [23]uint8{0xdf, 04}},
Optab{AFMOVBP, yfmvp, Px, [23]uint8{0xdf, 06}},
Optab{AFMOVD, yfmvd, Px, [23]uint8{0xdd, 00, 0xdd, 02, 0xd9, 00, 0xdd, 02}},
Optab{AFMOVDP, yfmvdp, Px, [23]uint8{0xdd, 03, 0xdd, 03}},
Optab{AFMOVF, yfmvf, Px, [23]uint8{0xd9, 00, 0xd9, 02}},
Optab{AFMOVFP, yfmvp, Px, [23]uint8{0xd9, 03}},
Optab{AFMOVL, yfmvf, Px, [23]uint8{0xdb, 00, 0xdb, 02}},
Optab{AFMOVLP, yfmvp, Px, [23]uint8{0xdb, 03}},
Optab{AFMOVV, yfmvx, Px, [23]uint8{0xdf, 05}},
Optab{AFMOVVP, yfmvp, Px, [23]uint8{0xdf, 07}},
Optab{AFMOVW, yfmvf, Px, [23]uint8{0xdf, 00, 0xdf, 02}},
Optab{AFMOVWP, yfmvp, Px, [23]uint8{0xdf, 03}},
Optab{AFMOVX, yfmvx, Px, [23]uint8{0xdb, 05}},
Optab{AFMOVXP, yfmvp, Px, [23]uint8{0xdb, 07}},
Optab{AFCMOVCC, yfcmv, Px, [23]uint8{0xdb, 00}},
Optab{AFCMOVCS, yfcmv, Px, [23]uint8{0xda, 00}},
Optab{AFCMOVEQ, yfcmv, Px, [23]uint8{0xda, 01}},
Optab{AFCMOVHI, yfcmv, Px, [23]uint8{0xdb, 02}},
Optab{AFCMOVLS, yfcmv, Px, [23]uint8{0xda, 02}},
Optab{AFCMOVNE, yfcmv, Px, [23]uint8{0xdb, 01}},
Optab{AFCMOVNU, yfcmv, Px, [23]uint8{0xdb, 03}},
Optab{AFCMOVUN, yfcmv, Px, [23]uint8{0xda, 03}},
Optab{AFCOMB, nil, 0, [23]uint8{}},
Optab{AFCOMBP, nil, 0, [23]uint8{}},
Optab{AFCOMD, yfadd, Px, [23]uint8{0xdc, 02, 0xd8, 02, 0xdc, 02}}, /* botch */
Optab{AFCOMDP, yfadd, Px, [23]uint8{0xdc, 03, 0xd8, 03, 0xdc, 03}}, /* botch */
Optab{AFCOMDPP, ycompp, Px, [23]uint8{0xde, 03}},
Optab{AFCOMF, yfmvx, Px, [23]uint8{0xd8, 02}},
Optab{AFCOMFP, yfmvx, Px, [23]uint8{0xd8, 03}},
Optab{AFCOMI, yfmvx, Px, [23]uint8{0xdb, 06}},
Optab{AFCOMIP, yfmvx, Px, [23]uint8{0xdf, 06}},
Optab{AFCOML, yfmvx, Px, [23]uint8{0xda, 02}},
Optab{AFCOMLP, yfmvx, Px, [23]uint8{0xda, 03}},
Optab{AFCOMW, yfmvx, Px, [23]uint8{0xde, 02}},
Optab{AFCOMWP, yfmvx, Px, [23]uint8{0xde, 03}},
Optab{AFUCOM, ycompp, Px, [23]uint8{0xdd, 04}},
Optab{AFUCOMI, ycompp, Px, [23]uint8{0xdb, 05}},
Optab{AFUCOMIP, ycompp, Px, [23]uint8{0xdf, 05}},
Optab{AFUCOMP, ycompp, Px, [23]uint8{0xdd, 05}},
Optab{AFUCOMPP, ycompp, Px, [23]uint8{0xda, 13}},
Optab{AFADDDP, yfaddp, Px, [23]uint8{0xde, 00}},
Optab{AFADDW, yfmvx, Px, [23]uint8{0xde, 00}},
Optab{AFADDL, yfmvx, Px, [23]uint8{0xda, 00}},
Optab{AFADDF, yfmvx, Px, [23]uint8{0xd8, 00}},
Optab{AFADDD, yfadd, Px, [23]uint8{0xdc, 00, 0xd8, 00, 0xdc, 00}},
Optab{AFMULDP, yfaddp, Px, [23]uint8{0xde, 01}},
Optab{AFMULW, yfmvx, Px, [23]uint8{0xde, 01}},
Optab{AFMULL, yfmvx, Px, [23]uint8{0xda, 01}},
Optab{AFMULF, yfmvx, Px, [23]uint8{0xd8, 01}},
Optab{AFMULD, yfadd, Px, [23]uint8{0xdc, 01, 0xd8, 01, 0xdc, 01}},
Optab{AFSUBDP, yfaddp, Px, [23]uint8{0xde, 05}},
Optab{AFSUBW, yfmvx, Px, [23]uint8{0xde, 04}},
Optab{AFSUBL, yfmvx, Px, [23]uint8{0xda, 04}},
Optab{AFSUBF, yfmvx, Px, [23]uint8{0xd8, 04}},
Optab{AFSUBD, yfadd, Px, [23]uint8{0xdc, 04, 0xd8, 04, 0xdc, 05}},
Optab{AFSUBRDP, yfaddp, Px, [23]uint8{0xde, 04}},
Optab{AFSUBRW, yfmvx, Px, [23]uint8{0xde, 05}},
Optab{AFSUBRL, yfmvx, Px, [23]uint8{0xda, 05}},
Optab{AFSUBRF, yfmvx, Px, [23]uint8{0xd8, 05}},
Optab{AFSUBRD, yfadd, Px, [23]uint8{0xdc, 05, 0xd8, 05, 0xdc, 04}},
Optab{AFDIVDP, yfaddp, Px, [23]uint8{0xde, 07}},
Optab{AFDIVW, yfmvx, Px, [23]uint8{0xde, 06}},
Optab{AFDIVL, yfmvx, Px, [23]uint8{0xda, 06}},
Optab{AFDIVF, yfmvx, Px, [23]uint8{0xd8, 06}},
Optab{AFDIVD, yfadd, Px, [23]uint8{0xdc, 06, 0xd8, 06, 0xdc, 07}},
Optab{AFDIVRDP, yfaddp, Px, [23]uint8{0xde, 06}},
Optab{AFDIVRW, yfmvx, Px, [23]uint8{0xde, 07}},
Optab{AFDIVRL, yfmvx, Px, [23]uint8{0xda, 07}},
Optab{AFDIVRF, yfmvx, Px, [23]uint8{0xd8, 07}},
Optab{AFDIVRD, yfadd, Px, [23]uint8{0xdc, 07, 0xd8, 07, 0xdc, 06}},
Optab{AFXCHD, yfxch, Px, [23]uint8{0xd9, 01, 0xd9, 01}},
Optab{AFFREE, nil, 0, [23]uint8{}},
Optab{AFLDCW, ystcw, Px, [23]uint8{0xd9, 05, 0xd9, 05}},
Optab{AFLDENV, ystcw, Px, [23]uint8{0xd9, 04, 0xd9, 04}},
Optab{AFRSTOR, ysvrs, Px, [23]uint8{0xdd, 04, 0xdd, 04}},
Optab{AFSAVE, ysvrs, Px, [23]uint8{0xdd, 06, 0xdd, 06}},
Optab{AFSTCW, ystcw, Px, [23]uint8{0xd9, 07, 0xd9, 07}},
Optab{AFSTENV, ystcw, Px, [23]uint8{0xd9, 06, 0xd9, 06}},
Optab{AFSTSW, ystsw, Px, [23]uint8{0xdd, 07, 0xdf, 0xe0}},
Optab{AF2XM1, ynone, Px, [23]uint8{0xd9, 0xf0}},
Optab{AFABS, ynone, Px, [23]uint8{0xd9, 0xe1}},
Optab{AFCHS, ynone, Px, [23]uint8{0xd9, 0xe0}},
Optab{AFCLEX, ynone, Px, [23]uint8{0xdb, 0xe2}},
Optab{AFCOS, ynone, Px, [23]uint8{0xd9, 0xff}},
Optab{AFDECSTP, ynone, Px, [23]uint8{0xd9, 0xf6}},
Optab{AFINCSTP, ynone, Px, [23]uint8{0xd9, 0xf7}},
Optab{AFINIT, ynone, Px, [23]uint8{0xdb, 0xe3}},
Optab{AFLD1, ynone, Px, [23]uint8{0xd9, 0xe8}},
Optab{AFLDL2E, ynone, Px, [23]uint8{0xd9, 0xea}},
Optab{AFLDL2T, ynone, Px, [23]uint8{0xd9, 0xe9}},
Optab{AFLDLG2, ynone, Px, [23]uint8{0xd9, 0xec}},
Optab{AFLDLN2, ynone, Px, [23]uint8{0xd9, 0xed}},
Optab{AFLDPI, ynone, Px, [23]uint8{0xd9, 0xeb}},
Optab{AFLDZ, ynone, Px, [23]uint8{0xd9, 0xee}},
Optab{AFNOP, ynone, Px, [23]uint8{0xd9, 0xd0}},
Optab{AFPATAN, ynone, Px, [23]uint8{0xd9, 0xf3}},
Optab{AFPREM, ynone, Px, [23]uint8{0xd9, 0xf8}},
Optab{AFPREM1, ynone, Px, [23]uint8{0xd9, 0xf5}},
Optab{AFPTAN, ynone, Px, [23]uint8{0xd9, 0xf2}},
Optab{AFRNDINT, ynone, Px, [23]uint8{0xd9, 0xfc}},
Optab{AFSCALE, ynone, Px, [23]uint8{0xd9, 0xfd}},
Optab{AFSIN, ynone, Px, [23]uint8{0xd9, 0xfe}},
Optab{AFSINCOS, ynone, Px, [23]uint8{0xd9, 0xfb}},
Optab{AFSQRT, ynone, Px, [23]uint8{0xd9, 0xfa}},
Optab{AFTST, ynone, Px, [23]uint8{0xd9, 0xe4}},
Optab{AFXAM, ynone, Px, [23]uint8{0xd9, 0xe5}},
Optab{AFXTRACT, ynone, Px, [23]uint8{0xd9, 0xf4}},
Optab{AFYL2X, ynone, Px, [23]uint8{0xd9, 0xf1}},
Optab{AFYL2XP1, ynone, Px, [23]uint8{0xd9, 0xf9}},
Optab{ACMPXCHGB, yrb_mb, Pb, [23]uint8{0x0f, 0xb0}},
Optab{ACMPXCHGL, yrl_ml, Px, [23]uint8{0x0f, 0xb1}},
Optab{ACMPXCHGW, yrl_ml, Pe, [23]uint8{0x0f, 0xb1}},
Optab{ACMPXCHGQ, yrl_ml, Pw, [23]uint8{0x0f, 0xb1}},
Optab{ACMPXCHG8B, yscond, Pm, [23]uint8{0xc7, 01}},
Optab{AINVD, ynone, Pm, [23]uint8{0x08}},
Optab{AINVLPG, ymbs, Pm, [23]uint8{0x01, 07}},
Optab{ALFENCE, ynone, Pm, [23]uint8{0xae, 0xe8}},
Optab{AMFENCE, ynone, Pm, [23]uint8{0xae, 0xf0}},
Optab{AMOVNTIL, yrl_ml, Pm, [23]uint8{0xc3}},
Optab{AMOVNTIQ, yrl_ml, Pw, [23]uint8{0x0f, 0xc3}},
Optab{ARDMSR, ynone, Pm, [23]uint8{0x32}},
Optab{ARDPMC, ynone, Pm, [23]uint8{0x33}},
Optab{ARDTSC, ynone, Pm, [23]uint8{0x31}},
Optab{ARSM, ynone, Pm, [23]uint8{0xaa}},
Optab{ASFENCE, ynone, Pm, [23]uint8{0xae, 0xf8}},
Optab{ASYSRET, ynone, Pm, [23]uint8{0x07}},
Optab{AWBINVD, ynone, Pm, [23]uint8{0x09}},
Optab{AWRMSR, ynone, Pm, [23]uint8{0x30}},
Optab{AXADDB, yrb_mb, Pb, [23]uint8{0x0f, 0xc0}},
Optab{AXADDL, yrl_ml, Px, [23]uint8{0x0f, 0xc1}},
Optab{AXADDQ, yrl_ml, Pw, [23]uint8{0x0f, 0xc1}},
Optab{AXADDW, yrl_ml, Pe, [23]uint8{0x0f, 0xc1}},
Optab{ACRC32B, ycrc32l, Px, [23]uint8{0xf2, 0x0f, 0x38, 0xf0, 0}},
Optab{ACRC32Q, ycrc32l, Pw, [23]uint8{0xf2, 0x0f, 0x38, 0xf1, 0}},
Optab{APREFETCHT0, yprefetch, Pm, [23]uint8{0x18, 01}},
Optab{APREFETCHT1, yprefetch, Pm, [23]uint8{0x18, 02}},
Optab{APREFETCHT2, yprefetch, Pm, [23]uint8{0x18, 03}},
Optab{APREFETCHNTA, yprefetch, Pm, [23]uint8{0x18, 00}},
Optab{AMOVQL, yrl_ml, Px, [23]uint8{0x89}},
Optab{obj.AUNDEF, ynone, Px, [23]uint8{0x0f, 0x0b}},
Optab{AAESENC, yaes, Pq, [23]uint8{0x38, 0xdc, 0}},
Optab{AAESENCLAST, yaes, Pq, [23]uint8{0x38, 0xdd, 0}},
Optab{AAESDEC, yaes, Pq, [23]uint8{0x38, 0xde, 0}},
Optab{AAESDECLAST, yaes, Pq, [23]uint8{0x38, 0xdf, 0}},
Optab{AAESIMC, yaes, Pq, [23]uint8{0x38, 0xdb, 0}},
Optab{AAESKEYGENASSIST, yaes2, Pq, [23]uint8{0x3a, 0xdf, 0}},
Optab{APSHUFD, yxshuf, Pq, [23]uint8{0x70, 0}},
Optab{APCLMULQDQ, yxshuf, Pq, [23]uint8{0x3a, 0x44, 0}},
Optab{obj.AUSEFIELD, ynop, Px, [23]uint8{0, 0}},
Optab{obj.ATYPE, nil, 0, [23]uint8{}},
Optab{obj.AFUNCDATA, yfuncdata, Px, [23]uint8{0, 0}},
Optab{obj.APCDATA, ypcdata, Px, [23]uint8{0, 0}},
Optab{obj.ACHECKNIL, nil, 0, [23]uint8{}},
Optab{obj.AVARDEF, nil, 0, [23]uint8{}},
Optab{obj.AVARKILL, nil, 0, [23]uint8{}},
Optab{obj.ADUFFCOPY, yduff, Px, [23]uint8{0xe8}},
Optab{obj.ADUFFZERO, yduff, Px, [23]uint8{0xe8}},
Optab{obj.AEND, nil, 0, [23]uint8{}},
Optab{0, nil, 0, [23]uint8{}},
{obj.AXXX, nil, 0, [23]uint8{}},
{AAAA, ynone, P32, [23]uint8{0x37}},
{AAAD, ynone, P32, [23]uint8{0xd5, 0x0a}},
{AAAM, ynone, P32, [23]uint8{0xd4, 0x0a}},
{AAAS, ynone, P32, [23]uint8{0x3f}},
{AADCB, yxorb, Pb, [23]uint8{0x14, 0x80, 02, 0x10, 0x10}},
{AADCL, yxorl, Px, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
{AADCQ, yxorl, Pw, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
{AADCW, yxorl, Pe, [23]uint8{0x83, 02, 0x15, 0x81, 02, 0x11, 0x13}},
{AADDB, yxorb, Pb, [23]uint8{0x04, 0x80, 00, 0x00, 0x02}},
{AADDL, yaddl, Px, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
{AADDPD, yxm, Pq, [23]uint8{0x58}},
{AADDPS, yxm, Pm, [23]uint8{0x58}},
{AADDQ, yaddl, Pw, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
{AADDSD, yxm, Pf2, [23]uint8{0x58}},
{AADDSS, yxm, Pf3, [23]uint8{0x58}},
{AADDW, yaddl, Pe, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
{AADJSP, nil, 0, [23]uint8{}},
{AANDB, yxorb, Pb, [23]uint8{0x24, 0x80, 04, 0x20, 0x22}},
{AANDL, yxorl, Px, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
{AANDNPD, yxm, Pq, [23]uint8{0x55}},
{AANDNPS, yxm, Pm, [23]uint8{0x55}},
{AANDPD, yxm, Pq, [23]uint8{0x54}},
{AANDPS, yxm, Pq, [23]uint8{0x54}},
{AANDQ, yxorl, Pw, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
{AANDW, yxorl, Pe, [23]uint8{0x83, 04, 0x25, 0x81, 04, 0x21, 0x23}},
{AARPL, yrl_ml, P32, [23]uint8{0x63}},
{ABOUNDL, yrl_m, P32, [23]uint8{0x62}},
{ABOUNDW, yrl_m, Pe, [23]uint8{0x62}},
{ABSFL, yml_rl, Pm, [23]uint8{0xbc}},
{ABSFQ, yml_rl, Pw, [23]uint8{0x0f, 0xbc}},
{ABSFW, yml_rl, Pq, [23]uint8{0xbc}},
{ABSRL, yml_rl, Pm, [23]uint8{0xbd}},
{ABSRQ, yml_rl, Pw, [23]uint8{0x0f, 0xbd}},
{ABSRW, yml_rl, Pq, [23]uint8{0xbd}},
{ABSWAPL, ybswap, Px, [23]uint8{0x0f, 0xc8}},
{ABSWAPQ, ybswap, Pw, [23]uint8{0x0f, 0xc8}},
{ABTCL, ybtl, Pm, [23]uint8{0xba, 07, 0xbb}},
{ABTCQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 07, 0x0f, 0xbb}},
{ABTCW, ybtl, Pq, [23]uint8{0xba, 07, 0xbb}},
{ABTL, ybtl, Pm, [23]uint8{0xba, 04, 0xa3}},
{ABTQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 04, 0x0f, 0xa3}},
{ABTRL, ybtl, Pm, [23]uint8{0xba, 06, 0xb3}},
{ABTRQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 06, 0x0f, 0xb3}},
{ABTRW, ybtl, Pq, [23]uint8{0xba, 06, 0xb3}},
{ABTSL, ybtl, Pm, [23]uint8{0xba, 05, 0xab}},
{ABTSQ, ybtl, Pw, [23]uint8{0x0f, 0xba, 05, 0x0f, 0xab}},
{ABTSW, ybtl, Pq, [23]uint8{0xba, 05, 0xab}},
{ABTW, ybtl, Pq, [23]uint8{0xba, 04, 0xa3}},
{ABYTE, ybyte, Px, [23]uint8{1}},
{obj.ACALL, ycall, Px, [23]uint8{0xff, 02, 0xff, 0x15, 0xe8}},
{ACDQ, ynone, Px, [23]uint8{0x99}},
{ACLC, ynone, Px, [23]uint8{0xf8}},
{ACLD, ynone, Px, [23]uint8{0xfc}},
{ACLI, ynone, Px, [23]uint8{0xfa}},
{ACLTS, ynone, Pm, [23]uint8{0x06}},
{ACMC, ynone, Px, [23]uint8{0xf5}},
{ACMOVLCC, yml_rl, Pm, [23]uint8{0x43}},
{ACMOVLCS, yml_rl, Pm, [23]uint8{0x42}},
{ACMOVLEQ, yml_rl, Pm, [23]uint8{0x44}},
{ACMOVLGE, yml_rl, Pm, [23]uint8{0x4d}},
{ACMOVLGT, yml_rl, Pm, [23]uint8{0x4f}},
{ACMOVLHI, yml_rl, Pm, [23]uint8{0x47}},
{ACMOVLLE, yml_rl, Pm, [23]uint8{0x4e}},
{ACMOVLLS, yml_rl, Pm, [23]uint8{0x46}},
{ACMOVLLT, yml_rl, Pm, [23]uint8{0x4c}},
{ACMOVLMI, yml_rl, Pm, [23]uint8{0x48}},
{ACMOVLNE, yml_rl, Pm, [23]uint8{0x45}},
{ACMOVLOC, yml_rl, Pm, [23]uint8{0x41}},
{ACMOVLOS, yml_rl, Pm, [23]uint8{0x40}},
{ACMOVLPC, yml_rl, Pm, [23]uint8{0x4b}},
{ACMOVLPL, yml_rl, Pm, [23]uint8{0x49}},
{ACMOVLPS, yml_rl, Pm, [23]uint8{0x4a}},
{ACMOVQCC, yml_rl, Pw, [23]uint8{0x0f, 0x43}},
{ACMOVQCS, yml_rl, Pw, [23]uint8{0x0f, 0x42}},
{ACMOVQEQ, yml_rl, Pw, [23]uint8{0x0f, 0x44}},
{ACMOVQGE, yml_rl, Pw, [23]uint8{0x0f, 0x4d}},
{ACMOVQGT, yml_rl, Pw, [23]uint8{0x0f, 0x4f}},
{ACMOVQHI, yml_rl, Pw, [23]uint8{0x0f, 0x47}},
{ACMOVQLE, yml_rl, Pw, [23]uint8{0x0f, 0x4e}},
{ACMOVQLS, yml_rl, Pw, [23]uint8{0x0f, 0x46}},
{ACMOVQLT, yml_rl, Pw, [23]uint8{0x0f, 0x4c}},
{ACMOVQMI, yml_rl, Pw, [23]uint8{0x0f, 0x48}},
{ACMOVQNE, yml_rl, Pw, [23]uint8{0x0f, 0x45}},
{ACMOVQOC, yml_rl, Pw, [23]uint8{0x0f, 0x41}},
{ACMOVQOS, yml_rl, Pw, [23]uint8{0x0f, 0x40}},
{ACMOVQPC, yml_rl, Pw, [23]uint8{0x0f, 0x4b}},
{ACMOVQPL, yml_rl, Pw, [23]uint8{0x0f, 0x49}},
{ACMOVQPS, yml_rl, Pw, [23]uint8{0x0f, 0x4a}},
{ACMOVWCC, yml_rl, Pq, [23]uint8{0x43}},
{ACMOVWCS, yml_rl, Pq, [23]uint8{0x42}},
{ACMOVWEQ, yml_rl, Pq, [23]uint8{0x44}},
{ACMOVWGE, yml_rl, Pq, [23]uint8{0x4d}},
{ACMOVWGT, yml_rl, Pq, [23]uint8{0x4f}},
{ACMOVWHI, yml_rl, Pq, [23]uint8{0x47}},
{ACMOVWLE, yml_rl, Pq, [23]uint8{0x4e}},
{ACMOVWLS, yml_rl, Pq, [23]uint8{0x46}},
{ACMOVWLT, yml_rl, Pq, [23]uint8{0x4c}},
{ACMOVWMI, yml_rl, Pq, [23]uint8{0x48}},
{ACMOVWNE, yml_rl, Pq, [23]uint8{0x45}},
{ACMOVWOC, yml_rl, Pq, [23]uint8{0x41}},
{ACMOVWOS, yml_rl, Pq, [23]uint8{0x40}},
{ACMOVWPC, yml_rl, Pq, [23]uint8{0x4b}},
{ACMOVWPL, yml_rl, Pq, [23]uint8{0x49}},
{ACMOVWPS, yml_rl, Pq, [23]uint8{0x4a}},
{ACMPB, ycmpb, Pb, [23]uint8{0x3c, 0x80, 07, 0x38, 0x3a}},
{ACMPL, ycmpl, Px, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
{ACMPPD, yxcmpi, Px, [23]uint8{Pe, 0xc2}},
{ACMPPS, yxcmpi, Pm, [23]uint8{0xc2, 0}},
{ACMPQ, ycmpl, Pw, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
{ACMPSB, ynone, Pb, [23]uint8{0xa6}},
{ACMPSD, yxcmpi, Px, [23]uint8{Pf2, 0xc2}},
{ACMPSL, ynone, Px, [23]uint8{0xa7}},
{ACMPSQ, ynone, Pw, [23]uint8{0xa7}},
{ACMPSS, yxcmpi, Px, [23]uint8{Pf3, 0xc2}},
{ACMPSW, ynone, Pe, [23]uint8{0xa7}},
{ACMPW, ycmpl, Pe, [23]uint8{0x83, 07, 0x3d, 0x81, 07, 0x39, 0x3b}},
{ACOMISD, yxcmp, Pe, [23]uint8{0x2f}},
{ACOMISS, yxcmp, Pm, [23]uint8{0x2f}},
{ACPUID, ynone, Pm, [23]uint8{0xa2}},
{ACVTPL2PD, yxcvm2, Px, [23]uint8{Pf3, 0xe6, Pe, 0x2a}},
{ACVTPL2PS, yxcvm2, Pm, [23]uint8{0x5b, 0, 0x2a, 0}},
{ACVTPD2PL, yxcvm1, Px, [23]uint8{Pf2, 0xe6, Pe, 0x2d}},
{ACVTPD2PS, yxm, Pe, [23]uint8{0x5a}},
{ACVTPS2PL, yxcvm1, Px, [23]uint8{Pe, 0x5b, Pm, 0x2d}},
{ACVTPS2PD, yxm, Pm, [23]uint8{0x5a}},
{API2FW, ymfp, Px, [23]uint8{0x0c}},
{ACVTSD2SL, yxcvfl, Pf2, [23]uint8{0x2d}},
{ACVTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2d}},
{ACVTSD2SS, yxm, Pf2, [23]uint8{0x5a}},
{ACVTSL2SD, yxcvlf, Pf2, [23]uint8{0x2a}},
{ACVTSQ2SD, yxcvqf, Pw, [23]uint8{Pf2, 0x2a}},
{ACVTSL2SS, yxcvlf, Pf3, [23]uint8{0x2a}},
{ACVTSQ2SS, yxcvqf, Pw, [23]uint8{Pf3, 0x2a}},
{ACVTSS2SD, yxm, Pf3, [23]uint8{0x5a}},
{ACVTSS2SL, yxcvfl, Pf3, [23]uint8{0x2d}},
{ACVTSS2SQ, yxcvfq, Pw, [23]uint8{Pf3, 0x2d}},
{ACVTTPD2PL, yxcvm1, Px, [23]uint8{Pe, 0xe6, Pe, 0x2c}},
{ACVTTPS2PL, yxcvm1, Px, [23]uint8{Pf3, 0x5b, Pm, 0x2c}},
{ACVTTSD2SL, yxcvfl, Pf2, [23]uint8{0x2c}},
{ACVTTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2c}},
{ACVTTSS2SL, yxcvfl, Pf3, [23]uint8{0x2c}},
{ACVTTSS2SQ, yxcvfq, Pw, [23]uint8{Pf3, 0x2c}},
{ACWD, ynone, Pe, [23]uint8{0x99}},
{ACQO, ynone, Pw, [23]uint8{0x99}},
{ADAA, ynone, P32, [23]uint8{0x27}},
{ADAS, ynone, P32, [23]uint8{0x2f}},
{obj.ADATA, nil, 0, [23]uint8{}},
{ADECB, yincb, Pb, [23]uint8{0xfe, 01}},
{ADECL, yincl, Px1, [23]uint8{0x48, 0xff, 01}},
{ADECQ, yincq, Pw, [23]uint8{0xff, 01}},
{ADECW, yincw, Pe, [23]uint8{0xff, 01}},
{ADIVB, ydivb, Pb, [23]uint8{0xf6, 06}},
{ADIVL, ydivl, Px, [23]uint8{0xf7, 06}},
{ADIVPD, yxm, Pe, [23]uint8{0x5e}},
{ADIVPS, yxm, Pm, [23]uint8{0x5e}},
{ADIVQ, ydivl, Pw, [23]uint8{0xf7, 06}},
{ADIVSD, yxm, Pf2, [23]uint8{0x5e}},
{ADIVSS, yxm, Pf3, [23]uint8{0x5e}},
{ADIVW, ydivl, Pe, [23]uint8{0xf7, 06}},
{AEMMS, ynone, Pm, [23]uint8{0x77}},
{AENTER, nil, 0, [23]uint8{}}, /* botch */
{AFXRSTOR, ysvrs, Pm, [23]uint8{0xae, 01, 0xae, 01}},
{AFXSAVE, ysvrs, Pm, [23]uint8{0xae, 00, 0xae, 00}},
{AFXRSTOR64, ysvrs, Pw, [23]uint8{0x0f, 0xae, 01, 0x0f, 0xae, 01}},
{AFXSAVE64, ysvrs, Pw, [23]uint8{0x0f, 0xae, 00, 0x0f, 0xae, 00}},
{obj.AGLOBL, nil, 0, [23]uint8{}},
{AHLT, ynone, Px, [23]uint8{0xf4}},
{AIDIVB, ydivb, Pb, [23]uint8{0xf6, 07}},
{AIDIVL, ydivl, Px, [23]uint8{0xf7, 07}},
{AIDIVQ, ydivl, Pw, [23]uint8{0xf7, 07}},
{AIDIVW, ydivl, Pe, [23]uint8{0xf7, 07}},
{AIMULB, ydivb, Pb, [23]uint8{0xf6, 05}},
{AIMULL, yimul, Px, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
{AIMULQ, yimul, Pw, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
{AIMULW, yimul, Pe, [23]uint8{0xf7, 05, 0x6b, 0x69, Pm, 0xaf}},
{AIMUL3Q, yimul3, Pw, [23]uint8{0x6b, 00}},
{AINB, yin, Pb, [23]uint8{0xe4, 0xec}},
{AINCB, yincb, Pb, [23]uint8{0xfe, 00}},
{AINCL, yincl, Px1, [23]uint8{0x40, 0xff, 00}},
{AINCQ, yincq, Pw, [23]uint8{0xff, 00}},
{AINCW, yincw, Pe, [23]uint8{0xff, 00}},
{AINL, yin, Px, [23]uint8{0xe5, 0xed}},
{AINSB, ynone, Pb, [23]uint8{0x6c}},
{AINSL, ynone, Px, [23]uint8{0x6d}},
{AINSW, ynone, Pe, [23]uint8{0x6d}},
{AINT, yint, Px, [23]uint8{0xcd}},
{AINTO, ynone, P32, [23]uint8{0xce}},
{AINW, yin, Pe, [23]uint8{0xe5, 0xed}},
{AIRETL, ynone, Px, [23]uint8{0xcf}},
{AIRETQ, ynone, Pw, [23]uint8{0xcf}},
{AIRETW, ynone, Pe, [23]uint8{0xcf}},
{AJCC, yjcond, Px, [23]uint8{0x73, 0x83, 00}},
{AJCS, yjcond, Px, [23]uint8{0x72, 0x82}},
{AJCXZL, yloop, Px, [23]uint8{0xe3}},
{AJCXZW, yloop, Px, [23]uint8{0xe3}},
{AJCXZQ, yloop, Px, [23]uint8{0xe3}},
{AJEQ, yjcond, Px, [23]uint8{0x74, 0x84}},
{AJGE, yjcond, Px, [23]uint8{0x7d, 0x8d}},
{AJGT, yjcond, Px, [23]uint8{0x7f, 0x8f}},
{AJHI, yjcond, Px, [23]uint8{0x77, 0x87}},
{AJLE, yjcond, Px, [23]uint8{0x7e, 0x8e}},
{AJLS, yjcond, Px, [23]uint8{0x76, 0x86}},
{AJLT, yjcond, Px, [23]uint8{0x7c, 0x8c}},
{AJMI, yjcond, Px, [23]uint8{0x78, 0x88}},
{obj.AJMP, yjmp, Px, [23]uint8{0xff, 04, 0xeb, 0xe9}},
{AJNE, yjcond, Px, [23]uint8{0x75, 0x85}},
{AJOC, yjcond, Px, [23]uint8{0x71, 0x81, 00}},
{AJOS, yjcond, Px, [23]uint8{0x70, 0x80, 00}},
{AJPC, yjcond, Px, [23]uint8{0x7b, 0x8b}},
{AJPL, yjcond, Px, [23]uint8{0x79, 0x89}},
{AJPS, yjcond, Px, [23]uint8{0x7a, 0x8a}},
{ALAHF, ynone, Px, [23]uint8{0x9f}},
{ALARL, yml_rl, Pm, [23]uint8{0x02}},
{ALARW, yml_rl, Pq, [23]uint8{0x02}},
{ALDMXCSR, ysvrs, Pm, [23]uint8{0xae, 02, 0xae, 02}},
{ALEAL, ym_rl, Px, [23]uint8{0x8d}},
{ALEAQ, ym_rl, Pw, [23]uint8{0x8d}},
{ALEAVEL, ynone, P32, [23]uint8{0xc9}},
{ALEAVEQ, ynone, Py, [23]uint8{0xc9}},
{ALEAVEW, ynone, Pe, [23]uint8{0xc9}},
{ALEAW, ym_rl, Pe, [23]uint8{0x8d}},
{ALOCK, ynone, Px, [23]uint8{0xf0}},
{ALODSB, ynone, Pb, [23]uint8{0xac}},
{ALODSL, ynone, Px, [23]uint8{0xad}},
{ALODSQ, ynone, Pw, [23]uint8{0xad}},
{ALODSW, ynone, Pe, [23]uint8{0xad}},
{ALONG, ybyte, Px, [23]uint8{4}},
{ALOOP, yloop, Px, [23]uint8{0xe2}},
{ALOOPEQ, yloop, Px, [23]uint8{0xe1}},
{ALOOPNE, yloop, Px, [23]uint8{0xe0}},
{ALSLL, yml_rl, Pm, [23]uint8{0x03}},
{ALSLW, yml_rl, Pq, [23]uint8{0x03}},
{AMASKMOVOU, yxr, Pe, [23]uint8{0xf7}},
{AMASKMOVQ, ymr, Pm, [23]uint8{0xf7}},
{AMAXPD, yxm, Pe, [23]uint8{0x5f}},
{AMAXPS, yxm, Pm, [23]uint8{0x5f}},
{AMAXSD, yxm, Pf2, [23]uint8{0x5f}},
{AMAXSS, yxm, Pf3, [23]uint8{0x5f}},
{AMINPD, yxm, Pe, [23]uint8{0x5d}},
{AMINPS, yxm, Pm, [23]uint8{0x5d}},
{AMINSD, yxm, Pf2, [23]uint8{0x5d}},
{AMINSS, yxm, Pf3, [23]uint8{0x5d}},
{AMOVAPD, yxmov, Pe, [23]uint8{0x28, 0x29}},
{AMOVAPS, yxmov, Pm, [23]uint8{0x28, 0x29}},
{AMOVB, ymovb, Pb, [23]uint8{0x88, 0x8a, 0xb0, 0xc6, 00}},
{AMOVBLSX, ymb_rl, Pm, [23]uint8{0xbe}},
{AMOVBLZX, ymb_rl, Pm, [23]uint8{0xb6}},
{AMOVBQSX, ymb_rl, Pw, [23]uint8{0x0f, 0xbe}},
{AMOVBQZX, ymb_rl, Pm, [23]uint8{0xb6}},
{AMOVBWSX, ymb_rl, Pq, [23]uint8{0xbe}},
{AMOVBWZX, ymb_rl, Pq, [23]uint8{0xb6}},
{AMOVO, yxmov, Pe, [23]uint8{0x6f, 0x7f}},
{AMOVOU, yxmov, Pf3, [23]uint8{0x6f, 0x7f}},
{AMOVHLPS, yxr, Pm, [23]uint8{0x12}},
{AMOVHPD, yxmov, Pe, [23]uint8{0x16, 0x17}},
{AMOVHPS, yxmov, Pm, [23]uint8{0x16, 0x17}},
{AMOVL, ymovl, Px, [23]uint8{0x89, 0x8b, 0x31, 0xb8, 0xc7, 00, 0x6e, 0x7e, Pe, 0x6e, Pe, 0x7e, 0}},
{AMOVLHPS, yxr, Pm, [23]uint8{0x16}},
{AMOVLPD, yxmov, Pe, [23]uint8{0x12, 0x13}},
{AMOVLPS, yxmov, Pm, [23]uint8{0x12, 0x13}},
{AMOVLQSX, yml_rl, Pw, [23]uint8{0x63}},
{AMOVLQZX, yml_rl, Px, [23]uint8{0x8b}},
{AMOVMSKPD, yxrrl, Pq, [23]uint8{0x50}},
{AMOVMSKPS, yxrrl, Pm, [23]uint8{0x50}},
{AMOVNTO, yxr_ml, Pe, [23]uint8{0xe7}},
{AMOVNTPD, yxr_ml, Pe, [23]uint8{0x2b}},
{AMOVNTPS, yxr_ml, Pm, [23]uint8{0x2b}},
{AMOVNTQ, ymr_ml, Pm, [23]uint8{0xe7}},
{AMOVQ, ymovq, Pw8, [23]uint8{0x6f, 0x7f, Pf2, 0xd6, Pf3, 0x7e, Pe, 0xd6, 0x89, 0x8b, 0x31, 0xc7, 00, 0xb8, 0xc7, 00, 0x6e, 0x7e, Pe, 0x6e, Pe, 0x7e, 0}},
{AMOVQOZX, ymrxr, Pf3, [23]uint8{0xd6, 0x7e}},
{AMOVSB, ynone, Pb, [23]uint8{0xa4}},
{AMOVSD, yxmov, Pf2, [23]uint8{0x10, 0x11}},
{AMOVSL, ynone, Px, [23]uint8{0xa5}},
{AMOVSQ, ynone, Pw, [23]uint8{0xa5}},
{AMOVSS, yxmov, Pf3, [23]uint8{0x10, 0x11}},
{AMOVSW, ynone, Pe, [23]uint8{0xa5}},
{AMOVUPD, yxmov, Pe, [23]uint8{0x10, 0x11}},
{AMOVUPS, yxmov, Pm, [23]uint8{0x10, 0x11}},
{AMOVW, ymovw, Pe, [23]uint8{0x89, 0x8b, 0x31, 0xb8, 0xc7, 00, 0}},
{AMOVWLSX, yml_rl, Pm, [23]uint8{0xbf}},
{AMOVWLZX, yml_rl, Pm, [23]uint8{0xb7}},
{AMOVWQSX, yml_rl, Pw, [23]uint8{0x0f, 0xbf}},
{AMOVWQZX, yml_rl, Pw, [23]uint8{0x0f, 0xb7}},
{AMULB, ydivb, Pb, [23]uint8{0xf6, 04}},
{AMULL, ydivl, Px, [23]uint8{0xf7, 04}},
{AMULPD, yxm, Pe, [23]uint8{0x59}},
{AMULPS, yxm, Ym, [23]uint8{0x59}},
{AMULQ, ydivl, Pw, [23]uint8{0xf7, 04}},
{AMULSD, yxm, Pf2, [23]uint8{0x59}},
{AMULSS, yxm, Pf3, [23]uint8{0x59}},
{AMULW, ydivl, Pe, [23]uint8{0xf7, 04}},
{ANEGB, yscond, Pb, [23]uint8{0xf6, 03}},
{ANEGL, yscond, Px, [23]uint8{0xf7, 03}},
{ANEGQ, yscond, Pw, [23]uint8{0xf7, 03}},
{ANEGW, yscond, Pe, [23]uint8{0xf7, 03}},
{obj.ANOP, ynop, Px, [23]uint8{0, 0}},
{ANOTB, yscond, Pb, [23]uint8{0xf6, 02}},
{ANOTL, yscond, Px, [23]uint8{0xf7, 02}}, // TODO(rsc): yscond is wrong here.
{ANOTQ, yscond, Pw, [23]uint8{0xf7, 02}},
{ANOTW, yscond, Pe, [23]uint8{0xf7, 02}},
{AORB, yxorb, Pb, [23]uint8{0x0c, 0x80, 01, 0x08, 0x0a}},
{AORL, yxorl, Px, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
{AORPD, yxm, Pq, [23]uint8{0x56}},
{AORPS, yxm, Pm, [23]uint8{0x56}},
{AORQ, yxorl, Pw, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
{AORW, yxorl, Pe, [23]uint8{0x83, 01, 0x0d, 0x81, 01, 0x09, 0x0b}},
{AOUTB, yin, Pb, [23]uint8{0xe6, 0xee}},
{AOUTL, yin, Px, [23]uint8{0xe7, 0xef}},
{AOUTSB, ynone, Pb, [23]uint8{0x6e}},
{AOUTSL, ynone, Px, [23]uint8{0x6f}},
{AOUTSW, ynone, Pe, [23]uint8{0x6f}},
{AOUTW, yin, Pe, [23]uint8{0xe7, 0xef}},
{APACKSSLW, ymm, Py1, [23]uint8{0x6b, Pe, 0x6b}},
{APACKSSWB, ymm, Py1, [23]uint8{0x63, Pe, 0x63}},
{APACKUSWB, ymm, Py1, [23]uint8{0x67, Pe, 0x67}},
{APADDB, ymm, Py1, [23]uint8{0xfc, Pe, 0xfc}},
{APADDL, ymm, Py1, [23]uint8{0xfe, Pe, 0xfe}},
{APADDQ, yxm, Pe, [23]uint8{0xd4}},
{APADDSB, ymm, Py1, [23]uint8{0xec, Pe, 0xec}},
{APADDSW, ymm, Py1, [23]uint8{0xed, Pe, 0xed}},
{APADDUSB, ymm, Py1, [23]uint8{0xdc, Pe, 0xdc}},
{APADDUSW, ymm, Py1, [23]uint8{0xdd, Pe, 0xdd}},
{APADDW, ymm, Py1, [23]uint8{0xfd, Pe, 0xfd}},
{APAND, ymm, Py1, [23]uint8{0xdb, Pe, 0xdb}},
{APANDN, ymm, Py1, [23]uint8{0xdf, Pe, 0xdf}},
{APAUSE, ynone, Px, [23]uint8{0xf3, 0x90}},
{APAVGB, ymm, Py1, [23]uint8{0xe0, Pe, 0xe0}},
{APAVGW, ymm, Py1, [23]uint8{0xe3, Pe, 0xe3}},
{APCMPEQB, ymm, Py1, [23]uint8{0x74, Pe, 0x74}},
{APCMPEQL, ymm, Py1, [23]uint8{0x76, Pe, 0x76}},
{APCMPEQW, ymm, Py1, [23]uint8{0x75, Pe, 0x75}},
{APCMPGTB, ymm, Py1, [23]uint8{0x64, Pe, 0x64}},
{APCMPGTL, ymm, Py1, [23]uint8{0x66, Pe, 0x66}},
{APCMPGTW, ymm, Py1, [23]uint8{0x65, Pe, 0x65}},
{APEXTRW, yextrw, Pq, [23]uint8{0xc5, 00}},
{APF2IL, ymfp, Px, [23]uint8{0x1d}},
{APF2IW, ymfp, Px, [23]uint8{0x1c}},
{API2FL, ymfp, Px, [23]uint8{0x0d}},
{APFACC, ymfp, Px, [23]uint8{0xae}},
{APFADD, ymfp, Px, [23]uint8{0x9e}},
{APFCMPEQ, ymfp, Px, [23]uint8{0xb0}},
{APFCMPGE, ymfp, Px, [23]uint8{0x90}},
{APFCMPGT, ymfp, Px, [23]uint8{0xa0}},
{APFMAX, ymfp, Px, [23]uint8{0xa4}},
{APFMIN, ymfp, Px, [23]uint8{0x94}},
{APFMUL, ymfp, Px, [23]uint8{0xb4}},
{APFNACC, ymfp, Px, [23]uint8{0x8a}},
{APFPNACC, ymfp, Px, [23]uint8{0x8e}},
{APFRCP, ymfp, Px, [23]uint8{0x96}},
{APFRCPIT1, ymfp, Px, [23]uint8{0xa6}},
{APFRCPI2T, ymfp, Px, [23]uint8{0xb6}},
{APFRSQIT1, ymfp, Px, [23]uint8{0xa7}},
{APFRSQRT, ymfp, Px, [23]uint8{0x97}},
{APFSUB, ymfp, Px, [23]uint8{0x9a}},
{APFSUBR, ymfp, Px, [23]uint8{0xaa}},
{APINSRW, yinsrw, Pq, [23]uint8{0xc4, 00}},
{APINSRD, yinsr, Pq, [23]uint8{0x3a, 0x22, 00}},
{APINSRQ, yinsr, Pq3, [23]uint8{0x3a, 0x22, 00}},
{APMADDWL, ymm, Py1, [23]uint8{0xf5, Pe, 0xf5}},
{APMAXSW, yxm, Pe, [23]uint8{0xee}},
{APMAXUB, yxm, Pe, [23]uint8{0xde}},
{APMINSW, yxm, Pe, [23]uint8{0xea}},
{APMINUB, yxm, Pe, [23]uint8{0xda}},
{APMOVMSKB, ymskb, Px, [23]uint8{Pe, 0xd7, 0xd7}},
{APMULHRW, ymfp, Px, [23]uint8{0xb7}},
{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
{APMULLW, ymm, Py1, [23]uint8{0xd5, Pe, 0xd5}},
{APMULULQ, ymm, Py1, [23]uint8{0xf4, Pe, 0xf4}},
{APOPAL, ynone, P32, [23]uint8{0x61}},
{APOPAW, ynone, Pe, [23]uint8{0x61}},
{APOPFL, ynone, P32, [23]uint8{0x9d}},
{APOPFQ, ynone, Py, [23]uint8{0x9d}},
{APOPFW, ynone, Pe, [23]uint8{0x9d}},
{APOPL, ypopl, P32, [23]uint8{0x58, 0x8f, 00}},
{APOPQ, ypopl, Py, [23]uint8{0x58, 0x8f, 00}},
{APOPW, ypopl, Pe, [23]uint8{0x58, 0x8f, 00}},
{APOR, ymm, Py1, [23]uint8{0xeb, Pe, 0xeb}},
{APSADBW, yxm, Pq, [23]uint8{0xf6}},
{APSHUFHW, yxshuf, Pf3, [23]uint8{0x70, 00}},
{APSHUFL, yxshuf, Pq, [23]uint8{0x70, 00}},
{APSHUFLW, yxshuf, Pf2, [23]uint8{0x70, 00}},
{APSHUFW, ymshuf, Pm, [23]uint8{0x70, 00}},
{APSHUFB, ymshufb, Pq, [23]uint8{0x38, 0x00}},
{APSLLO, ypsdq, Pq, [23]uint8{0x73, 07}},
{APSLLL, yps, Py3, [23]uint8{0xf2, 0x72, 06, Pe, 0xf2, Pe, 0x72, 06}},
{APSLLQ, yps, Py3, [23]uint8{0xf3, 0x73, 06, Pe, 0xf3, Pe, 0x73, 06}},
{APSLLW, yps, Py3, [23]uint8{0xf1, 0x71, 06, Pe, 0xf1, Pe, 0x71, 06}},
{APSRAL, yps, Py3, [23]uint8{0xe2, 0x72, 04, Pe, 0xe2, Pe, 0x72, 04}},
{APSRAW, yps, Py3, [23]uint8{0xe1, 0x71, 04, Pe, 0xe1, Pe, 0x71, 04}},
{APSRLO, ypsdq, Pq, [23]uint8{0x73, 03}},
{APSRLL, yps, Py3, [23]uint8{0xd2, 0x72, 02, Pe, 0xd2, Pe, 0x72, 02}},
{APSRLQ, yps, Py3, [23]uint8{0xd3, 0x73, 02, Pe, 0xd3, Pe, 0x73, 02}},
{APSRLW, yps, Py3, [23]uint8{0xd1, 0x71, 02, Pe, 0xe1, Pe, 0x71, 02}},
{APSUBB, yxm, Pe, [23]uint8{0xf8}},
{APSUBL, yxm, Pe, [23]uint8{0xfa}},
{APSUBQ, yxm, Pe, [23]uint8{0xfb}},
{APSUBSB, yxm, Pe, [23]uint8{0xe8}},
{APSUBSW, yxm, Pe, [23]uint8{0xe9}},
{APSUBUSB, yxm, Pe, [23]uint8{0xd8}},
{APSUBUSW, yxm, Pe, [23]uint8{0xd9}},
{APSUBW, yxm, Pe, [23]uint8{0xf9}},
{APSWAPL, ymfp, Px, [23]uint8{0xbb}},
{APUNPCKHBW, ymm, Py1, [23]uint8{0x68, Pe, 0x68}},
{APUNPCKHLQ, ymm, Py1, [23]uint8{0x6a, Pe, 0x6a}},
{APUNPCKHQDQ, yxm, Pe, [23]uint8{0x6d}},
{APUNPCKHWL, ymm, Py1, [23]uint8{0x69, Pe, 0x69}},
{APUNPCKLBW, ymm, Py1, [23]uint8{0x60, Pe, 0x60}},
{APUNPCKLLQ, ymm, Py1, [23]uint8{0x62, Pe, 0x62}},
{APUNPCKLQDQ, yxm, Pe, [23]uint8{0x6c}},
{APUNPCKLWL, ymm, Py1, [23]uint8{0x61, Pe, 0x61}},
{APUSHAL, ynone, P32, [23]uint8{0x60}},
{APUSHAW, ynone, Pe, [23]uint8{0x60}},
{APUSHFL, ynone, P32, [23]uint8{0x9c}},
{APUSHFQ, ynone, Py, [23]uint8{0x9c}},
{APUSHFW, ynone, Pe, [23]uint8{0x9c}},
{APUSHL, ypushl, P32, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
{APUSHQ, ypushl, Py, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
{APUSHW, ypushl, Pe, [23]uint8{0x50, 0xff, 06, 0x6a, 0x68}},
{APXOR, ymm, Py1, [23]uint8{0xef, Pe, 0xef}},
{AQUAD, ybyte, Px, [23]uint8{8}},
{ARCLB, yshb, Pb, [23]uint8{0xd0, 02, 0xc0, 02, 0xd2, 02}},
{ARCLL, yshl, Px, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
{ARCLQ, yshl, Pw, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
{ARCLW, yshl, Pe, [23]uint8{0xd1, 02, 0xc1, 02, 0xd3, 02, 0xd3, 02}},
{ARCPPS, yxm, Pm, [23]uint8{0x53}},
{ARCPSS, yxm, Pf3, [23]uint8{0x53}},
{ARCRB, yshb, Pb, [23]uint8{0xd0, 03, 0xc0, 03, 0xd2, 03}},
{ARCRL, yshl, Px, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
{ARCRQ, yshl, Pw, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
{ARCRW, yshl, Pe, [23]uint8{0xd1, 03, 0xc1, 03, 0xd3, 03, 0xd3, 03}},
{AREP, ynone, Px, [23]uint8{0xf3}},
{AREPN, ynone, Px, [23]uint8{0xf2}},
{obj.ARET, ynone, Px, [23]uint8{0xc3}},
{ARETFW, yret, Pe, [23]uint8{0xcb, 0xca}},
{ARETFL, yret, Px, [23]uint8{0xcb, 0xca}},
{ARETFQ, yret, Pw, [23]uint8{0xcb, 0xca}},
{AROLB, yshb, Pb, [23]uint8{0xd0, 00, 0xc0, 00, 0xd2, 00}},
{AROLL, yshl, Px, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
{AROLQ, yshl, Pw, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
{AROLW, yshl, Pe, [23]uint8{0xd1, 00, 0xc1, 00, 0xd3, 00, 0xd3, 00}},
{ARORB, yshb, Pb, [23]uint8{0xd0, 01, 0xc0, 01, 0xd2, 01}},
{ARORL, yshl, Px, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
{ARORQ, yshl, Pw, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
{ARORW, yshl, Pe, [23]uint8{0xd1, 01, 0xc1, 01, 0xd3, 01, 0xd3, 01}},
{ARSQRTPS, yxm, Pm, [23]uint8{0x52}},
{ARSQRTSS, yxm, Pf3, [23]uint8{0x52}},
{ASAHF, ynone, Px1, [23]uint8{0x9e, 00, 0x86, 0xe0, 0x50, 0x9d}}, /* XCHGB AH,AL; PUSH AX; POPFL */
{ASALB, yshb, Pb, [23]uint8{0xd0, 04, 0xc0, 04, 0xd2, 04}},
{ASALL, yshl, Px, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASALQ, yshl, Pw, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASALW, yshl, Pe, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASARB, yshb, Pb, [23]uint8{0xd0, 07, 0xc0, 07, 0xd2, 07}},
{ASARL, yshl, Px, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
{ASARQ, yshl, Pw, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
{ASARW, yshl, Pe, [23]uint8{0xd1, 07, 0xc1, 07, 0xd3, 07, 0xd3, 07}},
{ASBBB, yxorb, Pb, [23]uint8{0x1c, 0x80, 03, 0x18, 0x1a}},
{ASBBL, yxorl, Px, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
{ASBBQ, yxorl, Pw, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
{ASBBW, yxorl, Pe, [23]uint8{0x83, 03, 0x1d, 0x81, 03, 0x19, 0x1b}},
{ASCASB, ynone, Pb, [23]uint8{0xae}},
{ASCASL, ynone, Px, [23]uint8{0xaf}},
{ASCASQ, ynone, Pw, [23]uint8{0xaf}},
{ASCASW, ynone, Pe, [23]uint8{0xaf}},
{ASETCC, yscond, Pb, [23]uint8{0x0f, 0x93, 00}},
{ASETCS, yscond, Pb, [23]uint8{0x0f, 0x92, 00}},
{ASETEQ, yscond, Pb, [23]uint8{0x0f, 0x94, 00}},
{ASETGE, yscond, Pb, [23]uint8{0x0f, 0x9d, 00}},
{ASETGT, yscond, Pb, [23]uint8{0x0f, 0x9f, 00}},
{ASETHI, yscond, Pb, [23]uint8{0x0f, 0x97, 00}},
{ASETLE, yscond, Pb, [23]uint8{0x0f, 0x9e, 00}},
{ASETLS, yscond, Pb, [23]uint8{0x0f, 0x96, 00}},
{ASETLT, yscond, Pb, [23]uint8{0x0f, 0x9c, 00}},
{ASETMI, yscond, Pb, [23]uint8{0x0f, 0x98, 00}},
{ASETNE, yscond, Pb, [23]uint8{0x0f, 0x95, 00}},
{ASETOC, yscond, Pb, [23]uint8{0x0f, 0x91, 00}},
{ASETOS, yscond, Pb, [23]uint8{0x0f, 0x90, 00}},
{ASETPC, yscond, Pb, [23]uint8{0x0f, 0x9b, 00}},
{ASETPL, yscond, Pb, [23]uint8{0x0f, 0x99, 00}},
{ASETPS, yscond, Pb, [23]uint8{0x0f, 0x9a, 00}},
{ASHLB, yshb, Pb, [23]uint8{0xd0, 04, 0xc0, 04, 0xd2, 04}},
{ASHLL, yshl, Px, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASHLQ, yshl, Pw, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASHLW, yshl, Pe, [23]uint8{0xd1, 04, 0xc1, 04, 0xd3, 04, 0xd3, 04}},
{ASHRB, yshb, Pb, [23]uint8{0xd0, 05, 0xc0, 05, 0xd2, 05}},
{ASHRL, yshl, Px, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
{ASHRQ, yshl, Pw, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
{ASHRW, yshl, Pe, [23]uint8{0xd1, 05, 0xc1, 05, 0xd3, 05, 0xd3, 05}},
{ASHUFPD, yxshuf, Pq, [23]uint8{0xc6, 00}},
{ASHUFPS, yxshuf, Pm, [23]uint8{0xc6, 00}},
{ASQRTPD, yxm, Pe, [23]uint8{0x51}},
{ASQRTPS, yxm, Pm, [23]uint8{0x51}},
{ASQRTSD, yxm, Pf2, [23]uint8{0x51}},
{ASQRTSS, yxm, Pf3, [23]uint8{0x51}},
{ASTC, ynone, Px, [23]uint8{0xf9}},
{ASTD, ynone, Px, [23]uint8{0xfd}},
{ASTI, ynone, Px, [23]uint8{0xfb}},
{ASTMXCSR, ysvrs, Pm, [23]uint8{0xae, 03, 0xae, 03}},
{ASTOSB, ynone, Pb, [23]uint8{0xaa}},
{ASTOSL, ynone, Px, [23]uint8{0xab}},
{ASTOSQ, ynone, Pw, [23]uint8{0xab}},
{ASTOSW, ynone, Pe, [23]uint8{0xab}},
{ASUBB, yxorb, Pb, [23]uint8{0x2c, 0x80, 05, 0x28, 0x2a}},
{ASUBL, yaddl, Px, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
{ASUBPD, yxm, Pe, [23]uint8{0x5c}},
{ASUBPS, yxm, Pm, [23]uint8{0x5c}},
{ASUBQ, yaddl, Pw, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
{ASUBSD, yxm, Pf2, [23]uint8{0x5c}},
{ASUBSS, yxm, Pf3, [23]uint8{0x5c}},
{ASUBW, yaddl, Pe, [23]uint8{0x83, 05, 0x2d, 0x81, 05, 0x29, 0x2b}},
{ASWAPGS, ynone, Pm, [23]uint8{0x01, 0xf8}},
{ASYSCALL, ynone, Px, [23]uint8{0x0f, 0x05}}, /* fast syscall */
{ATESTB, ytestb, Pb, [23]uint8{0xa8, 0xf6, 00, 0x84, 0x84}},
{ATESTL, ytestl, Px, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
{ATESTQ, ytestl, Pw, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
{ATESTW, ytestl, Pe, [23]uint8{0xa9, 0xf7, 00, 0x85, 0x85}},
{obj.ATEXT, ytext, Px, [23]uint8{}},
{AUCOMISD, yxcmp, Pe, [23]uint8{0x2e}},
{AUCOMISS, yxcmp, Pm, [23]uint8{0x2e}},
{AUNPCKHPD, yxm, Pe, [23]uint8{0x15}},
{AUNPCKHPS, yxm, Pm, [23]uint8{0x15}},
{AUNPCKLPD, yxm, Pe, [23]uint8{0x14}},
{AUNPCKLPS, yxm, Pm, [23]uint8{0x14}},
{AVERR, ydivl, Pm, [23]uint8{0x00, 04}},
{AVERW, ydivl, Pm, [23]uint8{0x00, 05}},
{AWAIT, ynone, Px, [23]uint8{0x9b}},
{AWORD, ybyte, Px, [23]uint8{2}},
{AXCHGB, yml_mb, Pb, [23]uint8{0x86, 0x86}},
{AXCHGL, yxchg, Px, [23]uint8{0x90, 0x90, 0x87, 0x87}},
{AXCHGQ, yxchg, Pw, [23]uint8{0x90, 0x90, 0x87, 0x87}},
{AXCHGW, yxchg, Pe, [23]uint8{0x90, 0x90, 0x87, 0x87}},
{AXLAT, ynone, Px, [23]uint8{0xd7}},
{AXORB, yxorb, Pb, [23]uint8{0x34, 0x80, 06, 0x30, 0x32}},
{AXORL, yxorl, Px, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
{AXORPD, yxm, Pe, [23]uint8{0x57}},
{AXORPS, yxm, Pm, [23]uint8{0x57}},
{AXORQ, yxorl, Pw, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
{AXORW, yxorl, Pe, [23]uint8{0x83, 06, 0x35, 0x81, 06, 0x31, 0x33}},
{AFMOVB, yfmvx, Px, [23]uint8{0xdf, 04}},
{AFMOVBP, yfmvp, Px, [23]uint8{0xdf, 06}},
{AFMOVD, yfmvd, Px, [23]uint8{0xdd, 00, 0xdd, 02, 0xd9, 00, 0xdd, 02}},
{AFMOVDP, yfmvdp, Px, [23]uint8{0xdd, 03, 0xdd, 03}},
{AFMOVF, yfmvf, Px, [23]uint8{0xd9, 00, 0xd9, 02}},
{AFMOVFP, yfmvp, Px, [23]uint8{0xd9, 03}},
{AFMOVL, yfmvf, Px, [23]uint8{0xdb, 00, 0xdb, 02}},
{AFMOVLP, yfmvp, Px, [23]uint8{0xdb, 03}},
{AFMOVV, yfmvx, Px, [23]uint8{0xdf, 05}},
{AFMOVVP, yfmvp, Px, [23]uint8{0xdf, 07}},
{AFMOVW, yfmvf, Px, [23]uint8{0xdf, 00, 0xdf, 02}},
{AFMOVWP, yfmvp, Px, [23]uint8{0xdf, 03}},
{AFMOVX, yfmvx, Px, [23]uint8{0xdb, 05}},
{AFMOVXP, yfmvp, Px, [23]uint8{0xdb, 07}},
{AFCMOVCC, yfcmv, Px, [23]uint8{0xdb, 00}},
{AFCMOVCS, yfcmv, Px, [23]uint8{0xda, 00}},
{AFCMOVEQ, yfcmv, Px, [23]uint8{0xda, 01}},
{AFCMOVHI, yfcmv, Px, [23]uint8{0xdb, 02}},
{AFCMOVLS, yfcmv, Px, [23]uint8{0xda, 02}},
{AFCMOVNE, yfcmv, Px, [23]uint8{0xdb, 01}},
{AFCMOVNU, yfcmv, Px, [23]uint8{0xdb, 03}},
{AFCMOVUN, yfcmv, Px, [23]uint8{0xda, 03}},
{AFCOMB, nil, 0, [23]uint8{}},
{AFCOMBP, nil, 0, [23]uint8{}},
{AFCOMD, yfadd, Px, [23]uint8{0xdc, 02, 0xd8, 02, 0xdc, 02}}, /* botch */
{AFCOMDP, yfadd, Px, [23]uint8{0xdc, 03, 0xd8, 03, 0xdc, 03}}, /* botch */
{AFCOMDPP, ycompp, Px, [23]uint8{0xde, 03}},
{AFCOMF, yfmvx, Px, [23]uint8{0xd8, 02}},
{AFCOMFP, yfmvx, Px, [23]uint8{0xd8, 03}},
{AFCOMI, yfmvx, Px, [23]uint8{0xdb, 06}},
{AFCOMIP, yfmvx, Px, [23]uint8{0xdf, 06}},
{AFCOML, yfmvx, Px, [23]uint8{0xda, 02}},
{AFCOMLP, yfmvx, Px, [23]uint8{0xda, 03}},
{AFCOMW, yfmvx, Px, [23]uint8{0xde, 02}},
{AFCOMWP, yfmvx, Px, [23]uint8{0xde, 03}},
{AFUCOM, ycompp, Px, [23]uint8{0xdd, 04}},
{AFUCOMI, ycompp, Px, [23]uint8{0xdb, 05}},
{AFUCOMIP, ycompp, Px, [23]uint8{0xdf, 05}},
{AFUCOMP, ycompp, Px, [23]uint8{0xdd, 05}},
{AFUCOMPP, ycompp, Px, [23]uint8{0xda, 13}},
{AFADDDP, yfaddp, Px, [23]uint8{0xde, 00}},
{AFADDW, yfmvx, Px, [23]uint8{0xde, 00}},
{AFADDL, yfmvx, Px, [23]uint8{0xda, 00}},
{AFADDF, yfmvx, Px, [23]uint8{0xd8, 00}},
{AFADDD, yfadd, Px, [23]uint8{0xdc, 00, 0xd8, 00, 0xdc, 00}},
{AFMULDP, yfaddp, Px, [23]uint8{0xde, 01}},
{AFMULW, yfmvx, Px, [23]uint8{0xde, 01}},
{AFMULL, yfmvx, Px, [23]uint8{0xda, 01}},
{AFMULF, yfmvx, Px, [23]uint8{0xd8, 01}},
{AFMULD, yfadd, Px, [23]uint8{0xdc, 01, 0xd8, 01, 0xdc, 01}},
{AFSUBDP, yfaddp, Px, [23]uint8{0xde, 05}},
{AFSUBW, yfmvx, Px, [23]uint8{0xde, 04}},
{AFSUBL, yfmvx, Px, [23]uint8{0xda, 04}},
{AFSUBF, yfmvx, Px, [23]uint8{0xd8, 04}},
{AFSUBD, yfadd, Px, [23]uint8{0xdc, 04, 0xd8, 04, 0xdc, 05}},
{AFSUBRDP, yfaddp, Px, [23]uint8{0xde, 04}},
{AFSUBRW, yfmvx, Px, [23]uint8{0xde, 05}},
{AFSUBRL, yfmvx, Px, [23]uint8{0xda, 05}},
{AFSUBRF, yfmvx, Px, [23]uint8{0xd8, 05}},
{AFSUBRD, yfadd, Px, [23]uint8{0xdc, 05, 0xd8, 05, 0xdc, 04}},
{AFDIVDP, yfaddp, Px, [23]uint8{0xde, 07}},
{AFDIVW, yfmvx, Px, [23]uint8{0xde, 06}},
{AFDIVL, yfmvx, Px, [23]uint8{0xda, 06}},
{AFDIVF, yfmvx, Px, [23]uint8{0xd8, 06}},
{AFDIVD, yfadd, Px, [23]uint8{0xdc, 06, 0xd8, 06, 0xdc, 07}},
{AFDIVRDP, yfaddp, Px, [23]uint8{0xde, 06}},
{AFDIVRW, yfmvx, Px, [23]uint8{0xde, 07}},
{AFDIVRL, yfmvx, Px, [23]uint8{0xda, 07}},
{AFDIVRF, yfmvx, Px, [23]uint8{0xd8, 07}},
{AFDIVRD, yfadd, Px, [23]uint8{0xdc, 07, 0xd8, 07, 0xdc, 06}},
{AFXCHD, yfxch, Px, [23]uint8{0xd9, 01, 0xd9, 01}},
{AFFREE, nil, 0, [23]uint8{}},
{AFLDCW, ystcw, Px, [23]uint8{0xd9, 05, 0xd9, 05}},
{AFLDENV, ystcw, Px, [23]uint8{0xd9, 04, 0xd9, 04}},
{AFRSTOR, ysvrs, Px, [23]uint8{0xdd, 04, 0xdd, 04}},
{AFSAVE, ysvrs, Px, [23]uint8{0xdd, 06, 0xdd, 06}},
{AFSTCW, ystcw, Px, [23]uint8{0xd9, 07, 0xd9, 07}},
{AFSTENV, ystcw, Px, [23]uint8{0xd9, 06, 0xd9, 06}},
{AFSTSW, ystsw, Px, [23]uint8{0xdd, 07, 0xdf, 0xe0}},
{AF2XM1, ynone, Px, [23]uint8{0xd9, 0xf0}},
{AFABS, ynone, Px, [23]uint8{0xd9, 0xe1}},
{AFCHS, ynone, Px, [23]uint8{0xd9, 0xe0}},
{AFCLEX, ynone, Px, [23]uint8{0xdb, 0xe2}},
{AFCOS, ynone, Px, [23]uint8{0xd9, 0xff}},
{AFDECSTP, ynone, Px, [23]uint8{0xd9, 0xf6}},
{AFINCSTP, ynone, Px, [23]uint8{0xd9, 0xf7}},
{AFINIT, ynone, Px, [23]uint8{0xdb, 0xe3}},
{AFLD1, ynone, Px, [23]uint8{0xd9, 0xe8}},
{AFLDL2E, ynone, Px, [23]uint8{0xd9, 0xea}},
{AFLDL2T, ynone, Px, [23]uint8{0xd9, 0xe9}},
{AFLDLG2, ynone, Px, [23]uint8{0xd9, 0xec}},
{AFLDLN2, ynone, Px, [23]uint8{0xd9, 0xed}},
{AFLDPI, ynone, Px, [23]uint8{0xd9, 0xeb}},
{AFLDZ, ynone, Px, [23]uint8{0xd9, 0xee}},
{AFNOP, ynone, Px, [23]uint8{0xd9, 0xd0}},
{AFPATAN, ynone, Px, [23]uint8{0xd9, 0xf3}},
{AFPREM, ynone, Px, [23]uint8{0xd9, 0xf8}},
{AFPREM1, ynone, Px, [23]uint8{0xd9, 0xf5}},
{AFPTAN, ynone, Px, [23]uint8{0xd9, 0xf2}},
{AFRNDINT, ynone, Px, [23]uint8{0xd9, 0xfc}},
{AFSCALE, ynone, Px, [23]uint8{0xd9, 0xfd}},
{AFSIN, ynone, Px, [23]uint8{0xd9, 0xfe}},
{AFSINCOS, ynone, Px, [23]uint8{0xd9, 0xfb}},
{AFSQRT, ynone, Px, [23]uint8{0xd9, 0xfa}},
{AFTST, ynone, Px, [23]uint8{0xd9, 0xe4}},
{AFXAM, ynone, Px, [23]uint8{0xd9, 0xe5}},
{AFXTRACT, ynone, Px, [23]uint8{0xd9, 0xf4}},
{AFYL2X, ynone, Px, [23]uint8{0xd9, 0xf1}},
{AFYL2XP1, ynone, Px, [23]uint8{0xd9, 0xf9}},
{ACMPXCHGB, yrb_mb, Pb, [23]uint8{0x0f, 0xb0}},
{ACMPXCHGL, yrl_ml, Px, [23]uint8{0x0f, 0xb1}},
{ACMPXCHGW, yrl_ml, Pe, [23]uint8{0x0f, 0xb1}},
{ACMPXCHGQ, yrl_ml, Pw, [23]uint8{0x0f, 0xb1}},
{ACMPXCHG8B, yscond, Pm, [23]uint8{0xc7, 01}},
{AINVD, ynone, Pm, [23]uint8{0x08}},
{AINVLPG, ymbs, Pm, [23]uint8{0x01, 07}},
{ALFENCE, ynone, Pm, [23]uint8{0xae, 0xe8}},
{AMFENCE, ynone, Pm, [23]uint8{0xae, 0xf0}},
{AMOVNTIL, yrl_ml, Pm, [23]uint8{0xc3}},
{AMOVNTIQ, yrl_ml, Pw, [23]uint8{0x0f, 0xc3}},
{ARDMSR, ynone, Pm, [23]uint8{0x32}},
{ARDPMC, ynone, Pm, [23]uint8{0x33}},
{ARDTSC, ynone, Pm, [23]uint8{0x31}},
{ARSM, ynone, Pm, [23]uint8{0xaa}},
{ASFENCE, ynone, Pm, [23]uint8{0xae, 0xf8}},
{ASYSRET, ynone, Pm, [23]uint8{0x07}},
{AWBINVD, ynone, Pm, [23]uint8{0x09}},
{AWRMSR, ynone, Pm, [23]uint8{0x30}},
{AXADDB, yrb_mb, Pb, [23]uint8{0x0f, 0xc0}},
{AXADDL, yrl_ml, Px, [23]uint8{0x0f, 0xc1}},
{AXADDQ, yrl_ml, Pw, [23]uint8{0x0f, 0xc1}},
{AXADDW, yrl_ml, Pe, [23]uint8{0x0f, 0xc1}},
{ACRC32B, ycrc32l, Px, [23]uint8{0xf2, 0x0f, 0x38, 0xf0, 0}},
{ACRC32Q, ycrc32l, Pw, [23]uint8{0xf2, 0x0f, 0x38, 0xf1, 0}},
{APREFETCHT0, yprefetch, Pm, [23]uint8{0x18, 01}},
{APREFETCHT1, yprefetch, Pm, [23]uint8{0x18, 02}},
{APREFETCHT2, yprefetch, Pm, [23]uint8{0x18, 03}},
{APREFETCHNTA, yprefetch, Pm, [23]uint8{0x18, 00}},
{AMOVQL, yrl_ml, Px, [23]uint8{0x89}},
{obj.AUNDEF, ynone, Px, [23]uint8{0x0f, 0x0b}},
{AAESENC, yaes, Pq, [23]uint8{0x38, 0xdc, 0}},
{AAESENCLAST, yaes, Pq, [23]uint8{0x38, 0xdd, 0}},
{AAESDEC, yaes, Pq, [23]uint8{0x38, 0xde, 0}},
{AAESDECLAST, yaes, Pq, [23]uint8{0x38, 0xdf, 0}},
{AAESIMC, yaes, Pq, [23]uint8{0x38, 0xdb, 0}},
{AAESKEYGENASSIST, yaes2, Pq, [23]uint8{0x3a, 0xdf, 0}},
{APSHUFD, yxshuf, Pq, [23]uint8{0x70, 0}},
{APCLMULQDQ, yxshuf, Pq, [23]uint8{0x3a, 0x44, 0}},
{obj.AUSEFIELD, ynop, Px, [23]uint8{0, 0}},
{obj.ATYPE, nil, 0, [23]uint8{}},
{obj.AFUNCDATA, yfuncdata, Px, [23]uint8{0, 0}},
{obj.APCDATA, ypcdata, Px, [23]uint8{0, 0}},
{obj.ACHECKNIL, nil, 0, [23]uint8{}},
{obj.AVARDEF, nil, 0, [23]uint8{}},
{obj.AVARKILL, nil, 0, [23]uint8{}},
{obj.ADUFFCOPY, yduff, Px, [23]uint8{0xe8}},
{obj.ADUFFZERO, yduff, Px, [23]uint8{0xe8}},
{obj.AEND, nil, 0, [23]uint8{}},
{0, nil, 0, [23]uint8{}},
}
var opindex [(ALAST + 1) & obj.AMask]*Optab
......@@ -1505,15 +1505,15 @@ func isextern(s *obj.LSym) bool {
// constructed by hand and disassembled with gdb to verify.
// see http://www.agner.org/optimize/optimizing_assembly.pdf for discussion.
var nop = [][16]uint8{
[16]uint8{0x90},
[16]uint8{0x66, 0x90},
[16]uint8{0x0F, 0x1F, 0x00},
[16]uint8{0x0F, 0x1F, 0x40, 0x00},
[16]uint8{0x0F, 0x1F, 0x44, 0x00, 0x00},
[16]uint8{0x66, 0x0F, 0x1F, 0x44, 0x00, 0x00},
[16]uint8{0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00},
[16]uint8{0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},
[16]uint8{0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x90},
{0x66, 0x90},
{0x0F, 0x1F, 0x00},
{0x0F, 0x1F, 0x40, 0x00},
{0x0F, 0x1F, 0x44, 0x00, 0x00},
{0x66, 0x0F, 0x1F, 0x44, 0x00, 0x00},
{0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00},
{0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},
}
// Native Client rejects the repeated 0x66 prefix.
......@@ -2690,112 +2690,112 @@ const (
var ymovtab = []Movtab{
/* push */
Movtab{APUSHL, Ycs, Ynone, Ynone, 0, [4]uint8{0x0e, E, 0, 0}},
Movtab{APUSHL, Yss, Ynone, Ynone, 0, [4]uint8{0x16, E, 0, 0}},
Movtab{APUSHL, Yds, Ynone, Ynone, 0, [4]uint8{0x1e, E, 0, 0}},
Movtab{APUSHL, Yes, Ynone, Ynone, 0, [4]uint8{0x06, E, 0, 0}},
Movtab{APUSHL, Yfs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa0, E, 0}},
Movtab{APUSHL, Ygs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa8, E, 0}},
Movtab{APUSHQ, Yfs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa0, E, 0}},
Movtab{APUSHQ, Ygs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa8, E, 0}},
Movtab{APUSHW, Ycs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0e, E, 0}},
Movtab{APUSHW, Yss, Ynone, Ynone, 0, [4]uint8{Pe, 0x16, E, 0}},
Movtab{APUSHW, Yds, Ynone, Ynone, 0, [4]uint8{Pe, 0x1e, E, 0}},
Movtab{APUSHW, Yes, Ynone, Ynone, 0, [4]uint8{Pe, 0x06, E, 0}},
Movtab{APUSHW, Yfs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0f, 0xa0, E}},
Movtab{APUSHW, Ygs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0f, 0xa8, E}},
{APUSHL, Ycs, Ynone, Ynone, 0, [4]uint8{0x0e, E, 0, 0}},
{APUSHL, Yss, Ynone, Ynone, 0, [4]uint8{0x16, E, 0, 0}},
{APUSHL, Yds, Ynone, Ynone, 0, [4]uint8{0x1e, E, 0, 0}},
{APUSHL, Yes, Ynone, Ynone, 0, [4]uint8{0x06, E, 0, 0}},
{APUSHL, Yfs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa0, E, 0}},
{APUSHL, Ygs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa8, E, 0}},
{APUSHQ, Yfs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa0, E, 0}},
{APUSHQ, Ygs, Ynone, Ynone, 0, [4]uint8{0x0f, 0xa8, E, 0}},
{APUSHW, Ycs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0e, E, 0}},
{APUSHW, Yss, Ynone, Ynone, 0, [4]uint8{Pe, 0x16, E, 0}},
{APUSHW, Yds, Ynone, Ynone, 0, [4]uint8{Pe, 0x1e, E, 0}},
{APUSHW, Yes, Ynone, Ynone, 0, [4]uint8{Pe, 0x06, E, 0}},
{APUSHW, Yfs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0f, 0xa0, E}},
{APUSHW, Ygs, Ynone, Ynone, 0, [4]uint8{Pe, 0x0f, 0xa8, E}},
/* pop */
Movtab{APOPL, Ynone, Ynone, Yds, 0, [4]uint8{0x1f, E, 0, 0}},
Movtab{APOPL, Ynone, Ynone, Yes, 0, [4]uint8{0x07, E, 0, 0}},
Movtab{APOPL, Ynone, Ynone, Yss, 0, [4]uint8{0x17, E, 0, 0}},
Movtab{APOPL, Ynone, Ynone, Yfs, 0, [4]uint8{0x0f, 0xa1, E, 0}},
Movtab{APOPL, Ynone, Ynone, Ygs, 0, [4]uint8{0x0f, 0xa9, E, 0}},
Movtab{APOPQ, Ynone, Ynone, Yfs, 0, [4]uint8{0x0f, 0xa1, E, 0}},
Movtab{APOPQ, Ynone, Ynone, Ygs, 0, [4]uint8{0x0f, 0xa9, E, 0}},
Movtab{APOPW, Ynone, Ynone, Yds, 0, [4]uint8{Pe, 0x1f, E, 0}},
Movtab{APOPW, Ynone, Ynone, Yes, 0, [4]uint8{Pe, 0x07, E, 0}},
Movtab{APOPW, Ynone, Ynone, Yss, 0, [4]uint8{Pe, 0x17, E, 0}},
Movtab{APOPW, Ynone, Ynone, Yfs, 0, [4]uint8{Pe, 0x0f, 0xa1, E}},
Movtab{APOPW, Ynone, Ynone, Ygs, 0, [4]uint8{Pe, 0x0f, 0xa9, E}},
{APOPL, Ynone, Ynone, Yds, 0, [4]uint8{0x1f, E, 0, 0}},
{APOPL, Ynone, Ynone, Yes, 0, [4]uint8{0x07, E, 0, 0}},
{APOPL, Ynone, Ynone, Yss, 0, [4]uint8{0x17, E, 0, 0}},
{APOPL, Ynone, Ynone, Yfs, 0, [4]uint8{0x0f, 0xa1, E, 0}},
{APOPL, Ynone, Ynone, Ygs, 0, [4]uint8{0x0f, 0xa9, E, 0}},
{APOPQ, Ynone, Ynone, Yfs, 0, [4]uint8{0x0f, 0xa1, E, 0}},
{APOPQ, Ynone, Ynone, Ygs, 0, [4]uint8{0x0f, 0xa9, E, 0}},
{APOPW, Ynone, Ynone, Yds, 0, [4]uint8{Pe, 0x1f, E, 0}},
{APOPW, Ynone, Ynone, Yes, 0, [4]uint8{Pe, 0x07, E, 0}},
{APOPW, Ynone, Ynone, Yss, 0, [4]uint8{Pe, 0x17, E, 0}},
{APOPW, Ynone, Ynone, Yfs, 0, [4]uint8{Pe, 0x0f, 0xa1, E}},
{APOPW, Ynone, Ynone, Ygs, 0, [4]uint8{Pe, 0x0f, 0xa9, E}},
/* mov seg */
Movtab{AMOVW, Yes, Ynone, Yml, 1, [4]uint8{0x8c, 0, 0, 0}},
Movtab{AMOVW, Ycs, Ynone, Yml, 1, [4]uint8{0x8c, 1, 0, 0}},
Movtab{AMOVW, Yss, Ynone, Yml, 1, [4]uint8{0x8c, 2, 0, 0}},
Movtab{AMOVW, Yds, Ynone, Yml, 1, [4]uint8{0x8c, 3, 0, 0}},
Movtab{AMOVW, Yfs, Ynone, Yml, 1, [4]uint8{0x8c, 4, 0, 0}},
Movtab{AMOVW, Ygs, Ynone, Yml, 1, [4]uint8{0x8c, 5, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Yes, 2, [4]uint8{0x8e, 0, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Ycs, 2, [4]uint8{0x8e, 1, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Yss, 2, [4]uint8{0x8e, 2, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Yds, 2, [4]uint8{0x8e, 3, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Yfs, 2, [4]uint8{0x8e, 4, 0, 0}},
Movtab{AMOVW, Yml, Ynone, Ygs, 2, [4]uint8{0x8e, 5, 0, 0}},
{AMOVW, Yes, Ynone, Yml, 1, [4]uint8{0x8c, 0, 0, 0}},
{AMOVW, Ycs, Ynone, Yml, 1, [4]uint8{0x8c, 1, 0, 0}},
{AMOVW, Yss, Ynone, Yml, 1, [4]uint8{0x8c, 2, 0, 0}},
{AMOVW, Yds, Ynone, Yml, 1, [4]uint8{0x8c, 3, 0, 0}},
{AMOVW, Yfs, Ynone, Yml, 1, [4]uint8{0x8c, 4, 0, 0}},
{AMOVW, Ygs, Ynone, Yml, 1, [4]uint8{0x8c, 5, 0, 0}},
{AMOVW, Yml, Ynone, Yes, 2, [4]uint8{0x8e, 0, 0, 0}},
{AMOVW, Yml, Ynone, Ycs, 2, [4]uint8{0x8e, 1, 0, 0}},
{AMOVW, Yml, Ynone, Yss, 2, [4]uint8{0x8e, 2, 0, 0}},
{AMOVW, Yml, Ynone, Yds, 2, [4]uint8{0x8e, 3, 0, 0}},
{AMOVW, Yml, Ynone, Yfs, 2, [4]uint8{0x8e, 4, 0, 0}},
{AMOVW, Yml, Ynone, Ygs, 2, [4]uint8{0x8e, 5, 0, 0}},
/* mov cr */
Movtab{AMOVL, Ycr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 0, 0}},
Movtab{AMOVL, Ycr2, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 2, 0}},
Movtab{AMOVL, Ycr3, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 3, 0}},
Movtab{AMOVL, Ycr4, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 4, 0}},
Movtab{AMOVL, Ycr8, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 8, 0}},
Movtab{AMOVQ, Ycr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 0, 0}},
Movtab{AMOVQ, Ycr2, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 2, 0}},
Movtab{AMOVQ, Ycr3, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 3, 0}},
Movtab{AMOVQ, Ycr4, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 4, 0}},
Movtab{AMOVQ, Ycr8, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 8, 0}},
Movtab{AMOVL, Yml, Ynone, Ycr0, 4, [4]uint8{0x0f, 0x22, 0, 0}},
Movtab{AMOVL, Yml, Ynone, Ycr2, 4, [4]uint8{0x0f, 0x22, 2, 0}},
Movtab{AMOVL, Yml, Ynone, Ycr3, 4, [4]uint8{0x0f, 0x22, 3, 0}},
Movtab{AMOVL, Yml, Ynone, Ycr4, 4, [4]uint8{0x0f, 0x22, 4, 0}},
Movtab{AMOVL, Yml, Ynone, Ycr8, 4, [4]uint8{0x0f, 0x22, 8, 0}},
Movtab{AMOVQ, Yml, Ynone, Ycr0, 4, [4]uint8{0x0f, 0x22, 0, 0}},
Movtab{AMOVQ, Yml, Ynone, Ycr2, 4, [4]uint8{0x0f, 0x22, 2, 0}},
Movtab{AMOVQ, Yml, Ynone, Ycr3, 4, [4]uint8{0x0f, 0x22, 3, 0}},
Movtab{AMOVQ, Yml, Ynone, Ycr4, 4, [4]uint8{0x0f, 0x22, 4, 0}},
Movtab{AMOVQ, Yml, Ynone, Ycr8, 4, [4]uint8{0x0f, 0x22, 8, 0}},
{AMOVL, Ycr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 0, 0}},
{AMOVL, Ycr2, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 2, 0}},
{AMOVL, Ycr3, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 3, 0}},
{AMOVL, Ycr4, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 4, 0}},
{AMOVL, Ycr8, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 8, 0}},
{AMOVQ, Ycr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 0, 0}},
{AMOVQ, Ycr2, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 2, 0}},
{AMOVQ, Ycr3, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 3, 0}},
{AMOVQ, Ycr4, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 4, 0}},
{AMOVQ, Ycr8, Ynone, Yml, 3, [4]uint8{0x0f, 0x20, 8, 0}},
{AMOVL, Yml, Ynone, Ycr0, 4, [4]uint8{0x0f, 0x22, 0, 0}},
{AMOVL, Yml, Ynone, Ycr2, 4, [4]uint8{0x0f, 0x22, 2, 0}},
{AMOVL, Yml, Ynone, Ycr3, 4, [4]uint8{0x0f, 0x22, 3, 0}},
{AMOVL, Yml, Ynone, Ycr4, 4, [4]uint8{0x0f, 0x22, 4, 0}},
{AMOVL, Yml, Ynone, Ycr8, 4, [4]uint8{0x0f, 0x22, 8, 0}},
{AMOVQ, Yml, Ynone, Ycr0, 4, [4]uint8{0x0f, 0x22, 0, 0}},
{AMOVQ, Yml, Ynone, Ycr2, 4, [4]uint8{0x0f, 0x22, 2, 0}},
{AMOVQ, Yml, Ynone, Ycr3, 4, [4]uint8{0x0f, 0x22, 3, 0}},
{AMOVQ, Yml, Ynone, Ycr4, 4, [4]uint8{0x0f, 0x22, 4, 0}},
{AMOVQ, Yml, Ynone, Ycr8, 4, [4]uint8{0x0f, 0x22, 8, 0}},
/* mov dr */
Movtab{AMOVL, Ydr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 0, 0}},
Movtab{AMOVL, Ydr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 6, 0}},
Movtab{AMOVL, Ydr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 7, 0}},
Movtab{AMOVQ, Ydr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 0, 0}},
Movtab{AMOVQ, Ydr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 6, 0}},
Movtab{AMOVQ, Ydr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 7, 0}},
Movtab{AMOVL, Yml, Ynone, Ydr0, 4, [4]uint8{0x0f, 0x23, 0, 0}},
Movtab{AMOVL, Yml, Ynone, Ydr6, 4, [4]uint8{0x0f, 0x23, 6, 0}},
Movtab{AMOVL, Yml, Ynone, Ydr7, 4, [4]uint8{0x0f, 0x23, 7, 0}},
Movtab{AMOVQ, Yml, Ynone, Ydr0, 4, [4]uint8{0x0f, 0x23, 0, 0}},
Movtab{AMOVQ, Yml, Ynone, Ydr6, 4, [4]uint8{0x0f, 0x23, 6, 0}},
Movtab{AMOVQ, Yml, Ynone, Ydr7, 4, [4]uint8{0x0f, 0x23, 7, 0}},
{AMOVL, Ydr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 0, 0}},
{AMOVL, Ydr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 6, 0}},
{AMOVL, Ydr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 7, 0}},
{AMOVQ, Ydr0, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 0, 0}},
{AMOVQ, Ydr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 6, 0}},
{AMOVQ, Ydr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x21, 7, 0}},
{AMOVL, Yml, Ynone, Ydr0, 4, [4]uint8{0x0f, 0x23, 0, 0}},
{AMOVL, Yml, Ynone, Ydr6, 4, [4]uint8{0x0f, 0x23, 6, 0}},
{AMOVL, Yml, Ynone, Ydr7, 4, [4]uint8{0x0f, 0x23, 7, 0}},
{AMOVQ, Yml, Ynone, Ydr0, 4, [4]uint8{0x0f, 0x23, 0, 0}},
{AMOVQ, Yml, Ynone, Ydr6, 4, [4]uint8{0x0f, 0x23, 6, 0}},
{AMOVQ, Yml, Ynone, Ydr7, 4, [4]uint8{0x0f, 0x23, 7, 0}},
/* mov tr */
Movtab{AMOVL, Ytr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x24, 6, 0}},
Movtab{AMOVL, Ytr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x24, 7, 0}},
Movtab{AMOVL, Yml, Ynone, Ytr6, 4, [4]uint8{0x0f, 0x26, 6, E}},
Movtab{AMOVL, Yml, Ynone, Ytr7, 4, [4]uint8{0x0f, 0x26, 7, E}},
{AMOVL, Ytr6, Ynone, Yml, 3, [4]uint8{0x0f, 0x24, 6, 0}},
{AMOVL, Ytr7, Ynone, Yml, 3, [4]uint8{0x0f, 0x24, 7, 0}},
{AMOVL, Yml, Ynone, Ytr6, 4, [4]uint8{0x0f, 0x26, 6, E}},
{AMOVL, Yml, Ynone, Ytr7, 4, [4]uint8{0x0f, 0x26, 7, E}},
/* lgdt, sgdt, lidt, sidt */
Movtab{AMOVL, Ym, Ynone, Ygdtr, 4, [4]uint8{0x0f, 0x01, 2, 0}},
Movtab{AMOVL, Ygdtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 0, 0}},
Movtab{AMOVL, Ym, Ynone, Yidtr, 4, [4]uint8{0x0f, 0x01, 3, 0}},
Movtab{AMOVL, Yidtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 1, 0}},
Movtab{AMOVQ, Ym, Ynone, Ygdtr, 4, [4]uint8{0x0f, 0x01, 2, 0}},
Movtab{AMOVQ, Ygdtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 0, 0}},
Movtab{AMOVQ, Ym, Ynone, Yidtr, 4, [4]uint8{0x0f, 0x01, 3, 0}},
Movtab{AMOVQ, Yidtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 1, 0}},
{AMOVL, Ym, Ynone, Ygdtr, 4, [4]uint8{0x0f, 0x01, 2, 0}},
{AMOVL, Ygdtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 0, 0}},
{AMOVL, Ym, Ynone, Yidtr, 4, [4]uint8{0x0f, 0x01, 3, 0}},
{AMOVL, Yidtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 1, 0}},
{AMOVQ, Ym, Ynone, Ygdtr, 4, [4]uint8{0x0f, 0x01, 2, 0}},
{AMOVQ, Ygdtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 0, 0}},
{AMOVQ, Ym, Ynone, Yidtr, 4, [4]uint8{0x0f, 0x01, 3, 0}},
{AMOVQ, Yidtr, Ynone, Ym, 3, [4]uint8{0x0f, 0x01, 1, 0}},
/* lldt, sldt */
Movtab{AMOVW, Yml, Ynone, Yldtr, 4, [4]uint8{0x0f, 0x00, 2, 0}},
Movtab{AMOVW, Yldtr, Ynone, Yml, 3, [4]uint8{0x0f, 0x00, 0, 0}},
{AMOVW, Yml, Ynone, Yldtr, 4, [4]uint8{0x0f, 0x00, 2, 0}},
{AMOVW, Yldtr, Ynone, Yml, 3, [4]uint8{0x0f, 0x00, 0, 0}},
/* lmsw, smsw */
Movtab{AMOVW, Yml, Ynone, Ymsw, 4, [4]uint8{0x0f, 0x01, 6, 0}},
Movtab{AMOVW, Ymsw, Ynone, Yml, 3, [4]uint8{0x0f, 0x01, 4, 0}},
{AMOVW, Yml, Ynone, Ymsw, 4, [4]uint8{0x0f, 0x01, 6, 0}},
{AMOVW, Ymsw, Ynone, Yml, 3, [4]uint8{0x0f, 0x01, 4, 0}},
/* ltr, str */
Movtab{AMOVW, Yml, Ynone, Ytask, 4, [4]uint8{0x0f, 0x00, 3, 0}},
Movtab{AMOVW, Ytask, Ynone, Yml, 3, [4]uint8{0x0f, 0x00, 1, 0}},
{AMOVW, Yml, Ynone, Ytask, 4, [4]uint8{0x0f, 0x00, 3, 0}},
{AMOVW, Ytask, Ynone, Yml, 3, [4]uint8{0x0f, 0x00, 1, 0}},
/* load full pointer - unsupported
Movtab{AMOVL, Yml, Ycol, 5, [4]uint8{0, 0, 0, 0}},
......@@ -2803,29 +2803,29 @@ var ymovtab = []Movtab{
*/
/* double shift */
Movtab{ASHLL, Yi8, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
Movtab{ASHLL, Ycl, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
Movtab{ASHLL, Ycx, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
Movtab{ASHRL, Yi8, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
Movtab{ASHRL, Ycl, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
Movtab{ASHRL, Ycx, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
Movtab{ASHLQ, Yi8, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
Movtab{ASHLQ, Ycl, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
Movtab{ASHLQ, Ycx, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
Movtab{ASHRQ, Yi8, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
Movtab{ASHRQ, Ycl, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
Movtab{ASHRQ, Ycx, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
Movtab{ASHLW, Yi8, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
Movtab{ASHLW, Ycl, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
Movtab{ASHLW, Ycx, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
Movtab{ASHRW, Yi8, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
Movtab{ASHRW, Ycl, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
Movtab{ASHRW, Ycx, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
{ASHLL, Yi8, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
{ASHLL, Ycl, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
{ASHLL, Ycx, Yrl, Yml, 6, [4]uint8{0xa4, 0xa5, 0, 0}},
{ASHRL, Yi8, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
{ASHRL, Ycl, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
{ASHRL, Ycx, Yrl, Yml, 6, [4]uint8{0xac, 0xad, 0, 0}},
{ASHLQ, Yi8, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
{ASHLQ, Ycl, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
{ASHLQ, Ycx, Yrl, Yml, 6, [4]uint8{Pw, 0xa4, 0xa5, 0}},
{ASHRQ, Yi8, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
{ASHRQ, Ycl, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
{ASHRQ, Ycx, Yrl, Yml, 6, [4]uint8{Pw, 0xac, 0xad, 0}},
{ASHLW, Yi8, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
{ASHLW, Ycl, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
{ASHLW, Ycx, Yrl, Yml, 6, [4]uint8{Pe, 0xa4, 0xa5, 0}},
{ASHRW, Yi8, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
{ASHRW, Ycl, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
{ASHRW, Ycx, Yrl, Yml, 6, [4]uint8{Pe, 0xac, 0xad, 0}},
/* load TLS base */
Movtab{AMOVL, Ytls, Ynone, Yrl, 7, [4]uint8{0, 0, 0, 0}},
Movtab{AMOVQ, Ytls, Ynone, Yrl, 7, [4]uint8{0, 0, 0, 0}},
Movtab{0, 0, 0, 0, 0, [4]uint8{}},
{AMOVL, Ytls, Ynone, Yrl, 7, [4]uint8{0, 0, 0, 0}},
{AMOVQ, Ytls, Ynone, Yrl, 7, [4]uint8{0, 0, 0, 0}},
{0, 0, 0, 0, 0, [4]uint8{}},
}
func isax(a *obj.Addr) bool {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment