Home | History | Annotate | Download | only in libenc

Lines Matching refs:RegName

149 #define REGNAME(k,s,i) ( ((k & OpndKind_Any)<<24) | ((s & OpndSize_Any)<<16) | (i&0xFF) )
156 typedef enum RegName {
162 An index part of the RegName-s for RAX-RDI, EAX-ESI, AX-SI and AL-BH is
168 RegName_RAX = REGNAME(OpndKind_GPReg,OpndSize_64,0),
169 RegName_RCX = REGNAME(OpndKind_GPReg,OpndSize_64,1),
170 RegName_RDX = REGNAME(OpndKind_GPReg,OpndSize_64,2),
171 RegName_RBX = REGNAME(OpndKind_GPReg,OpndSize_64,3),
172 RegName_RSP = REGNAME(OpndKind_GPReg,OpndSize_64,4),
173 RegName_RBP = REGNAME(OpndKind_GPReg,OpndSize_64,5),
174 RegName_RSI = REGNAME(OpndKind_GPReg,OpndSize_64,6),
175 RegName_RDI = REGNAME(OpndKind_GPReg,OpndSize_64,7),
177 RegName_R8 = REGNAME(OpndKind_GPReg,OpndSize_64,8),
178 RegName_R9 = REGNAME(OpndKind_GPReg,OpndSize_64,9),
179 RegName_R10 = REGNAME(OpndKind_GPReg,OpndSize_64,10),
180 RegName_R11 = REGNAME(OpndKind_GPReg,OpndSize_64,11),
181 RegName_R12 = REGNAME(OpndKind_GPReg,OpndSize_64,12),
182 RegName_R13 = REGNAME(OpndKind_GPReg,OpndSize_64,13),
183 RegName_R14 = REGNAME(OpndKind_GPReg,OpndSize_64,14),
184 RegName_R15 = REGNAME(OpndKind_GPReg,OpndSize_64,15),
187 RegName_EAX=REGNAME(OpndKind_GPReg,OpndSize_32,0),
188 RegName_ECX=REGNAME(OpndKind_GPReg,OpndSize_32,1),
189 RegName_EDX=REGNAME(OpndKind_GPReg,OpndSize_32,2),
190 RegName_EBX=REGNAME(OpndKind_GPReg,OpndSize_32,3),
191 RegName_ESP=REGNAME(OpndKind_GPReg,OpndSize_32,4),
192 RegName_EBP=REGNAME(OpndKind_GPReg,OpndSize_32,5),
193 RegName_ESI=REGNAME(OpndKind_GPReg,OpndSize_32,6),
194 RegName_EDI=REGNAME(OpndKind_GPReg,OpndSize_32,7),
197 RegName_R8D = REGNAME(OpndKind_GPReg,OpndSize_32,8),
198 RegName_R9D = REGNAME(OpndKind_GPReg,OpndSize_32,9),
199 RegName_R10D = REGNAME(OpndKind_GPReg,OpndSize_32,10),
200 RegName_R11D = REGNAME(OpndKind_GPReg,OpndSize_32,11),
201 RegName_R12D = REGNAME(OpndKind_GPReg,OpndSize_32,12),
202 RegName_R13D = REGNAME(OpndKind_GPReg,OpndSize_32,13),
203 RegName_R14D = REGNAME(OpndKind_GPReg,OpndSize_32,14),
204 RegName_R15D = REGNAME(OpndKind_GPReg,OpndSize_32,15),
207 RegName_AX=REGNAME(OpndKind_GPReg,OpndSize_16,0),
208 RegName_CX=REGNAME(OpndKind_GPReg,OpndSize_16,1),
209 RegName_DX=REGNAME(OpndKind_GPReg,OpndSize_16,2),
210 RegName_BX=REGNAME(OpndKind_GPReg,OpndSize_16,3),
211 RegName_SP=REGNAME(OpndKind_GPReg,OpndSize_16,4),
212 RegName_BP=REGNAME(OpndKind_GPReg,OpndSize_16,5),
213 RegName_SI=REGNAME(OpndKind_GPReg,OpndSize_16,6),
214 RegName_DI=REGNAME(OpndKind_GPReg,OpndSize_16,7),
217 RegName_R8S = REGNAME(OpndKind_GPReg,OpndSize_16,8),
218 RegName_R9S = REGNAME(OpndKind_GPReg,OpndSize_16,9),
219 RegName_R10S = REGNAME(OpndKind_GPReg,OpndSize_16,10),
220 RegName_R11S = REGNAME(OpndKind_GPReg,OpndSize_16,11),
221 RegName_R12S = REGNAME(OpndKind_GPReg,OpndSize_16,12),
222 RegName_R13S = REGNAME(OpndKind_GPReg,OpndSize_16,13),
223 RegName_R14S = REGNAME(OpndKind_GPReg,OpndSize_16,14),
224 RegName_R15S = REGNAME(OpndKind_GPReg,OpndSize_16,15),
227 RegName_AL=REGNAME(OpndKind_GPReg,OpndSize_8,0),
228 RegName_CL=REGNAME(OpndKind_GPReg,OpndSize_8,1),
229 RegName_DL=REGNAME(OpndKind_GPReg,OpndSize_8,2),
230 RegName_BL=REGNAME(OpndKind_GPReg,OpndSize_8,3),
234 RegName_AH=REGNAME(OpndKind_GPReg,OpndSize_8,4),
236 RegName_CH=REGNAME(OpndKind_GPReg,OpndSize_8,5),
237 RegName_DH=REGNAME(OpndKind_GPReg,OpndSize_8,6),
238 RegName_BH=REGNAME(OpndKind_GPReg,OpndSize_8,7),
240 RegName_SPL=REGNAME(OpndKind_GPReg,OpndSize_8,4),
241 RegName_BPL=REGNAME(OpndKind_GPReg,OpndSize_8,5),
242 RegName_SIL=REGNAME(OpndKind_GPReg,OpndSize_8,6),
243 RegName_DIL=REGNAME(OpndKind_GPReg,OpndSize_8,7),
244 RegName_R8L=REGNAME(OpndKind_GPReg,OpndSize_8,8),
245 RegName_R9L=REGNAME(OpndKind_GPReg,OpndSize_8,9),
246 RegName_R10L=REGNAME(OpndKind_GPReg,OpndSize_8,10),
247 RegName_R11L=REGNAME(OpndKind_GPReg,OpndSize_8,11),
248 RegName_R12L=REGNAME(OpndKind_GPReg,OpndSize_8,12),
249 RegName_R13L=REGNAME(OpndKind_GPReg,OpndSize_8,13),
250 RegName_R14L=REGNAME(OpndKind_GPReg,OpndSize_8,14),
251 RegName_R15L=REGNAME(OpndKind_GPReg,OpndSize_8,15),
254 RegName_ES=REGNAME(OpndKind_SReg,OpndSize_16,0),
255 RegName_CS=REGNAME(OpndKind_SReg,OpndSize_16,1),
256 RegName_SS=REGNAME(OpndKind_SReg,OpndSize_16,2),
257 RegName_DS=REGNAME(OpndKind_SReg,OpndSize_16,3),
258 RegName_FS=REGNAME(OpndKind_SReg,OpndSize_16,4),
259 RegName_GS=REGNAME(OpndKind_SReg,OpndSize_16,5),
261 RegName_EFLAGS=REGNAME(OpndKind_StatusReg,OpndSize_32,0),
264 RegName_FP0=REGNAME(OpndKind_FPReg,OpndSize_80,0),
265 RegName_FP1=REGNAME(OpndKind_FPReg,OpndSize_80,1),
266 RegName_FP2=REGNAME(OpndKind_FPReg,OpndSize_80,2),
267 RegName_FP3=REGNAME(OpndKind_FPReg,OpndSize_80,3),
268 RegName_FP4=REGNAME(OpndKind_FPReg,OpndSize_80,4),
269 RegName_FP5=REGNAME(OpndKind_FPReg,OpndSize_80,5),
270 RegName_FP6=REGNAME(OpndKind_FPReg,OpndSize_80,6),
271 RegName_FP7=REGNAME(OpndKind_FPReg,OpndSize_80,7),
273 RegName_FP0S=REGNAME(OpndKind_FPReg,OpndSize_32,0),
274 RegName_FP1S=REGNAME(OpndKind_FPReg,OpndSize_32,1),
275 RegName_FP2S=REGNAME(OpndKind_FPReg,OpndSize_32,2),
276 RegName_FP3S=REGNAME(OpndKind_FPReg,OpndSize_32,3),
277 RegName_FP4S=REGNAME(OpndKind_FPReg,OpndSize_32,4),
278 RegName_FP5S=REGNAME(OpndKind_FPReg,OpndSize_32,5),
279 RegName_FP6S=REGNAME(OpndKind_FPReg,OpndSize_32,6),
280 RegName_FP7S=REGNAME(OpndKind_FPReg,OpndSize_32,7),
282 RegName_FP0D=REGNAME(OpndKind_FPReg,OpndSize_64,0),
283 RegName_FP1D=REGNAME(OpndKind_FPReg,OpndSize_64,1),
284 RegName_FP2D=REGNAME(OpndKind_FPReg,OpndSize_64,2),
285 RegName_FP3D=REGNAME(OpndKind_FPReg,OpndSize_64,3),
286 RegName_FP4D=REGNAME(OpndKind_FPReg,OpndSize_64,4),
287 RegName_FP5D=REGNAME(OpndKind_FPReg,OpndSize_64,5),
288 RegName_FP6D=REGNAME(OpndKind_FPReg,OpndSize_64,6),
289 RegName_FP7D=REGNAME(OpndKind_FPReg,OpndSize_64,7),
292 RegName_XMM0=REGNAME(OpndKind_XMMReg,OpndSize_128,0),
293 RegName_XMM1=REGNAME(OpndKind_XMMReg,OpndSize_128,1),
294 RegName_XMM2=REGNAME(OpndKind_XMMReg,OpndSize_128,2),
295 RegName_XMM3=REGNAME(OpndKind_XMMReg,OpndSize_128,3),
296 RegName_XMM4=REGNAME(OpndKind_XMMReg,OpndSize_128,4),
297 RegName_XMM5=REGNAME(OpndKind_XMMReg,OpndSize_128,5),
298 RegName_XMM6=REGNAME(OpndKind_XMMReg,OpndSize_128,6),
299 RegName_XMM7=REGNAME(OpndKind_XMMReg,OpndSize_128,7),
302 RegName_XMM8 = REGNAME(OpndKind_XMMReg,OpndSize_128,0),
303 RegName_XMM9 = REGNAME(OpndKind_XMMReg,OpndSize_128,1),
304 RegName_XMM10 = REGNAME(OpndKind_XMMReg,OpndSize_128,2),
305 RegName_XMM11 = REGNAME(OpndKind_XMMReg,OpndSize_128,3),
306 RegName_XMM12 = REGNAME(OpndKind_XMMReg,OpndSize_128,4),
307 RegName_XMM13 = REGNAME(OpndKind_XMMReg,OpndSize_128,5),
308 RegName_XMM14 = REGNAME(OpndKind_XMMReg,OpndSize_128,6),
309 RegName_XMM15 = REGNAME(OpndKind_XMMReg,OpndSize_128,7),
314 RegName_XMM0S=REGNAME(OpndKind_XMMReg,OpndSize_32,0),
315 RegName_XMM1S=REGNAME(OpndKind_XMMReg,OpndSize_32,1),
316 RegName_XMM2S=REGNAME(OpndKind_XMMReg,OpndSize_32,2),
317 RegName_XMM3S=REGNAME(OpndKind_XMMReg,OpndSize_32,3),
318 RegName_XMM4S=REGNAME(OpndKind_XMMReg,OpndSize_32,4),
319 RegName_XMM5S=REGNAME(OpndKind_XMMReg,OpndSize_32,5),
320 RegName_XMM6S=REGNAME(OpndKind_XMMReg,OpndSize_32,6),
321 RegName_XMM7S=REGNAME(OpndKind_XMMReg,OpndSize_32,7),
323 RegName_XMM8S=REGNAME(OpndKind_XMMReg,OpndSize_32,8),
324 RegName_XMM9S=REGNAME(OpndKind_XMMReg,OpndSize_32,9),
325 RegName_XMM10S=REGNAME(OpndKind_XMMReg,OpndSize_32,10),
326 RegName_XMM11S=REGNAME(OpndKind_XMMReg,OpndSize_32,11),
327 RegName_XMM12S=REGNAME(OpndKind_XMMReg,OpndSize_32,12),
328 RegName_XMM13S=REGNAME(OpndKind_XMMReg,OpndSize_32,13),
329 RegName_XMM14S=REGNAME(OpndKind_XMMReg,OpndSize_32,14),
330 RegName_XMM15S=REGNAME(OpndKind_XMMReg,OpndSize_32,15),
332 RegName_XMM0D=REGNAME(OpndKind_XMMReg,OpndSize_64,0),
333 RegName_XMM1D=REGNAME(OpndKind_XMMReg,OpndSize_64,1),
334 RegName_XMM2D=REGNAME(OpndKind_XMMReg,OpndSize_64,2),
335 RegName_XMM3D=REGNAME(OpndKind_XMMReg,OpndSize_64,3),
336 RegName_XMM4D=REGNAME(OpndKind_XMMReg,OpndSize_64,4),
337 RegName_XMM5D=REGNAME(OpndKind_XMMReg,OpndSize_64,5),
338 RegName_XMM6D=REGNAME(OpndKind_XMMReg,OpndSize_64,6),
339 RegName_XMM7D=REGNAME(OpndKind_XMMReg,OpndSize_64,7),
341 RegName_XMM8D=REGNAME(OpndKind_XMMReg,OpndSize_64,8),
342 RegName_XMM9D=REGNAME(OpndKind_XMMReg,OpndSize_64,9),
343 RegName_XMM10D=REGNAME(OpndKind_XMMReg,OpndSize_64,10),
344 RegName_XMM11D=REGNAME(OpndKind_XMMReg,OpndSize_64,11),
345 RegName_XMM12D=REGNAME(OpndKind_XMMReg,OpndSize_64,12),
346 RegName_XMM13D=REGNAME(OpndKind_XMMReg,OpndSize_64,13),
347 RegName_XMM14D=REGNAME(OpndKind_XMMReg,OpndSize_64,14),
348 RegName_XMM15D=REGNAME(OpndKind_XMMReg,OpndSize_64,15),
351 RegName_MMX0=REGNAME(OpndKind_MMXReg,OpndSize_64,0),
352 RegName_MMX1=REGNAME(OpndKind_MMXReg,OpndSize_64,1),
353 RegName_MMX2=REGNAME(OpndKind_MMXReg,OpndSize_64,2),
354 RegName_MMX3=REGNAME(OpndKind_MMXReg,OpndSize_64,3),
355 RegName_MMX4=REGNAME(OpndKind_MMXReg,OpndSize_64,4),
356 RegName_MMX5=REGNAME(OpndKind_MMXReg,OpndSize_64,5),
357 RegName_MMX6=REGNAME(OpndKind_MMXReg,OpndSize_64,6),
358 RegName_MMX7=REGNAME(OpndKind_MMXReg,OpndSize_64,7),
360 } RegName;
688 * @brief Returns #RegName for a given name.
691 * @param regname - string name of a register
692 * @return #RegName for the given name, or #RegName_Null if name is invalid
694 RegName getRegName(const char * regname);
696 * Constructs RegName from the given OpndKind, size and index.
698 inline RegName getRegName(OpndKind k, OpndSize s, int idx)
700 return (RegName)REGNAME(k,s,idx);
705 inline unsigned getRegMask(RegName reg)
710 * @brief Extracts #RegKind from the #RegName.
712 inline OpndKind getRegKind(RegName reg)
717 * @brief Extracts #OpndSize from #RegName.
719 inline OpndSize getRegSize(RegName reg)
724 * Extracts an index from the given RegName.
726 inline unsigned char getRegIndex(RegName reg)
731 * Returns a string name of the given RegName. The name returned is in upper-case.
732 * Returns NULL if invalid RegName specified.
734 const char * getRegNameString(RegName reg);
763 * Constructs an RegName with the same index and kind, but with a different size from
764 * the given RegName (i.e. getRegAlias(EAX, OpndSize_16) => AX; getRegAlias(BL, OpndSize_32) => EBX).
765 * The constructed RegName is not checked in any way and thus may be invalid.
768 inline RegName getAliasReg(RegName reg, OpndSize sz)
770 return (RegName)REGNAME(getRegKind(reg), sz, getRegIndex(reg));
774 * brief Tests two RegName-s of the same kind for equality.
778 inline bool equals(RegName r0, RegName r1)