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, 21, 17 282ymm1, Class=RegSIMD|Ymmword, 0, 1, 22, 18 283ymm2, Class=RegSIMD|Ymmword, 0, 2, 23, 19 284ymm3, Class=RegSIMD|Ymmword, 0, 3, 24, 20 285ymm4, Class=RegSIMD|Ymmword, 0, 4, 25, 21 286ymm5, Class=RegSIMD|Ymmword, 0, 5, 26, 22 287ymm6, Class=RegSIMD|Ymmword, 0, 6, 27, 23 288ymm7, Class=RegSIMD|Ymmword, 0, 7, 28, 24 289ymm8, Class=RegSIMD|Ymmword, RegRex, 0, Dw2Inval, 25 290ymm9, Class=RegSIMD|Ymmword, RegRex, 1, Dw2Inval, 26 291ymm10, Class=RegSIMD|Ymmword, RegRex, 2, Dw2Inval, 27 292ymm11, Class=RegSIMD|Ymmword, RegRex, 3, Dw2Inval, 28 293ymm12, Class=RegSIMD|Ymmword, RegRex, 4, Dw2Inval, 29 294ymm13, Class=RegSIMD|Ymmword, RegRex, 5, Dw2Inval, 30 295ymm14, Class=RegSIMD|Ymmword, RegRex, 6, Dw2Inval, 31 296ymm15, Class=RegSIMD|Ymmword, RegRex, 7, Dw2Inval, 32 297// AVX512 / AVX10 registers. 298ymm16, Class=RegSIMD|Ymmword, RegVRex, 0, Dw2Inval, 67 299ymm17, Class=RegSIMD|Ymmword, RegVRex, 1, Dw2Inval, 68 300ymm18, Class=RegSIMD|Ymmword, RegVRex, 2, Dw2Inval, 69 301ymm19, Class=RegSIMD|Ymmword, RegVRex, 3, Dw2Inval, 70 302ymm20, Class=RegSIMD|Ymmword, RegVRex, 4, Dw2Inval, 71 303ymm21, Class=RegSIMD|Ymmword, RegVRex, 5, Dw2Inval, 72 304ymm22, Class=RegSIMD|Ymmword, RegVRex, 6, Dw2Inval, 73 305ymm23, Class=RegSIMD|Ymmword, RegVRex, 7, Dw2Inval, 74 306ymm24, Class=RegSIMD|Ymmword, RegVRex|RegRex, 0, Dw2Inval, 75 307ymm25, Class=RegSIMD|Ymmword, RegVRex|RegRex, 1, Dw2Inval, 76 308ymm26, Class=RegSIMD|Ymmword, RegVRex|RegRex, 2, Dw2Inval, 77 309ymm27, Class=RegSIMD|Ymmword, RegVRex|RegRex, 3, Dw2Inval, 78 310ymm28, Class=RegSIMD|Ymmword, RegVRex|RegRex, 4, Dw2Inval, 79 311ymm29, Class=RegSIMD|Ymmword, RegVRex|RegRex, 5, Dw2Inval, 80 312ymm30, Class=RegSIMD|Ymmword, RegVRex|RegRex, 6, Dw2Inval, 81 313ymm31, Class=RegSIMD|Ymmword, RegVRex|RegRex, 7, Dw2Inval, 82 314// AVX512 registers. 315zmm0, Class=RegSIMD|Zmmword, 0, 0, 21, 17 316zmm1, Class=RegSIMD|Zmmword, 0, 1, 22, 18 317zmm2, Class=RegSIMD|Zmmword, 0, 2, 23, 19 318zmm3, Class=RegSIMD|Zmmword, 0, 3, 24, 20 319zmm4, Class=RegSIMD|Zmmword, 0, 4, 25, 21 320zmm5, Class=RegSIMD|Zmmword, 0, 5, 26, 22 321zmm6, Class=RegSIMD|Zmmword, 0, 6, 27, 23 322zmm7, Class=RegSIMD|Zmmword, 0, 7, 28, 24 323zmm8, Class=RegSIMD|Zmmword, RegRex, 0, Dw2Inval, 25 324zmm9, Class=RegSIMD|Zmmword, RegRex, 1, Dw2Inval, 26 325zmm10, Class=RegSIMD|Zmmword, RegRex, 2, Dw2Inval, 27 326zmm11, Class=RegSIMD|Zmmword, RegRex, 3, Dw2Inval, 28 327zmm12, Class=RegSIMD|Zmmword, RegRex, 4, Dw2Inval, 29 328zmm13, Class=RegSIMD|Zmmword, RegRex, 5, Dw2Inval, 30 329zmm14, Class=RegSIMD|Zmmword, RegRex, 6, Dw2Inval, 31 330zmm15, Class=RegSIMD|Zmmword, RegRex, 7, Dw2Inval, 32 331zmm16, Class=RegSIMD|Zmmword, RegVRex, 0, Dw2Inval, 67 332zmm17, Class=RegSIMD|Zmmword, RegVRex, 1, Dw2Inval, 68 333zmm18, Class=RegSIMD|Zmmword, RegVRex, 2, Dw2Inval, 69 334zmm19, Class=RegSIMD|Zmmword, RegVRex, 3, Dw2Inval, 70 335zmm20, Class=RegSIMD|Zmmword, RegVRex, 4, Dw2Inval, 71 336zmm21, Class=RegSIMD|Zmmword, RegVRex, 5, Dw2Inval, 72 337zmm22, Class=RegSIMD|Zmmword, RegVRex, 6, Dw2Inval, 73 338zmm23, Class=RegSIMD|Zmmword, RegVRex, 7, Dw2Inval, 74 339zmm24, Class=RegSIMD|Zmmword, RegVRex|RegRex, 0, Dw2Inval, 75 340zmm25, Class=RegSIMD|Zmmword, RegVRex|RegRex, 1, Dw2Inval, 76 341zmm26, Class=RegSIMD|Zmmword, RegVRex|RegRex, 2, Dw2Inval, 77 342zmm27, Class=RegSIMD|Zmmword, RegVRex|RegRex, 3, Dw2Inval, 78 343zmm28, Class=RegSIMD|Zmmword, RegVRex|RegRex, 4, Dw2Inval, 79 344zmm29, Class=RegSIMD|Zmmword, RegVRex|RegRex, 5, Dw2Inval, 80 345zmm30, Class=RegSIMD|Zmmword, RegVRex|RegRex, 6, Dw2Inval, 81 346zmm31, Class=RegSIMD|Zmmword, RegVRex|RegRex, 7, Dw2Inval, 82 347// TMM registers for AMX 348tmm0, Class=RegSIMD|Tmmword, 0, 0, Dw2Inval, Dw2Inval 349tmm1, Class=RegSIMD|Tmmword, 0, 1, Dw2Inval, Dw2Inval 350tmm2, Class=RegSIMD|Tmmword, 0, 2, Dw2Inval, Dw2Inval 351tmm3, Class=RegSIMD|Tmmword, 0, 3, Dw2Inval, Dw2Inval 352tmm4, Class=RegSIMD|Tmmword, 0, 4, Dw2Inval, Dw2Inval 353tmm5, Class=RegSIMD|Tmmword, 0, 5, Dw2Inval, Dw2Inval 354tmm6, Class=RegSIMD|Tmmword, 0, 6, Dw2Inval, Dw2Inval 355tmm7, Class=RegSIMD|Tmmword, 0, 7, Dw2Inval, Dw2Inval 356// Bound registers for MPX 357bnd0, Class=RegBND, 0, 0, Dw2Inval, 126 358bnd1, Class=RegBND, 0, 1, Dw2Inval, 127 359bnd2, Class=RegBND, 0, 2, Dw2Inval, 128 360bnd3, Class=RegBND, 0, 3, Dw2Inval, 129 361// No Class=Reg will make these registers rejected for all purposes except 362// for addressing. This saves creating one extra type for RIP/EIP. 363rip, Qword, RegRex64, RegIP, Dw2Inval, 16 364eip, Dword, RegRex64, RegIP, 8, Dw2Inval 365// No Class=Reg will make these registers rejected for all purposes except 366// for addressing. 367riz, Qword|BaseIndex, RegRex64, RegIZ, Dw2Inval, Dw2Inval 368eiz, Dword|BaseIndex, 0, RegIZ, Dw2Inval, Dw2Inval 369// fp regs. No need for an explicit st(0) here. 370st, Class=Reg|Instance=Accum|Tbyte, 0, 0, 11, 33 371st(1), Class=Reg|Tbyte, 0, 1, 12, 34 372st(2), Class=Reg|Tbyte, 0, 2, 13, 35 373st(3), Class=Reg|Tbyte, 0, 3, 14, 36 374st(4), Class=Reg|Tbyte, 0, 4, 15, 37 375st(5), Class=Reg|Tbyte, 0, 5, 16, 38 376st(6), Class=Reg|Tbyte, 0, 6, 17, 39 377st(7), Class=Reg|Tbyte, 0, 7, 18, 40 378// Pseudo-register names only used in .cfi_* directives 379eflags, 0, 0, 0, 9, 49 380rflags, 0, 0, 0, Dw2Inval, 49 381fs.base, 0, 0, 0, Dw2Inval, 58 382gs.base, 0, 0, 0, Dw2Inval, 59 383tr, 0, 0, 0, 48, 62 384ldtr, 0, 0, 0, 49, 63 385// st0...7 for backward compatibility 386st0, 0, 0, 0, 11, 33 387st1, 0, 0, 1, 12, 34 388st2, 0, 0, 2, 13, 35 389st3, 0, 0, 3, 14, 36 390st4, 0, 0, 4, 15, 37 391st5, 0, 0, 5, 16, 38 392st6, 0, 0, 6, 17, 39 393st7, 0, 0, 7, 18, 40 394fcw, 0, 0, 0, 37, 65 395fsw, 0, 0, 0, 38, 66 396mxcsr, 0, 0, 0, 39, 64 397