early_fault:
        cld
 #ifdef CONFIG_PRINTK
+       pusha
        movl $(__KERNEL_DS),%eax
        movl %eax,%ds
        movl %eax,%es
        .asciz "Unknown interrupt or fault at EIP %p %p %p\n"
 
 fault_msg:
-       .ascii "Int %d: CR2 %p  err %p  EIP %p  CS %p  flags %p\n"
-       .asciz "Stack: %p %p %p %p %p %p %p %p\n"
+       .ascii                                                          \
+/* fault info: */      "BUG: Int %d: CR2 %p\n"                         \
+/* pusha regs: */      "     EDI %p  ESI %p  EBP %p  ESP %p\n"         \
+                       "     EBX %p  EDX %p  ECX %p  EAX %p\n"         \
+/* fault frame: */     "     err %p  EIP %p   CS %p  flg %p\n"         \
+                                                                       \
+                       "Stack: %p %p %p %p %p %p %p %p\n"              \
+                       "       %p %p %p %p %p %p %p %p\n"              \
+                       "       %p %p %p %p %p %p %p %p\n"
 
 #include "../../x86/xen/xen-head.S"