1// i386 register table. 2// Copyright (C) 2007-2024 Free Software Foundation, Inc. 3// 4// This file is part of the GNU opcodes library. 5// 6// This library is free software; you can redistribute it and/or modify 7// it under the terms of the GNU General Public License as published by 8// the Free Software Foundation; either version 3, or (at your option) 9// any later version. 10// 11// It is distributed in the hope that it will be useful, but WITHOUT 12// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 14// License for more details. 15// 16// You should have received a copy of the GNU General Public License 17// along with GAS; see the file COPYING. If not, write to the Free 18// Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 19// 02110-1301, USA. 20 21// The code in gas backend for SCFI relies on the relative ordering 22// of 8 bit / 16 bit / 32 bit / 64 bit regs 23 24// 8 bit regs 25al, Class=Reg|Instance=Accum|Byte, 0, 0, Dw2Inval, Dw2Inval 26cl, Class=Reg|Instance=RegC|Byte, 0, 1, Dw2Inval, Dw2Inval 27dl, Class=Reg|Byte, 0, 2, Dw2Inval, Dw2Inval 28bl, Class=Reg|Byte, 0, 3, Dw2Inval, Dw2Inval 29ah, Class=Reg|Byte, 0, 4, Dw2Inval, Dw2Inval 30ch, Class=Reg|Byte, 0, 5, Dw2Inval, Dw2Inval 31dh, Class=Reg|Byte, 0, 6, Dw2Inval, Dw2Inval 32bh, Class=Reg|Byte, 0, 7, Dw2Inval, Dw2Inval 33axl, Class=Reg|Byte, RegRex64, 0, Dw2Inval, Dw2Inval 34cxl, Class=Reg|Byte, RegRex64, 1, Dw2Inval, Dw2Inval 35dxl, Class=Reg|Byte, RegRex64, 2, Dw2Inval, Dw2Inval 36bxl, Class=Reg|Byte, RegRex64, 3, Dw2Inval, Dw2Inval 37spl, Class=Reg|Byte, RegRex64, 4, Dw2Inval, Dw2Inval 38bpl, Class=Reg|Byte, RegRex64, 5, Dw2Inval, Dw2Inval 39sil, Class=Reg|Byte, RegRex64, 6, Dw2Inval, Dw2Inval 40dil, Class=Reg|Byte, RegRex64, 7, Dw2Inval, Dw2Inval 41r8b, Class=Reg|Byte, RegRex|RegRex64, 0, Dw2Inval, Dw2Inval 42r9b, Class=Reg|Byte, RegRex|RegRex64, 1, Dw2Inval, Dw2Inval 43r10b, Class=Reg|Byte, RegRex|RegRex64, 2, Dw2Inval, Dw2Inval 44r11b, Class=Reg|Byte, RegRex|RegRex64, 3, Dw2Inval, Dw2Inval 45r12b, Class=Reg|Byte, RegRex|RegRex64, 4, Dw2Inval, Dw2Inval 46r13b, Class=Reg|Byte, RegRex|RegRex64, 5, Dw2Inval, Dw2Inval 47r14b, Class=Reg|Byte, RegRex|RegRex64, 6, Dw2Inval, Dw2Inval 48r15b, Class=Reg|Byte, RegRex|RegRex64, 7, Dw2Inval, Dw2Inval 49r16b, Class=Reg|Byte, RegRex2|RegRex64, 0, Dw2Inval, Dw2Inval 50r17b, Class=Reg|Byte, RegRex2|RegRex64, 1, Dw2Inval, Dw2Inval 51r18b, Class=Reg|Byte, RegRex2|RegRex64, 2, Dw2Inval, Dw2Inval 52r19b, Class=Reg|Byte, RegRex2|RegRex64, 3, Dw2Inval, Dw2Inval 53r20b, Class=Reg|Byte, RegRex2|RegRex64, 4, Dw2Inval, Dw2Inval 54r21b, Class=Reg|Byte, RegRex2|RegRex64, 5, Dw2Inval, Dw2Inval 55r22b, Class=Reg|Byte, RegRex2|RegRex64, 6, Dw2Inval, Dw2Inval 56r23b, Class=Reg|Byte, RegRex2|RegRex64, 7, Dw2Inval, Dw2Inval 57r24b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 0, Dw2Inval, Dw2Inval 58r25b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 1, Dw2Inval, Dw2Inval 59r26b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 2, Dw2Inval, Dw2Inval 60r27b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 3, Dw2Inval, Dw2Inval 61r28b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 4, Dw2Inval, Dw2Inval 62r29b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 5, Dw2Inval, Dw2Inval 63r30b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 6, Dw2Inval, Dw2Inval 64r31b, Class=Reg|Byte, RegRex2|RegRex64|RegRex, 7, Dw2Inval, Dw2Inval 65// 16 bit regs 66ax, Class=Reg|Instance=Accum|Word, 0, 0, Dw2Inval, Dw2Inval 67cx, Class=Reg|Word, 0, 1, Dw2Inval, Dw2Inval 68dx, Class=Reg|Instance=RegD|Word, 0, 2, Dw2Inval, Dw2Inval 69bx, Class=Reg|Word|BaseIndex, 0, 3, Dw2Inval, Dw2Inval 70sp, Class=Reg|Word, 0, 4, Dw2Inval, Dw2Inval 71bp, Class=Reg|Word|BaseIndex, 0, 5, Dw2Inval, Dw2Inval 72si, Class=Reg|Word|BaseIndex, 0, 6, Dw2Inval, Dw2Inval 73di, Class=Reg|Word|BaseIndex, 0, 7, Dw2Inval, Dw2Inval 74r8w, Class=Reg|Word, RegRex, 0, Dw2Inval, Dw2Inval 75r9w, Class=Reg|Word, RegRex, 1, Dw2Inval, Dw2Inval 76r10w, Class=Reg|Word, RegRex, 2, Dw2Inval, Dw2Inval 77r11w, Class=Reg|Word, RegRex, 3, Dw2Inval, Dw2Inval 78r12w, Class=Reg|Word, RegRex, 4, Dw2Inval, Dw2Inval 79r13w, Class=Reg|Word, RegRex, 5, Dw2Inval, Dw2Inval 80r14w, Class=Reg|Word, RegRex, 6, Dw2Inval, Dw2Inval 81r15w, Class=Reg|Word, RegRex, 7, Dw2Inval, Dw2Inval 82r16w, Class=Reg|Word, RegRex2, 0, Dw2Inval, Dw2Inval 83r17w, Class=Reg|Word, RegRex2, 1, Dw2Inval, Dw2Inval 84r18w, Class=Reg|Word, RegRex2, 2, Dw2Inval, Dw2Inval 85r19w, Class=Reg|Word, RegRex2, 3, Dw2Inval, Dw2Inval 86r20w, Class=Reg|Word, RegRex2, 4, Dw2Inval, Dw2Inval 87r21w, Class=Reg|Word, RegRex2, 5, Dw2Inval, Dw2Inval 88r22w, Class=Reg|Word, RegRex2, 6, Dw2Inval, Dw2Inval 89r23w, Class=Reg|Word, RegRex2, 7, Dw2Inval, Dw2Inval 90r24w, Class=Reg|Word, RegRex2|RegRex, 0, Dw2Inval, Dw2Inval 91r25w, Class=Reg|Word, RegRex2|RegRex, 1, Dw2Inval, Dw2Inval 92r26w, Class=Reg|Word, RegRex2|RegRex, 2, Dw2Inval, Dw2Inval 93r27w, Class=Reg|Word, RegRex2|RegRex, 3, Dw2Inval, Dw2Inval 94r28w, Class=Reg|Word, RegRex2|RegRex, 4, Dw2Inval, Dw2Inval 95r29w, Class=Reg|Word, RegRex2|RegRex, 5, Dw2Inval, Dw2Inval 96r30w, Class=Reg|Word, RegRex2|RegRex, 6, Dw2Inval, Dw2Inval 97r31w, Class=Reg|Word, RegRex2|RegRex, 7, Dw2Inval, Dw2Inval 98// 32 bit regs 99eax, Class=Reg|Instance=Accum|Dword|BaseIndex, 0, 0, 0, Dw2Inval 100ecx, Class=Reg|Instance=RegC|Dword|BaseIndex, 0, 1, 1, Dw2Inval 101edx, Class=Reg|Instance=RegD|Dword|BaseIndex, 0, 2, 2, Dw2Inval 102ebx, Class=Reg|Instance=RegB|Dword|BaseIndex, 0, 3, 3, Dw2Inval 103esp, Class=Reg|Dword, 0, 4, 4, Dw2Inval 104ebp, Class=Reg|Dword|BaseIndex, 0, 5, 5, Dw2Inval 105esi, Class=Reg|Dword|BaseIndex, 0, 6, 6, Dw2Inval 106edi, Class=Reg|Dword|BaseIndex, 0, 7, 7, Dw2Inval 107r8d, Class=Reg|Dword|BaseIndex, RegRex, 0, Dw2Inval, Dw2Inval 108r9d, Class=Reg|Dword|BaseIndex, RegRex, 1, Dw2Inval, Dw2Inval 109r10d, Class=Reg|Dword|BaseIndex, RegRex, 2, Dw2Inval, Dw2Inval 110r11d, Class=Reg|Dword|BaseIndex, RegRex, 3, Dw2Inval, Dw2Inval 111r12d, Class=Reg|Dword|BaseIndex, RegRex, 4, Dw2Inval, Dw2Inval 112r13d, Class=Reg|Dword|BaseIndex, RegRex, 5, Dw2Inval, Dw2Inval 113r14d, Class=Reg|Dword|BaseIndex, RegRex, 6, Dw2Inval, Dw2Inval 114r15d, Class=Reg|Dword|BaseIndex, RegRex, 7, Dw2Inval, Dw2Inval 115r16d, Class=Reg|Dword|BaseIndex, RegRex2, 0, Dw2Inval, Dw2Inval 116r17d, Class=Reg|Dword|BaseIndex, RegRex2, 1, Dw2Inval, Dw2Inval 117r18d, Class=Reg|Dword|BaseIndex, RegRex2, 2, Dw2Inval, Dw2Inval 118r19d, Class=Reg|Dword|BaseIndex, RegRex2, 3, Dw2Inval, Dw2Inval 119r20d, Class=Reg|Dword|BaseIndex, RegRex2, 4, Dw2Inval, Dw2Inval 120r21d, Class=Reg|Dword|BaseIndex, RegRex2, 5, Dw2Inval, Dw2Inval 121r22d, Class=Reg|Dword|BaseIndex, RegRex2, 6, Dw2Inval, Dw2Inval 122r23d, Class=Reg|Dword|BaseIndex, RegRex2, 7, Dw2Inval, Dw2Inval 123r24d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, Dw2Inval 124r25d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, Dw2Inval 125r26d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, Dw2Inval 126r27d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, Dw2Inval 127r28d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, Dw2Inval 128r29d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, Dw2Inval 129r30d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, Dw2Inval 130r31d, Class=Reg|Dword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, Dw2Inval 131rax, Class=Reg|Instance=Accum|Qword|BaseIndex, 0, 0, Dw2Inval, 0 132rcx, Class=Reg|Instance=RegC|Qword|BaseIndex, 0, 1, Dw2Inval, 2 133rdx, Class=Reg|Instance=RegD|Qword|BaseIndex, 0, 2, Dw2Inval, 1 134rbx, Class=Reg|Instance=RegB|Qword|BaseIndex, 0, 3, Dw2Inval, 3 135rsp, Class=Reg|Qword, 0, 4, Dw2Inval, 7 136rbp, Class=Reg|Qword|BaseIndex, 0, 5, Dw2Inval, 6 137rsi, Class=Reg|Qword|BaseIndex, 0, 6, Dw2Inval, 4 138rdi, Class=Reg|Qword|BaseIndex, 0, 7, Dw2Inval, 5 139r8, Class=Reg|Qword|BaseIndex, RegRex, 0, Dw2Inval, 8 140r9, Class=Reg|Qword|BaseIndex, RegRex, 1, Dw2Inval, 9 141r10, Class=Reg|Qword|BaseIndex, RegRex, 2, Dw2Inval, 10 142r11, Class=Reg|Qword|BaseIndex, RegRex, 3, Dw2Inval, 11 143r12, Class=Reg|Qword|BaseIndex, RegRex, 4, Dw2Inval, 12 144r13, Class=Reg|Qword|BaseIndex, RegRex, 5, Dw2Inval, 13 145r14, Class=Reg|Qword|BaseIndex, RegRex, 6, Dw2Inval, 14 146r15, Class=Reg|Qword|BaseIndex, RegRex, 7, Dw2Inval, 15 147r16, Class=Reg|Qword|BaseIndex, RegRex2, 0, Dw2Inval, 130 148r17, Class=Reg|Qword|BaseIndex, RegRex2, 1, Dw2Inval, 131 149r18, Class=Reg|Qword|BaseIndex, RegRex2, 2, Dw2Inval, 132 150r19, Class=Reg|Qword|BaseIndex, RegRex2, 3, Dw2Inval, 133 151r20, Class=Reg|Qword|BaseIndex, RegRex2, 4, Dw2Inval, 134 152r21, Class=Reg|Qword|BaseIndex, RegRex2, 5, Dw2Inval, 135 153r22, Class=Reg|Qword|BaseIndex, RegRex2, 6, Dw2Inval, 136 154r23, Class=Reg|Qword|BaseIndex, RegRex2, 7, Dw2Inval, 137 155r24, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 0, Dw2Inval, 138 156r25, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 1, Dw2Inval, 139 157r26, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 2, Dw2Inval, 140 158r27, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 3, Dw2Inval, 141 159r28, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 4, Dw2Inval, 142 160r29, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 5, Dw2Inval, 143 161r30, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 6, Dw2Inval, 144 162r31, Class=Reg|Qword|BaseIndex, RegRex2|RegRex, 7, Dw2Inval, 145 163// Vector mask registers. 164k0, Class=RegMask, 0, 0, 93, 118 165k1, Class=RegMask, 0, 1, 94, 119 166k2, Class=RegMask, 0, 2, 95, 120 167k3, Class=RegMask, 0, 3, 96, 121 168k4, Class=RegMask, 0, 4, 97, 122 169k5, Class=RegMask, 0, 5, 98, 123 170k6, Class=RegMask, 0, 6, 99, 124 171k7, Class=RegMask, 0, 7, 100, 125 172// Segment registers. 173es, Class=SReg, 0, 0, 40, 50 174cs, Class=SReg, 0, 1, 41, 51 175ss, Class=SReg, 0, 2, 42, 52 176ds, Class=SReg, 0, 3, 43, 53 177fs, Class=SReg, 0, 4, 44, 54 178gs, Class=SReg, 0, 5, 45, 55 179flat, Class=SReg, 0, RegFlat, Dw2Inval, Dw2Inval 180// Control registers. 181cr0, Class=RegCR, 0, 0, Dw2Inval, Dw2Inval 182cr1, Class=RegCR, 0, 1, Dw2Inval, Dw2Inval 183cr2, Class=RegCR, 0, 2, Dw2Inval, Dw2Inval 184cr3, Class=RegCR, 0, 3, Dw2Inval, Dw2Inval 185cr4, Class=RegCR, 0, 4, Dw2Inval, Dw2Inval 186cr5, Class=RegCR, 0, 5, Dw2Inval, Dw2Inval 187cr6, Class=RegCR, 0, 6, Dw2Inval, Dw2Inval 188cr7, Class=RegCR, 0, 7, Dw2Inval, Dw2Inval 189cr8, Class=RegCR, RegRex, 0, Dw2Inval, Dw2Inval 190cr9, Class=RegCR, RegRex, 1, Dw2Inval, Dw2Inval 191cr10, Class=RegCR, RegRex, 2, Dw2Inval, Dw2Inval 192cr11, Class=RegCR, RegRex, 3, Dw2Inval, Dw2Inval 193cr12, Class=RegCR, RegRex, 4, Dw2Inval, Dw2Inval 194cr13, Class=RegCR, RegRex, 5, Dw2Inval, Dw2Inval 195cr14, Class=RegCR, RegRex, 6, Dw2Inval, Dw2Inval 196cr15, Class=RegCR, RegRex, 7, Dw2Inval, Dw2Inval 197// Debug registers. 198db0, Class=RegDR, 0, 0, Dw2Inval, Dw2Inval 199db1, Class=RegDR, 0, 1, Dw2Inval, Dw2Inval 200db2, Class=RegDR, 0, 2, Dw2Inval, Dw2Inval 201db3, Class=RegDR, 0, 3, Dw2Inval, Dw2Inval 202db4, Class=RegDR, 0, 4, Dw2Inval, Dw2Inval 203db5, Class=RegDR, 0, 5, Dw2Inval, Dw2Inval 204db6, Class=RegDR, 0, 6, Dw2Inval, Dw2Inval 205db7, Class=RegDR, 0, 7, Dw2Inval, Dw2Inval 206db8, Class=RegDR, RegRex, 0, Dw2Inval, Dw2Inval 207db9, Class=RegDR, RegRex, 1, Dw2Inval, Dw2Inval 208db10, Class=RegDR, RegRex, 2, Dw2Inval, Dw2Inval 209db11, Class=RegDR, RegRex, 3, Dw2Inval, Dw2Inval 210db12, Class=RegDR, RegRex, 4, Dw2Inval, Dw2Inval 211db13, Class=RegDR, RegRex, 5, Dw2Inval, Dw2Inval 212db14, Class=RegDR, RegRex, 6, Dw2Inval, Dw2Inval 213db15, Class=RegDR, RegRex, 7, Dw2Inval, Dw2Inval 214dr0, Class=RegDR, 0, 0, Dw2Inval, Dw2Inval 215dr1, Class=RegDR, 0, 1, Dw2Inval, Dw2Inval 216dr2, Class=RegDR, 0, 2, Dw2Inval, Dw2Inval 217dr3, Class=RegDR, 0, 3, Dw2Inval, Dw2Inval 218dr4, Class=RegDR, 0, 4, Dw2Inval, Dw2Inval 219dr5, Class=RegDR, 0, 5, Dw2Inval, Dw2Inval 220dr6, Class=RegDR, 0, 6, Dw2Inval, Dw2Inval 221dr7, Class=RegDR, 0, 7, Dw2Inval, Dw2Inval 222dr8, Class=RegDR, RegRex, 0, Dw2Inval, Dw2Inval 223dr9, Class=RegDR, RegRex, 1, Dw2Inval, Dw2Inval 224dr10, Class=RegDR, RegRex, 2, Dw2Inval, Dw2Inval 225dr11, Class=RegDR, RegRex, 3, Dw2Inval, Dw2Inval 226dr12, Class=RegDR, RegRex, 4, Dw2Inval, Dw2Inval 227dr13, Class=RegDR, RegRex, 5, Dw2Inval, Dw2Inval 228dr14, Class=RegDR, RegRex, 6, Dw2Inval, Dw2Inval 229dr15, Class=RegDR, RegRex, 7, Dw2Inval, Dw2Inval 230// Test registers. 231tr0, Class=RegTR, 0, 0, Dw2Inval, Dw2Inval 232tr1, Class=RegTR, 0, 1, Dw2Inval, Dw2Inval 233tr2, Class=RegTR, 0, 2, Dw2Inval, Dw2Inval 234tr3, Class=RegTR, 0, 3, Dw2Inval, Dw2Inval 235tr4, Class=RegTR, 0, 4, Dw2Inval, Dw2Inval 236tr5, Class=RegTR, 0, 5, Dw2Inval, Dw2Inval 237tr6, Class=RegTR, 0, 6, Dw2Inval, Dw2Inval 238tr7, Class=RegTR, 0, 7, Dw2Inval, Dw2Inval 239// MMX and simd registers. 240mm0, Class=RegMMX, 0, 0, 29, 41 241mm1, Class=RegMMX, 0, 1, 30, 42 242mm2, Class=RegMMX, 0, 2, 31, 43 243mm3, Class=RegMMX, 0, 3, 32, 44 244mm4, Class=RegMMX, 0, 4, 33, 45 245mm5, Class=RegMMX, 0, 5, 34, 46 246mm6, Class=RegMMX, 0, 6, 35, 47 247mm7, Class=RegMMX, 0, 7, 36, 48 248xmm0, Class=RegSIMD|Instance=Accum|Xmmword, 0, 0, 21, 17 249xmm1, Class=RegSIMD|Xmmword, 0, 1, 22, 18 250xmm2, Class=RegSIMD|Xmmword, 0, 2, 23, 19 251xmm3, Class=RegSIMD|Xmmword, 0, 3, 24, 20 252xmm4, Class=RegSIMD|Xmmword, 0, 4, 25, 21 253xmm5, Class=RegSIMD|Xmmword, 0, 5, 26, 22 254xmm6, Class=RegSIMD|Xmmword, 0, 6, 27, 23 255xmm7, Class=RegSIMD|Xmmword, 0, 7, 28, 24 256xmm8, Class=RegSIMD|Xmmword, RegRex, 0, Dw2Inval, 25 257xmm9, Class=RegSIMD|Xmmword, RegRex, 1, Dw2Inval, 26 258xmm10, Class=RegSIMD|Xmmword, RegRex, 2, Dw2Inval, 27 259xmm11, Class=RegSIMD|Xmmword, RegRex, 3, Dw2Inval, 28 260xmm12, Class=RegSIMD|Xmmword, RegRex, 4, Dw2Inval, 29 261xmm13, Class=RegSIMD|Xmmword, RegRex, 5, Dw2Inval, 30 262xmm14, Class=RegSIMD|Xmmword, RegRex, 6, Dw2Inval, 31 263xmm15, Class=RegSIMD|Xmmword, RegRex, 7, Dw2Inval, 32 264xmm16, Class=RegSIMD|Xmmword, RegVRex, 0, Dw2Inval, 67 265xmm17, Class=RegSIMD|Xmmword, RegVRex, 1, Dw2Inval, 68 266xmm18, Class=RegSIMD|Xmmword, RegVRex, 2, Dw2Inval, 69 267xmm19, Class=RegSIMD|Xmmword, RegVRex, 3, Dw2Inval, 70 268xmm20, Class=RegSIMD|Xmmword, RegVRex, 4, Dw2Inval, 71 269xmm21, Class=RegSIMD|Xmmword, RegVRex, 5, Dw2Inval, 72 270xmm22, Class=RegSIMD|Xmmword, RegVRex, 6, Dw2Inval, 73 271xmm23, Class=RegSIMD|Xmmword, RegVRex, 7, Dw2Inval, 74 272xmm24, Class=RegSIMD|Xmmword, RegVRex|RegRex, 0, Dw2Inval, 75 273xmm25, Class=RegSIMD|Xmmword, RegVRex|RegRex, 1, Dw2Inval, 76 274xmm26, Class=RegSIMD|Xmmword, RegVRex|RegRex, 2, Dw2Inval, 77 275xmm27, Class=RegSIMD|Xmmword, RegVRex|RegRex, 3, Dw2Inval, 78 276xmm28, Class=RegSIMD|Xmmword, RegVRex|RegRex, 4, Dw2Inval, 79 277xmm29, Class=RegSIMD|Xmmword, RegVRex|RegRex, 5, Dw2Inval, 80 278xmm30, Class=RegSIMD|Xmmword, RegVRex|RegRex, 6, Dw2Inval, 81 279xmm31, Class=RegSIMD|Xmmword, RegVRex|RegRex, 7, Dw2Inval, 82 280// AVX registers. 281ymm0, Class=RegSIMD|Ymmword, 0, 0, Dw2Inval, Dw2Inval 282ymm1, Class=RegSIMD|Ymmword, 0, 1, Dw2Inval, Dw2Inval 283ymm2, Class=RegSIMD|Ymmword, 0, 2, Dw2Inval, Dw2Inval 284ymm3, Class=RegSIMD|Ymmword, 0, 3, Dw2Inval, Dw2Inval 285ymm4, Class=RegSIMD|Ymmword, 0, 4, Dw2Inval, Dw2Inval 286ymm5, Class=RegSIMD|Ymmword, 0, 5, Dw2Inval, Dw2Inval 287ymm6, Class=RegSIMD|Ymmword, 0, 6, Dw2Inval, Dw2Inval 288ymm7, Class=RegSIMD|Ymmword, 0, 7, Dw2Inval, Dw2Inval 289ymm8, Class=RegSIMD|Ymmword, RegRex, 0, Dw2Inval, Dw2Inval 290ymm9, Class=RegSIMD|Ymmword, RegRex, 1, Dw2Inval, Dw2Inval 291ymm10, Class=RegSIMD|Ymmword, RegRex, 2, Dw2Inval, Dw2Inval 292ymm11, Class=RegSIMD|Ymmword, RegRex, 3, Dw2Inval, Dw2Inval 293ymm12, Class=RegSIMD|Ymmword, RegRex, 4, Dw2Inval, Dw2Inval 294ymm13, Class=RegSIMD|Ymmword, RegRex, 5, Dw2Inval, Dw2Inval 295ymm14, Class=RegSIMD|Ymmword, RegRex, 6, Dw2Inval, Dw2Inval 296ymm15, Class=RegSIMD|Ymmword, RegRex, 7, Dw2Inval, Dw2Inval 297ymm16, Class=RegSIMD|Ymmword, RegVRex, 0, Dw2Inval, Dw2Inval 298ymm17, Class=RegSIMD|Ymmword, RegVRex, 1, Dw2Inval, Dw2Inval 299ymm18, Class=RegSIMD|Ymmword, RegVRex, 2, Dw2Inval, Dw2Inval 300ymm19, Class=RegSIMD|Ymmword, RegVRex, 3, Dw2Inval, Dw2Inval 301ymm20, Class=RegSIMD|Ymmword, RegVRex, 4, Dw2Inval, Dw2Inval 302ymm21, Class=RegSIMD|Ymmword, RegVRex, 5, Dw2Inval, Dw2Inval 303ymm22, Class=RegSIMD|Ymmword, RegVRex, 6, Dw2Inval, Dw2Inval 304ymm23, Class=RegSIMD|Ymmword, RegVRex, 7, Dw2Inval, Dw2Inval 305ymm24, Class=RegSIMD|Ymmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval 306ymm25, Class=RegSIMD|Ymmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval 307ymm26, Class=RegSIMD|Ymmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval 308ymm27, Class=RegSIMD|Ymmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval 309ymm28, Class=RegSIMD|Ymmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval 310ymm29, Class=RegSIMD|Ymmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval 311ymm30, Class=RegSIMD|Ymmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval 312ymm31, Class=RegSIMD|Ymmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval 313// AVX512 registers. 314zmm0, Class=RegSIMD|Zmmword, 0, 0, Dw2Inval, Dw2Inval 315zmm1, Class=RegSIMD|Zmmword, 0, 1, Dw2Inval, Dw2Inval 316zmm2, Class=RegSIMD|Zmmword, 0, 2, Dw2Inval, Dw2Inval 317zmm3, Class=RegSIMD|Zmmword, 0, 3, Dw2Inval, Dw2Inval 318zmm4, Class=RegSIMD|Zmmword, 0, 4, Dw2Inval, Dw2Inval 319zmm5, Class=RegSIMD|Zmmword, 0, 5, Dw2Inval, Dw2Inval 320zmm6, Class=RegSIMD|Zmmword, 0, 6, Dw2Inval, Dw2Inval 321zmm7, Class=RegSIMD|Zmmword, 0, 7, Dw2Inval, Dw2Inval 322zmm8, Class=RegSIMD|Zmmword, RegRex, 0, Dw2Inval, Dw2Inval 323zmm9, Class=RegSIMD|Zmmword, RegRex, 1, Dw2Inval, Dw2Inval 324zmm10, Class=RegSIMD|Zmmword, RegRex, 2, Dw2Inval, Dw2Inval 325zmm11, Class=RegSIMD|Zmmword, RegRex, 3, Dw2Inval, Dw2Inval 326zmm12, Class=RegSIMD|Zmmword, RegRex, 4, Dw2Inval, Dw2Inval 327zmm13, Class=RegSIMD|Zmmword, RegRex, 5, Dw2Inval, Dw2Inval 328zmm14, Class=RegSIMD|Zmmword, RegRex, 6, Dw2Inval, Dw2Inval 329zmm15, Class=RegSIMD|Zmmword, RegRex, 7, Dw2Inval, Dw2Inval 330zmm16, Class=RegSIMD|Zmmword, RegVRex, 0, Dw2Inval, Dw2Inval 331zmm17, Class=RegSIMD|Zmmword, RegVRex, 1, Dw2Inval, Dw2Inval 332zmm18, Class=RegSIMD|Zmmword, RegVRex, 2, Dw2Inval, Dw2Inval 333zmm19, Class=RegSIMD|Zmmword, RegVRex, 3, Dw2Inval, Dw2Inval 334zmm20, Class=RegSIMD|Zmmword, RegVRex, 4, Dw2Inval, Dw2Inval 335zmm21, Class=RegSIMD|Zmmword, RegVRex, 5, Dw2Inval, Dw2Inval 336zmm22, Class=RegSIMD|Zmmword, RegVRex, 6, Dw2Inval, Dw2Inval 337zmm23, Class=RegSIMD|Zmmword, RegVRex, 7, Dw2Inval, Dw2Inval 338zmm24, Class=RegSIMD|Zmmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval 339zmm25, Class=RegSIMD|Zmmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval 340zmm26, Class=RegSIMD|Zmmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval 341zmm27, Class=RegSIMD|Zmmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval 342zmm28, Class=RegSIMD|Zmmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval 343zmm29, Class=RegSIMD|Zmmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval 344zmm30, Class=RegSIMD|Zmmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval 345zmm31, Class=RegSIMD|Zmmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval 346// TMM registers for AMX 347tmm0, Class=RegSIMD|Tmmword, 0, 0, Dw2Inval, Dw2Inval 348tmm1, Class=RegSIMD|Tmmword, 0, 1, Dw2Inval, Dw2Inval 349tmm2, Class=RegSIMD|Tmmword, 0, 2, Dw2Inval, Dw2Inval 350tmm3, Class=RegSIMD|Tmmword, 0, 3, Dw2Inval, Dw2Inval 351tmm4, Class=RegSIMD|Tmmword, 0, 4, Dw2Inval, Dw2Inval 352tmm5, Class=RegSIMD|Tmmword, 0, 5, Dw2Inval, Dw2Inval 353tmm6, Class=RegSIMD|Tmmword, 0, 6, Dw2Inval, Dw2Inval 354tmm7, Class=RegSIMD|Tmmword, 0, 7, Dw2Inval, Dw2Inval 355// Bound registers for MPX 356bnd0, Class=RegBND, 0, 0, Dw2Inval, Dw2Inval 357bnd1, Class=RegBND, 0, 1, Dw2Inval, Dw2Inval 358bnd2, Class=RegBND, 0, 2, Dw2Inval, Dw2Inval 359bnd3, Class=RegBND, 0, 3, Dw2Inval, Dw2Inval 360// No Class=Reg will make these registers rejected for all purposes except 361// for addressing. This saves creating one extra type for RIP/EIP. 362rip, Qword, RegRex64, RegIP, Dw2Inval, 16 363eip, Dword, RegRex64, RegIP, 8, Dw2Inval 364// No Class=Reg will make these registers rejected for all purposes except 365// for addressing. 366riz, Qword|BaseIndex, RegRex64, RegIZ, Dw2Inval, Dw2Inval 367eiz, Dword|BaseIndex, 0, RegIZ, Dw2Inval, Dw2Inval 368// fp regs. No need for an explicit st(0) here. 369st, Class=Reg|Instance=Accum|Tbyte, 0, 0, 11, 33 370st(1), Class=Reg|Tbyte, 0, 1, 12, 34 371st(2), Class=Reg|Tbyte, 0, 2, 13, 35 372st(3), Class=Reg|Tbyte, 0, 3, 14, 36 373st(4), Class=Reg|Tbyte, 0, 4, 15, 37 374st(5), Class=Reg|Tbyte, 0, 5, 16, 38 375st(6), Class=Reg|Tbyte, 0, 6, 17, 39 376st(7), Class=Reg|Tbyte, 0, 7, 18, 40 377// Pseudo-register names only used in .cfi_* directives 378eflags, 0, 0, 0, 9, 49 379rflags, 0, 0, 0, Dw2Inval, 49 380fs.base, 0, 0, 0, Dw2Inval, 58 381gs.base, 0, 0, 0, Dw2Inval, 59 382tr, 0, 0, 0, 48, 62 383ldtr, 0, 0, 0, 49, 63 384// st0...7 for backward compatibility 385st0, 0, 0, 0, 11, 33 386st1, 0, 0, 1, 12, 34 387st2, 0, 0, 2, 13, 35 388st3, 0, 0, 3, 14, 36 389st4, 0, 0, 4, 15, 37 390st5, 0, 0, 5, 16, 38 391st6, 0, 0, 6, 17, 39 392st7, 0, 0, 7, 18, 40 393fcw, 0, 0, 0, 37, 65 394fsw, 0, 0, 0, 38, 66 395mxcsr, 0, 0, 0, 39, 64 396