Index: /trunk/include/VBox/vmm/hm_svm.h
===================================================================
--- /trunk/include/VBox/vmm/hm_svm.h	(revision 81244)
+++ /trunk/include/VBox/vmm/hm_svm.h	(revision 81245)
@@ -236,5 +236,5 @@
 /** IRET instruction. */
 # define SVM_EXIT_IRET                   0x74
-/** software interrupt (INTn instructions). */
+/** Software interrupt (INTn instructions). */
 # define SVM_EXIT_SWINT                  0x75
 /** INVD instruction. */
@@ -288,4 +288,26 @@
 /** RDPRU instruction. */
 # define SVM_EXIT_RDPRU                  0x8e
+/** Write to EFER (after guest instruction completes). */
+# define SVM_EXIT_WRITE_EFER_TRAP        0x8f
+/** Write to CR0-CR15 (after guest instruction completes). */
+# define SVM_EXIT_WRITE_CR0_TRAP         0x90
+# define SVM_EXIT_WRITE_CR1_TRAP         0x91
+# define SVM_EXIT_WRITE_CR2_TRAP         0x92
+# define SVM_EXIT_WRITE_CR3_TRAP         0x93
+# define SVM_EXIT_WRITE_CR4_TRAP         0x94
+# define SVM_EXIT_WRITE_CR5_TRAP         0x95
+# define SVM_EXIT_WRITE_CR6_TRAP         0x96
+# define SVM_EXIT_WRITE_CR7_TRAP         0x97
+# define SVM_EXIT_WRITE_CR8_TRAP         0x98
+# define SVM_EXIT_WRITE_CR9_TRAP         0x99
+# define SVM_EXIT_WRITE_CR10_TRAP        0x9a
+# define SVM_EXIT_WRITE_CR11_TRAP        0x9b
+# define SVM_EXIT_WRITE_CR12_TRAP        0x9c
+# define SVM_EXIT_WRITE_CR13_TRAP        0x9d
+# define SVM_EXIT_WRITE_CR14_TRAP        0x9e
+# define SVM_EXIT_WRITE_CR15_TRAP        0x9f
+/** MCOMMIT instruction. */
+# define SVM_EXIT_MCOMMIT                0xa3
+
 /** Nested paging: host-level page fault occurred (EXITINFO1 contains fault errorcode; EXITINFO2 contains the guest physical address causing the fault). */
 # define SVM_EXIT_NPF                    0x400
Index: /trunk/src/VBox/VMM/VMMAll/HMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/HMAll.cpp	(revision 81244)
+++ /trunk/src/VBox/VMM/VMMAll/HMAll.cpp	(revision 81245)
@@ -130,150 +130,171 @@
 static const char * const g_apszSvmExitReasons[MAX_EXITREASON_STAT] =
 {
-    EXIT_REASON(SVM_EXIT_READ_CR0     ,    0, "Read CR0."),
-    EXIT_REASON(SVM_EXIT_READ_CR1     ,    1, "Read CR1."),
-    EXIT_REASON(SVM_EXIT_READ_CR2     ,    2, "Read CR2."),
-    EXIT_REASON(SVM_EXIT_READ_CR3     ,    3, "Read CR3."),
-    EXIT_REASON(SVM_EXIT_READ_CR4     ,    4, "Read CR4."),
-    EXIT_REASON(SVM_EXIT_READ_CR5     ,    5, "Read CR5."),
-    EXIT_REASON(SVM_EXIT_READ_CR6     ,    6, "Read CR6."),
-    EXIT_REASON(SVM_EXIT_READ_CR7     ,    7, "Read CR7."),
-    EXIT_REASON(SVM_EXIT_READ_CR8     ,    8, "Read CR8."),
-    EXIT_REASON(SVM_EXIT_READ_CR9     ,    9, "Read CR9."),
-    EXIT_REASON(SVM_EXIT_READ_CR10    ,   10, "Read CR10."),
-    EXIT_REASON(SVM_EXIT_READ_CR11    ,   11, "Read CR11."),
-    EXIT_REASON(SVM_EXIT_READ_CR12    ,   12, "Read CR12."),
-    EXIT_REASON(SVM_EXIT_READ_CR13    ,   13, "Read CR13."),
-    EXIT_REASON(SVM_EXIT_READ_CR14    ,   14, "Read CR14."),
-    EXIT_REASON(SVM_EXIT_READ_CR15    ,   15, "Read CR15."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR0    ,   16, "Write CR0."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR1    ,   17, "Write CR1."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR2    ,   18, "Write CR2."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR3    ,   19, "Write CR3."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR4    ,   20, "Write CR4."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR5    ,   21, "Write CR5."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR6    ,   22, "Write CR6."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR7    ,   23, "Write CR7."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR8    ,   24, "Write CR8."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR9    ,   25, "Write CR9."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR10   ,   26, "Write CR10."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR11   ,   27, "Write CR11."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR12   ,   28, "Write CR12."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR13   ,   29, "Write CR13."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR14   ,   30, "Write CR14."),
-    EXIT_REASON(SVM_EXIT_WRITE_CR15   ,   31, "Write CR15."),
-    EXIT_REASON(SVM_EXIT_READ_DR0     ,   32, "Read DR0."),
-    EXIT_REASON(SVM_EXIT_READ_DR1     ,   33, "Read DR1."),
-    EXIT_REASON(SVM_EXIT_READ_DR2     ,   34, "Read DR2."),
-    EXIT_REASON(SVM_EXIT_READ_DR3     ,   35, "Read DR3."),
-    EXIT_REASON(SVM_EXIT_READ_DR4     ,   36, "Read DR4."),
-    EXIT_REASON(SVM_EXIT_READ_DR5     ,   37, "Read DR5."),
-    EXIT_REASON(SVM_EXIT_READ_DR6     ,   38, "Read DR6."),
-    EXIT_REASON(SVM_EXIT_READ_DR7     ,   39, "Read DR7."),
-    EXIT_REASON(SVM_EXIT_READ_DR8     ,   40, "Read DR8."),
-    EXIT_REASON(SVM_EXIT_READ_DR9     ,   41, "Read DR9."),
-    EXIT_REASON(SVM_EXIT_READ_DR10    ,   42, "Read DR10."),
-    EXIT_REASON(SVM_EXIT_READ_DR11    ,   43, "Read DR11"),
-    EXIT_REASON(SVM_EXIT_READ_DR12    ,   44, "Read DR12."),
-    EXIT_REASON(SVM_EXIT_READ_DR13    ,   45, "Read DR13."),
-    EXIT_REASON(SVM_EXIT_READ_DR14    ,   46, "Read DR14."),
-    EXIT_REASON(SVM_EXIT_READ_DR15    ,   47, "Read DR15."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR0    ,   48, "Write DR0."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR1    ,   49, "Write DR1."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR2    ,   50, "Write DR2."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR3    ,   51, "Write DR3."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR4    ,   52, "Write DR4."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR5    ,   53, "Write DR5."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR6    ,   54, "Write DR6."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR7    ,   55, "Write DR7."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR8    ,   56, "Write DR8."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR9    ,   57, "Write DR9."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR10   ,   58, "Write DR10."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR11   ,   59, "Write DR11."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR12   ,   60, "Write DR12."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR13   ,   61, "Write DR13."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR14   ,   62, "Write DR14."),
-    EXIT_REASON(SVM_EXIT_WRITE_DR15   ,   63, "Write DR15."),
-    EXIT_REASON(SVM_EXIT_XCPT_0       ,   64, "Exception 0  (#DE)."),
-    EXIT_REASON(SVM_EXIT_XCPT_1       ,   65, "Exception 1  (#DB)."),
-    EXIT_REASON(SVM_EXIT_XCPT_2       ,   66, "Exception 2  (#NMI)."),
-    EXIT_REASON(SVM_EXIT_XCPT_3       ,   67, "Exception 3  (#BP)."),
-    EXIT_REASON(SVM_EXIT_XCPT_4       ,   68, "Exception 4  (#OF)."),
-    EXIT_REASON(SVM_EXIT_XCPT_5       ,   69, "Exception 5  (#BR)."),
-    EXIT_REASON(SVM_EXIT_XCPT_6       ,   70, "Exception 6  (#UD)."),
-    EXIT_REASON(SVM_EXIT_XCPT_7       ,   71, "Exception 7  (#NM)."),
-    EXIT_REASON(SVM_EXIT_XCPT_8       ,   72, "Exception 8  (#DF)."),
-    EXIT_REASON(SVM_EXIT_XCPT_9       ,   73, "Exception 9  (#CO_SEG_OVERRUN)."),
-    EXIT_REASON(SVM_EXIT_XCPT_10      ,   74, "Exception 10 (#TS)."),
-    EXIT_REASON(SVM_EXIT_XCPT_11      ,   75, "Exception 11 (#NP)."),
-    EXIT_REASON(SVM_EXIT_XCPT_12      ,   76, "Exception 12 (#SS)."),
-    EXIT_REASON(SVM_EXIT_XCPT_13      ,   77, "Exception 13 (#GP)."),
-    EXIT_REASON(SVM_EXIT_XCPT_14      ,   78, "Exception 14 (#PF)."),
-    EXIT_REASON(SVM_EXIT_XCPT_15      ,   79, "Exception 15 (0x0f)."),
-    EXIT_REASON(SVM_EXIT_XCPT_16      ,   80, "Exception 16 (#MF)."),
-    EXIT_REASON(SVM_EXIT_XCPT_17      ,   81, "Exception 17 (#AC)."),
-    EXIT_REASON(SVM_EXIT_XCPT_18      ,   82, "Exception 18 (#MC)."),
-    EXIT_REASON(SVM_EXIT_XCPT_19      ,   83, "Exception 19 (#XF)."),
-    EXIT_REASON(SVM_EXIT_XCPT_20      ,   84, "Exception 20 (#VE)."),
-    EXIT_REASON(SVM_EXIT_XCPT_21      ,   85, "Exception 22 (0x15)."),
-    EXIT_REASON(SVM_EXIT_XCPT_22      ,   86, "Exception 22 (0x16)."),
-    EXIT_REASON(SVM_EXIT_XCPT_23      ,   87, "Exception 23 (0x17)."),
-    EXIT_REASON(SVM_EXIT_XCPT_24      ,   88, "Exception 24 (0x18)."),
-    EXIT_REASON(SVM_EXIT_XCPT_25      ,   89, "Exception 25 (0x19)."),
-    EXIT_REASON(SVM_EXIT_XCPT_26      ,   90, "Exception 26 (0x1a)."),
-    EXIT_REASON(SVM_EXIT_XCPT_27      ,   91, "Exception 27 (0x1b)."),
-    EXIT_REASON(SVM_EXIT_XCPT_28      ,   92, "Exception 28 (0x1c)."),
-    EXIT_REASON(SVM_EXIT_XCPT_29      ,   93, "Exception 29 (0x1d)."),
-    EXIT_REASON(SVM_EXIT_XCPT_30      ,   94, "Exception 30 (#SX)."),
-    EXIT_REASON(SVM_EXIT_XCPT_31      ,   95, "Exception 31 (0x1F)."),
-    EXIT_REASON(SVM_EXIT_INTR         ,   96, "Physical maskable interrupt (host)."),
-    EXIT_REASON(SVM_EXIT_NMI          ,   97, "Physical non-maskable interrupt (host)."),
-    EXIT_REASON(SVM_EXIT_SMI          ,   98, "System management interrupt (host)."),
-    EXIT_REASON(SVM_EXIT_INIT         ,   99, "Physical INIT signal (host)."),
-    EXIT_REASON(SVM_EXIT_VINTR        ,  100, "Virtual interrupt-window exit."),
-    EXIT_REASON(SVM_EXIT_CR0_SEL_WRITE,  101, "Selective CR0 Write (to bits other than CR0.TS and CR0.MP)."),
-    EXIT_REASON(SVM_EXIT_IDTR_READ    ,  102, "Read IDTR."),
-    EXIT_REASON(SVM_EXIT_GDTR_READ    ,  103, "Read GDTR."),
-    EXIT_REASON(SVM_EXIT_LDTR_READ    ,  104, "Read LDTR."),
-    EXIT_REASON(SVM_EXIT_TR_READ      ,  105, "Read TR."),
-    EXIT_REASON(SVM_EXIT_IDTR_WRITE   ,  106, "Write IDTR."),
-    EXIT_REASON(SVM_EXIT_GDTR_WRITE   ,  107, "Write GDTR."),
-    EXIT_REASON(SVM_EXIT_LDTR_WRITE   ,  108, "Write LDTR."),
-    EXIT_REASON(SVM_EXIT_TR_WRITE     ,  109, "Write TR."),
-    EXIT_REASON(SVM_EXIT_RDTSC        ,  110, "RDTSC instruction."),
-    EXIT_REASON(SVM_EXIT_RDPMC        ,  111, "RDPMC instruction."),
-    EXIT_REASON(SVM_EXIT_PUSHF        ,  112, "PUSHF instruction."),
-    EXIT_REASON(SVM_EXIT_POPF         ,  113, "POPF instruction."),
-    EXIT_REASON(SVM_EXIT_CPUID        ,  114, "CPUID instruction."),
-    EXIT_REASON(SVM_EXIT_RSM          ,  115, "RSM instruction."),
-    EXIT_REASON(SVM_EXIT_IRET         ,  116, "IRET instruction."),
-    EXIT_REASON(SVM_EXIT_SWINT        ,  117, "Software interrupt (INTn instructions)."),
-    EXIT_REASON(SVM_EXIT_INVD         ,  118, "INVD instruction."),
-    EXIT_REASON(SVM_EXIT_PAUSE        ,  119, "PAUSE instruction."),
-    EXIT_REASON(SVM_EXIT_HLT          ,  120, "HLT instruction."),
-    EXIT_REASON(SVM_EXIT_INVLPG       ,  121, "INVLPG instruction."),
-    EXIT_REASON(SVM_EXIT_INVLPGA      ,  122, "INVLPGA instruction."),
-    EXIT_REASON(SVM_EXIT_IOIO         ,  123, "IN/OUT/INS/OUTS instruction."),
-    EXIT_REASON(SVM_EXIT_MSR          ,  124, "RDMSR or WRMSR access to protected MSR."),
-    EXIT_REASON(SVM_EXIT_TASK_SWITCH  ,  125, "Task switch."),
-    EXIT_REASON(SVM_EXIT_FERR_FREEZE  ,  126, "FERR Freeze; CPU frozen in an x87/mmx instruction waiting for interrupt."),
-    EXIT_REASON(SVM_EXIT_SHUTDOWN     ,  127, "Shutdown."),
-    EXIT_REASON(SVM_EXIT_VMRUN        ,  128, "VMRUN instruction."),
-    EXIT_REASON(SVM_EXIT_VMMCALL      ,  129, "VMCALL instruction."),
-    EXIT_REASON(SVM_EXIT_VMLOAD       ,  130, "VMLOAD instruction."),
-    EXIT_REASON(SVM_EXIT_VMSAVE       ,  131, "VMSAVE instruction."),
-    EXIT_REASON(SVM_EXIT_STGI         ,  132, "STGI instruction."),
-    EXIT_REASON(SVM_EXIT_CLGI         ,  133, "CLGI instruction."),
-    EXIT_REASON(SVM_EXIT_SKINIT       ,  134, "SKINIT instruction."),
-    EXIT_REASON(SVM_EXIT_RDTSCP       ,  135, "RDTSCP instruction."),
-    EXIT_REASON(SVM_EXIT_ICEBP        ,  136, "ICEBP instruction."),
-    EXIT_REASON(SVM_EXIT_WBINVD       ,  137, "WBINVD instruction."),
-    EXIT_REASON(SVM_EXIT_MONITOR      ,  138, "MONITOR instruction."),
-    EXIT_REASON(SVM_EXIT_MWAIT        ,  139, "MWAIT instruction."),
-    EXIT_REASON(SVM_EXIT_MWAIT_ARMED  ,  140, "MWAIT instruction when armed."),
-    EXIT_REASON(SVM_EXIT_XSETBV       ,  141, "XSETBV instruction."),
-    EXIT_REASON(SVM_EXIT_RDPRU        ,  142, "RDPRU instruction."),
+    EXIT_REASON(SVM_EXIT_READ_CR0       ,    0, "Read CR0."),
+    EXIT_REASON(SVM_EXIT_READ_CR1       ,    1, "Read CR1."),
+    EXIT_REASON(SVM_EXIT_READ_CR2       ,    2, "Read CR2."),
+    EXIT_REASON(SVM_EXIT_READ_CR3       ,    3, "Read CR3."),
+    EXIT_REASON(SVM_EXIT_READ_CR4       ,    4, "Read CR4."),
+    EXIT_REASON(SVM_EXIT_READ_CR5       ,    5, "Read CR5."),
+    EXIT_REASON(SVM_EXIT_READ_CR6       ,    6, "Read CR6."),
+    EXIT_REASON(SVM_EXIT_READ_CR7       ,    7, "Read CR7."),
+    EXIT_REASON(SVM_EXIT_READ_CR8       ,    8, "Read CR8."),
+    EXIT_REASON(SVM_EXIT_READ_CR9       ,    9, "Read CR9."),
+    EXIT_REASON(SVM_EXIT_READ_CR10      ,   10, "Read CR10."),
+    EXIT_REASON(SVM_EXIT_READ_CR11      ,   11, "Read CR11."),
+    EXIT_REASON(SVM_EXIT_READ_CR12      ,   12, "Read CR12."),
+    EXIT_REASON(SVM_EXIT_READ_CR13      ,   13, "Read CR13."),
+    EXIT_REASON(SVM_EXIT_READ_CR14      ,   14, "Read CR14."),
+    EXIT_REASON(SVM_EXIT_READ_CR15      ,   15, "Read CR15."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR0      ,   16, "Write CR0."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR1      ,   17, "Write CR1."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR2      ,   18, "Write CR2."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR3      ,   19, "Write CR3."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR4      ,   20, "Write CR4."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR5      ,   21, "Write CR5."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR6      ,   22, "Write CR6."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR7      ,   23, "Write CR7."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR8      ,   24, "Write CR8."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR9      ,   25, "Write CR9."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR10     ,   26, "Write CR10."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR11     ,   27, "Write CR11."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR12     ,   28, "Write CR12."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR13     ,   29, "Write CR13."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR14     ,   30, "Write CR14."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR15     ,   31, "Write CR15."),
+    EXIT_REASON(SVM_EXIT_READ_DR0       ,   32, "Read DR0."),
+    EXIT_REASON(SVM_EXIT_READ_DR1       ,   33, "Read DR1."),
+    EXIT_REASON(SVM_EXIT_READ_DR2       ,   34, "Read DR2."),
+    EXIT_REASON(SVM_EXIT_READ_DR3       ,   35, "Read DR3."),
+    EXIT_REASON(SVM_EXIT_READ_DR4       ,   36, "Read DR4."),
+    EXIT_REASON(SVM_EXIT_READ_DR5       ,   37, "Read DR5."),
+    EXIT_REASON(SVM_EXIT_READ_DR6       ,   38, "Read DR6."),
+    EXIT_REASON(SVM_EXIT_READ_DR7       ,   39, "Read DR7."),
+    EXIT_REASON(SVM_EXIT_READ_DR8       ,   40, "Read DR8."),
+    EXIT_REASON(SVM_EXIT_READ_DR9       ,   41, "Read DR9."),
+    EXIT_REASON(SVM_EXIT_READ_DR10      ,   42, "Read DR10."),
+    EXIT_REASON(SVM_EXIT_READ_DR11      ,   43, "Read DR11"),
+    EXIT_REASON(SVM_EXIT_READ_DR12      ,   44, "Read DR12."),
+    EXIT_REASON(SVM_EXIT_READ_DR13      ,   45, "Read DR13."),
+    EXIT_REASON(SVM_EXIT_READ_DR14      ,   46, "Read DR14."),
+    EXIT_REASON(SVM_EXIT_READ_DR15      ,   47, "Read DR15."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR0      ,   48, "Write DR0."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR1      ,   49, "Write DR1."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR2      ,   50, "Write DR2."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR3      ,   51, "Write DR3."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR4      ,   52, "Write DR4."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR5      ,   53, "Write DR5."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR6      ,   54, "Write DR6."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR7      ,   55, "Write DR7."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR8      ,   56, "Write DR8."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR9      ,   57, "Write DR9."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR10     ,   58, "Write DR10."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR11     ,   59, "Write DR11."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR12     ,   60, "Write DR12."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR13     ,   61, "Write DR13."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR14     ,   62, "Write DR14."),
+    EXIT_REASON(SVM_EXIT_WRITE_DR15     ,   63, "Write DR15."),
+    EXIT_REASON(SVM_EXIT_XCPT_0         ,   64, "Exception 0  (#DE)."),
+    EXIT_REASON(SVM_EXIT_XCPT_1         ,   65, "Exception 1  (#DB)."),
+    EXIT_REASON(SVM_EXIT_XCPT_2         ,   66, "Exception 2  (#NMI)."),
+    EXIT_REASON(SVM_EXIT_XCPT_3         ,   67, "Exception 3  (#BP)."),
+    EXIT_REASON(SVM_EXIT_XCPT_4         ,   68, "Exception 4  (#OF)."),
+    EXIT_REASON(SVM_EXIT_XCPT_5         ,   69, "Exception 5  (#BR)."),
+    EXIT_REASON(SVM_EXIT_XCPT_6         ,   70, "Exception 6  (#UD)."),
+    EXIT_REASON(SVM_EXIT_XCPT_7         ,   71, "Exception 7  (#NM)."),
+    EXIT_REASON(SVM_EXIT_XCPT_8         ,   72, "Exception 8  (#DF)."),
+    EXIT_REASON(SVM_EXIT_XCPT_9         ,   73, "Exception 9  (#CO_SEG_OVERRUN)."),
+    EXIT_REASON(SVM_EXIT_XCPT_10        ,   74, "Exception 10 (#TS)."),
+    EXIT_REASON(SVM_EXIT_XCPT_11        ,   75, "Exception 11 (#NP)."),
+    EXIT_REASON(SVM_EXIT_XCPT_12        ,   76, "Exception 12 (#SS)."),
+    EXIT_REASON(SVM_EXIT_XCPT_13        ,   77, "Exception 13 (#GP)."),
+    EXIT_REASON(SVM_EXIT_XCPT_14        ,   78, "Exception 14 (#PF)."),
+    EXIT_REASON(SVM_EXIT_XCPT_15        ,   79, "Exception 15 (0x0f)."),
+    EXIT_REASON(SVM_EXIT_XCPT_16        ,   80, "Exception 16 (#MF)."),
+    EXIT_REASON(SVM_EXIT_XCPT_17        ,   81, "Exception 17 (#AC)."),
+    EXIT_REASON(SVM_EXIT_XCPT_18        ,   82, "Exception 18 (#MC)."),
+    EXIT_REASON(SVM_EXIT_XCPT_19        ,   83, "Exception 19 (#XF)."),
+    EXIT_REASON(SVM_EXIT_XCPT_20        ,   84, "Exception 20 (#VE)."),
+    EXIT_REASON(SVM_EXIT_XCPT_21        ,   85, "Exception 22 (0x15)."),
+    EXIT_REASON(SVM_EXIT_XCPT_22        ,   86, "Exception 22 (0x16)."),
+    EXIT_REASON(SVM_EXIT_XCPT_23        ,   87, "Exception 23 (0x17)."),
+    EXIT_REASON(SVM_EXIT_XCPT_24        ,   88, "Exception 24 (0x18)."),
+    EXIT_REASON(SVM_EXIT_XCPT_25        ,   89, "Exception 25 (0x19)."),
+    EXIT_REASON(SVM_EXIT_XCPT_26        ,   90, "Exception 26 (0x1a)."),
+    EXIT_REASON(SVM_EXIT_XCPT_27        ,   91, "Exception 27 (0x1b)."),
+    EXIT_REASON(SVM_EXIT_XCPT_28        ,   92, "Exception 28 (0x1c)."),
+    EXIT_REASON(SVM_EXIT_XCPT_29        ,   93, "Exception 29 (0x1d)."),
+    EXIT_REASON(SVM_EXIT_XCPT_30        ,   94, "Exception 30 (#SX)."),
+    EXIT_REASON(SVM_EXIT_XCPT_31        ,   95, "Exception 31 (0x1F)."),
+    EXIT_REASON(SVM_EXIT_INTR           ,   96, "Physical maskable interrupt (host)."),
+    EXIT_REASON(SVM_EXIT_NMI            ,   97, "Physical non-maskable interrupt (host)."),
+    EXIT_REASON(SVM_EXIT_SMI            ,   98, "System management interrupt (host)."),
+    EXIT_REASON(SVM_EXIT_INIT           ,   99, "Physical INIT signal (host)."),
+    EXIT_REASON(SVM_EXIT_VINTR          ,  100, "Virtual interrupt-window exit."),
+    EXIT_REASON(SVM_EXIT_CR0_SEL_WRITE  ,  101, "Selective CR0 Write (to bits other than CR0.TS and CR0.MP)."),
+    EXIT_REASON(SVM_EXIT_IDTR_READ      ,  102, "Read IDTR."),
+    EXIT_REASON(SVM_EXIT_GDTR_READ      ,  103, "Read GDTR."),
+    EXIT_REASON(SVM_EXIT_LDTR_READ      ,  104, "Read LDTR."),
+    EXIT_REASON(SVM_EXIT_TR_READ        ,  105, "Read TR."),
+    EXIT_REASON(SVM_EXIT_IDTR_WRITE     ,  106, "Write IDTR."),
+    EXIT_REASON(SVM_EXIT_GDTR_WRITE     ,  107, "Write GDTR."),
+    EXIT_REASON(SVM_EXIT_LDTR_WRITE     ,  108, "Write LDTR."),
+    EXIT_REASON(SVM_EXIT_TR_WRITE       ,  109, "Write TR."),
+    EXIT_REASON(SVM_EXIT_RDTSC          ,  110, "RDTSC instruction."),
+    EXIT_REASON(SVM_EXIT_RDPMC          ,  111, "RDPMC instruction."),
+    EXIT_REASON(SVM_EXIT_PUSHF          ,  112, "PUSHF instruction."),
+    EXIT_REASON(SVM_EXIT_POPF           ,  113, "POPF instruction."),
+    EXIT_REASON(SVM_EXIT_CPUID          ,  114, "CPUID instruction."),
+    EXIT_REASON(SVM_EXIT_RSM            ,  115, "RSM instruction."),
+    EXIT_REASON(SVM_EXIT_IRET           ,  116, "IRET instruction."),
+    EXIT_REASON(SVM_EXIT_SWINT          ,  117, "Software interrupt (INTn instructions)."),
+    EXIT_REASON(SVM_EXIT_INVD           ,  118, "INVD instruction."),
+    EXIT_REASON(SVM_EXIT_PAUSE          ,  119, "PAUSE instruction."),
+    EXIT_REASON(SVM_EXIT_HLT            ,  120, "HLT instruction."),
+    EXIT_REASON(SVM_EXIT_INVLPG         ,  121, "INVLPG instruction."),
+    EXIT_REASON(SVM_EXIT_INVLPGA        ,  122, "INVLPGA instruction."),
+    EXIT_REASON(SVM_EXIT_IOIO           ,  123, "IN/OUT/INS/OUTS instruction."),
+    EXIT_REASON(SVM_EXIT_MSR            ,  124, "RDMSR or WRMSR access to protected MSR."),
+    EXIT_REASON(SVM_EXIT_TASK_SWITCH    ,  125, "Task switch."),
+    EXIT_REASON(SVM_EXIT_FERR_FREEZE    ,  126, "FERR Freeze; CPU frozen in an x87/mmx instruction waiting for interrupt."),
+    EXIT_REASON(SVM_EXIT_SHUTDOWN       ,  127, "Shutdown."),
+    EXIT_REASON(SVM_EXIT_VMRUN          ,  128, "VMRUN instruction."),
+    EXIT_REASON(SVM_EXIT_VMMCALL        ,  129, "VMCALL instruction."),
+    EXIT_REASON(SVM_EXIT_VMLOAD         ,  130, "VMLOAD instruction."),
+    EXIT_REASON(SVM_EXIT_VMSAVE         ,  131, "VMSAVE instruction."),
+    EXIT_REASON(SVM_EXIT_STGI           ,  132, "STGI instruction."),
+    EXIT_REASON(SVM_EXIT_CLGI           ,  133, "CLGI instruction."),
+    EXIT_REASON(SVM_EXIT_SKINIT         ,  134, "SKINIT instruction."),
+    EXIT_REASON(SVM_EXIT_RDTSCP         ,  135, "RDTSCP instruction."),
+    EXIT_REASON(SVM_EXIT_ICEBP          ,  136, "ICEBP instruction."),
+    EXIT_REASON(SVM_EXIT_WBINVD         ,  137, "WBINVD instruction."),
+    EXIT_REASON(SVM_EXIT_MONITOR        ,  138, "MONITOR instruction."),
+    EXIT_REASON(SVM_EXIT_MWAIT          ,  139, "MWAIT instruction."),
+    EXIT_REASON(SVM_EXIT_MWAIT_ARMED    ,  140, "MWAIT instruction when armed."),
+    EXIT_REASON(SVM_EXIT_XSETBV         ,  141, "XSETBV instruction."),
+    EXIT_REASON(SVM_EXIT_RDPRU          ,  142, "RDPRU instruction."),
+    EXIT_REASON(SVM_EXIT_WRITE_EFER_TRAP,  143, "Write EFER (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR0_TRAP ,  144, "Write CR0 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR1_TRAP ,  145, "Write CR1 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR2_TRAP ,  146, "Write CR2 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR3_TRAP ,  147, "Write CR3 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR4_TRAP ,  148, "Write CR4 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR5_TRAP ,  149, "Write CR5 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR6_TRAP ,  150, "Write CR6 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR7_TRAP ,  151, "Write CR7 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR8_TRAP ,  152, "Write CR8 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR9_TRAP ,  153, "Write CR9 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR10_TRAP,  154, "Write CR10 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR11_TRAP,  155, "Write CR11 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR12_TRAP,  156, "Write CR12 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR13_TRAP,  157, "Write CR13 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR14_TRAP,  158, "Write CR14 (trap-like)."),
+    EXIT_REASON(SVM_EXIT_WRITE_CR15_TRAP,  159, "Write CR15 (trap-like)."),
+    EXIT_REASON_NIL()                   ,
+    EXIT_REASON_NIL()                   ,
+    EXIT_REASON_NIL()                   ,
+    EXIT_REASON(SVM_EXIT_MCOMMIT        ,  163, "MCOMMIT instruction."),
 };
 /** Array index of the last valid AMD-V exit reason. */
-#define MAX_EXITREASON_AMDV              142
+#define MAX_EXITREASON_AMDV              163
 
 /** Special exit reasons not covered in the array above. */
