Index: /soft/giet_vm/giet_kernel/exc_handler.c
===================================================================
--- /soft/giet_vm/giet_kernel/exc_handler.c	(revision 801)
+++ /soft/giet_vm/giet_kernel/exc_handler.c	(revision 802)
@@ -76,4 +76,6 @@
                                       "illegal coproc access  ",
                                       "arithmetic overflow    " };
+/*
+    Modify format to have one single printf and avoid interleaving 'AG)
 
     _printf("\n[GIET] Exception for thread %x on processor[%d,%d,%d] at cycle %d\n"
@@ -100,5 +102,29 @@
     _printf("gp_28 %X\tsp_29 %X\tfp_30 %X\tra_31 %X\n\n",
             regs_table[28], regs_table[29], regs_table[30], regs_table[31]);
-
+*/
+    _printf("\n[GIET] Exception for thread %x on processor[%d,%d,%d] at cycle %d\n"
+            "  type : %s\n"
+            "CR    %X\tEPC   %X\tSR    %X\tBVAR  %X\n"
+            "HI    %X\tLO    %X\n"
+            "zero  %X\tat_1  %X\tv0_2  %X\tv1_3  %X\n"
+            "a0_4  %X\ta1_5  %X\ta2_6  %X\ta3_7  %X\n"
+            "t0_8  %X\tt1_9  %X\tt2_10 %X\tt3_11 %X\n"
+            "t4_12 %X\tt5_13 %X\tt6_14 %X\tt7_15 %X\n"
+            "s0_16 %X\ts1_17 %X\ts2_18 %X\ts3_19 %X\n"
+            "s4_20 %X\ts5_21 %X\ts6_22 %X\ts7_23 %X\n"
+            "t8_24 %X\tt9_25 %X\tk0_26 %s\tk1_27 %s\n"
+            "gp_28 %X\tsp_29 %X\tfp_30 %X\tra_31 %X\n",
+            trdid , x , y , p , _get_proctime(),
+            mips32_exc_str[type],
+            regs_table[33] , regs_table[32] , regs_table[34] , regs_table[37],
+            regs_table[36] , regs_table[35] ,
+            0              , regs_table[1]  , regs_table[2]  , regs_table[3] , 
+            regs_table[4]  , regs_table[5]  , regs_table[6]  , regs_table[7] ,
+            regs_table[8]  , regs_table[9]  , regs_table[10] , regs_table[11],
+            regs_table[12] , regs_table[13] , regs_table[14] , regs_table[15],
+            regs_table[16] , regs_table[17] , regs_table[18] , regs_table[19],
+            regs_table[20] , regs_table[21] , regs_table[22] , regs_table[23],
+            regs_table[24] , regs_table[25] , "undefined "   , "undefined "  ,
+            regs_table[28] , regs_table[29] , regs_table[30] , regs_table[31] );
 
     // register KILL signal
Index: /soft/giet_vm/giet_kernel/giet.s
===================================================================
--- /soft/giet_vm/giet_kernel/giet.s	(revision 801)
+++ /soft/giet_vm/giet_kernel/giet.s	(revision 802)
@@ -43,51 +43,56 @@
     addiu   $26,    $0,     0x20
     beq     $27,    $26,    do_jump     /* jump if syscall */
-    /* Other exception: saving registers for future display */
+
+/*  
+ * exception: save registers into stack for future display by exception handler  
+ */
+
     addiu   $27,    $29,    -38*4
-    sw      $29,    (29*4)($27)
+    sw      $29,    (29*4)($27)       /* save $29 */
     or      $29,    $27,    $0
     
     .set noat
-    sw      $1,     (1*4)($29)
+    sw      $1,     (1*4)($29)        /* save $1 */
     .set at
