+static const char register_names[][4] = {
+ [STATE_REV] = "sREV",
+ [STATE_REG_SMBASE] = "sBSE",
+ [STATE_REG_IORESTART] = "IOrs",
+ [STATE_REG_HALTRESTART] = "HLrs",
+
+ [STATE_REG_EAX] = "%eax",
+ [STATE_REG_EBX] = "%ebx",
+ [STATE_REG_ECX] = "%ecx",
+ [STATE_REG_EDX] = "%edx",
+ [STATE_REG_ESI] = "%esi",
+ [STATE_REG_EDI] = "%edi",
+ [STATE_REG_ESP] = "%esp",
+ [STATE_REG_EBP] = "%ebp",
+ [STATE_REG_EIP] = "%eip",
+ [STATE_REG_EFLAGS] = "%eFL",
+ [STATE_REG_CR0] = "%cr0",
+ [STATE_REG_CR3] = "%cr3",
+
+ [STATE_REG_CS] = "%cs ",
+ [STATE_REG_CS_ATTRIB] = "csAT",
+ [STATE_REG_CS_BASE] = "csBA",
+ [STATE_REG_CS_LIMIT] = "csLI",
+ [STATE_REG_SS] = "%ss ",
+ [STATE_REG_SS_ATTRIB] = "ssAT",
+ [STATE_REG_SS_BASE] = "ssBA",
+ [STATE_REG_SS_LIMIT] = "ssLI",
+ [STATE_REG_DS] = "%ds ",
+ [STATE_REG_DS_ATTRIB] = "dsAT",
+ [STATE_REG_DS_BASE] = "dsBA",
+ [STATE_REG_DS_LIMIT] = "dsLI",
+ [STATE_REG_ES] = "%es ",
+ [STATE_REG_ES_ATTRIB] = "esAT",
+ [STATE_REG_ES_BASE] = "esBA",
+ [STATE_REG_ES_LIMIT] = "esLI",
+ [STATE_REG_FS] = "%fs ",
+ [STATE_REG_FS_ATTRIB] = "fsAT",
+ [STATE_REG_FS_BASE] = "fsBA",
+ [STATE_REG_FS_LIMIT] = "fsLI",
+ [STATE_REG_GS] = "%gs ",
+ [STATE_REG_GS_ATTRIB] = "gsAT",
+ [STATE_REG_GS_BASE] = "gsBA",
+ [STATE_REG_GS_LIMIT] = "gsLI",
+
+ [STATE_REG_RAX] = "%rax",
+ [STATE_REG_RBX] = "%rbx",
+ [STATE_REG_RCX] = "%rcx",
+ [STATE_REG_RDX] = "%rdx",
+ [STATE_REG_RSI] = "%rsi",
+ [STATE_REG_RDI] = "%rdi",
+ [STATE_REG_RSP] = "%rsp",
+ [STATE_REG_RBP] = "%rbp",
+ [STATE_REG_R8] = "%r8 ",
+ [STATE_REG_R9] = "%r9 ",
+ [STATE_REG_R10] = "%r10",
+ [STATE_REG_R11] = "%r11",
+ [STATE_REG_R12] = "%r12",
+ [STATE_REG_R13] = "%r13",
+ [STATE_REG_R14] = "%r14",
+ [STATE_REG_R15] = "%r15",
+ [STATE_REG_RIP] = "%rip",
+
+ [STATE_REG_EFER] = "EFER"
+};