Asm

/* $Id$ */
REG(al, 8, 0x00, ARF_ALIAS, "General-purpose register (lowest 8-bits of ax)")
REG(cl, 8, 0x01, ARF_ALIAS, "General-purpose register (lowest 8-bits of cx)")
REG(dl, 8, 0x02, ARF_ALIAS, "General-purpose register (lowest 8-bits of dx)")
REG(bl, 8, 0x03, ARF_ALIAS, "General-purpose register (lowest 8-bits of bx)")
REG(ah, 8, 0x04, ARF_ALIAS, "General-purpose register (highest 8-bits of ax)")
REG(ch, 8, 0x05, ARF_ALIAS, "General-purpose register (highest 8-bits of cx)")
REG(dh, 8, 0x06, ARF_ALIAS, "General-purpose register (highest 8-bits of dx)")
REG(bh, 8, 0x07, ARF_ALIAS, "General-purpose register (highest 8-bits of bx)")
#ifdef ARCH_i386_real
REG(ax, 16, 0x00, 0, "General-purpose register")
REG(cx, 16, 0x01, 0, "General-purpose register")
REG(dx, 16, 0x02, 0, "General-purpose register")
REG(bx, 16, 0x03, 0, "General-purpose register")
REG(sp, 16, 0x04, 0, "Stack pointer")
REG(bp, 16, 0x05, 0, "Base pointer")
REG(si, 16, 0x06, 0, "Array index")
REG(di, 16, 0x07, 0, "Array index")
REG(cs, 16, 0x08, 0, "Segment register")
REG(ss, 16, 0x09, 0, "Segment register")
REG(ds, 16, 0x0a, 0, "Segment register")
REG(es, 16, 0x0b, 0, "Segment register")
REG(fs, 16, 0x0c, 0, "Segment register")
REG(gs, 16, 0x0d, 0, "Segment register")
REG(ip, 16, 0x10, 0, "Instruction pointer")
#else
REG(ax, 16, 0x00, ARF_ALIAS, "General-purpose register (lowest 16-bits of eax)")
REG(cx, 16, 0x01, ARF_ALIAS, "General-purpose register (lowest 16-bits of ecx)")
REG(dx, 16, 0x02, ARF_ALIAS, "General-purpose register (lowest 16-bits of edx)")
REG(bx, 16, 0x03, ARF_ALIAS, "General-purpose register (lowest 16-bits of ebx)")
REG(sp, 16, 0x04, ARF_ALIAS, "Stack pointer")
REG(bp, 16, 0x05, ARF_ALIAS, "Base pointer")
REG(si, 16, 0x06, ARF_ALIAS, "Array index")
REG(di, 16, 0x07, ARF_ALIAS, "Array index")
REG(cs, 16, 0x08, ARF_ALIAS, "Segment register")
REG(ss, 16, 0x09, ARF_ALIAS, "Segment register")
REG(ds, 16, 0x0a, ARF_ALIAS, "Segment register")
REG(es, 16, 0x0b, ARF_ALIAS, "Segment register")
REG(fs, 16, 0x0c, ARF_ALIAS, "Segment register")
REG(gs, 16, 0x0d, ARF_ALIAS, "Segment register")
REG(ip, 16, 0x10, ARF_ALIAS, "Instruction pointer")
# ifdef ARCH_amd64
REG(eax,32, 0x00, ARF_ALIAS, "General-purpose register (lowest 32-bits of rax)")
REG(ecx,32, 0x01, ARF_ALIAS, "General-purpose register (lowest 32-bits of rcx)")
REG(edx,32, 0x02, ARF_ALIAS, "General-purpose register (lowest 32-bits of rdx)")
REG(ebx,32, 0x03, ARF_ALIAS, "General-purpose register (lowest 32-bits of rbx)")
REG(esp,32, 0x04, ARF_ALIAS, "Stack pointer (lowest 32-bits of rsp)")
REG(ebp,32, 0x05, ARF_ALIAS, "Base pointer (lowest 32-bits of rbp)")
REG(esi,32, 0x06, ARF_ALIAS, "Array index (lowest 32-bits of rsi)")
REG(edi,32, 0x07, ARF_ALIAS, "Array index (lowest 32-bits of rdi)")
REG(eip,32, 0x10, ARF_ALIAS, "Instruction pointer (lowest 32-bits of rip)")
# else
REG(eax,32, 0x00, 0, "General-purpose register")
REG(ecx,32, 0x01, 0, "General-purpose register")
REG(edx,32, 0x02, 0, "General-purpose register")
REG(ebx,32, 0x03, 0, "General-purpose register")
REG(esp,32, 0x04, 0, "Stack pointer")
REG(ebp,32, 0x05, 0, "Base pointer")
REG(esi,32, 0x06, 0, "Array index")
REG(edi,32, 0x07, 0, "Array index")
REG(eip,32, 0x10, 0, "Instruction pointer")
# endif /* ARCH_amd64 */
#endif /* !ARCH_i386_real */
REG(cr0,32, 0x20, 0, "Control register")
REG(cr1,32, 0x21, 0, "Control register")
REG(cr2,32, 0x22, 0, "Control register")
REG(cr3,32, 0x23, 0, "Control register")
REG(cr4,32, 0x24, 0, "Control register")
REG(cr5,32, 0x25, 0, "Control register")
REG(cr6,32, 0x26, 0, "Control register")
REG(cr7,32, 0x27, 0, "Control register")
REG(st0,32, 0x28, 0, "Floating-point register")
REG(st1,32, 0x29, 0, "Floating-point register")
REG(st2,32, 0x2a, 0, "Floating-point register")
REG(st3,32, 0x2b, 0, "Floating-point register")
REG(st4,32, 0x2c, 0, "Floating-point register")
REG(st5,32, 0x2d, 0, "Floating-point register")
REG(st6,32, 0x2e, 0, "Floating-point register")
REG(st7,32, 0x2f, 0, "Floating-point register")