-    sw      $2,     (2*4)($29)
-    sw      $3,     (3*4)($29)
-    sw      $4,     (4*4)($29)
-    sw      $5,     (5*4)($29)
-    sw      $6,     (6*4)($29)
-    sw      $7,     (7*4)($29)
-    sw      $8,     (8*4)($29)
-    sw      $9,     (9*4)($29)
-    sw      $10,    (10*4)($29)
-    sw      $11,    (11*4)($29)
-    sw      $12,    (12*4)($29)
-    sw      $13,    (13*4)($29)
-    sw      $14,    (14*4)($29)
-    sw      $15,    (15*4)($29)
-    sw      $24,    (24*4)($29)
-    sw      $25,    (25*4)($29)
-    sw      $16,    (16*4)($29)
-    mfc0    $16,    $14               /* Read EPC */
-    sw      $17,    (17*4)($29)
-    mfc0    $17,    $13               /* read CR (used later) */
-    sw      $18,    (18*4)($29)
-    mfc0    $18,    $12               /* Read current SR (used later) */
-    sw      $19,    (19*4)($29)
-    sw      $20,    (20*4)($29)
-    sw      $21,    (21*4)($29)
-    sw      $22,    (22*4)($29)
-    sw      $23,    (23*4)($29)
-    sw      $30,    (30*4)($29)
-    sw      $28,    (28*4)($29)
-    mflo    $14                       /* read LO */
-    mfhi    $15                       /* read HI */
-    sw      $31,    (31*4)($29)       /* save RA */
+    sw      $2,     (2*4)($29)        /* save $2 */
+    sw      $3,     (3*4)($29)        /* save $3 */
+    sw      $4,     (4*4)($29)        /* save $4 */
+    sw      $5,     (5*4)($29)        /* save $5 */
+    sw      $6,     (6*4)($29)        /* save $6 */
+    sw      $7,     (7*4)($29)        /* save $7 */
+    sw      $8,     (8*4)($29)        /* save $8 */
+    sw      $9,     (9*4)($29)        /* save $9 */
+    sw      $10,    (10*4)($29)       /* save $10 */
+    sw      $11,    (11*4)($29)       /* save $11 */
+    sw      $12,    (12*4)($29)       /* save $12 */
+    sw      $13,    (13*4)($29)       /* save $13 */
+    sw      $14,    (14*4)($29)       /* save $14 */
+    sw      $15,    (15*4)($29)       /* save $15 */
+    sw      $16,    (16*4)($29)       /* save $16 */
+    sw      $17,    (17*4)($29)       /* save $17 */
+    sw      $18,    (18*4)($29)       /* save $18 */
+    sw      $19,    (19*4)($29)       /* save $19 */
+    sw      $20,    (20*4)($29)       /* save $20 */
+    sw      $21,    (21*4)($29)       /* save $21 */
+    sw      $22,    (22*4)($29)       /* save $22 */
+    sw      $23,    (23*4)($29)       /* save $23 */
+    sw      $24,    (24*4)($29)       /* save $24 */
+    sw      $25,    (25*4)($29)       /* save $25 */
+    sw      $28,    (28*4)($29)       /* save $28 */
+    sw      $30,    (30*4)($29)       /* save $30 */
+    sw      $31,    (31*4)($29)       /* save $31 */
+    mflo    $14                       /* LO */
+    mfhi    $15                       /* HI */
+    mfc0    $16,    $14               /* EPC */
+    mfc0    $17,    $13               /* CR */
+    mfc0    $18,    $12               /* SR */
+    mfc0    $19,    $8                /* BVAR */
+    sw      $14,    (35*4)($29)       /* save LO */
+    sw      $15,    (36*4)($29)       /* save HI */
     sw      $16,    (32*4)($29)       /* Save EPC */
     sw      $17,    (33*4)($29)       /* Save CR */
     sw      $18,    (34*4)($29)       /* Save SR */
-    sw      $14,    (35*4)($29)       /* save LO */
-    sw      $15,    (36*4)($29)       /* save HI */
-    or      $4,     $0, $27 
-    
+    sw      $19,    (37*4)($29)       /* save BVAR */
+    or      $4,     $0, $27           /* $4 <= regs_table */
     
 do_jump:
