Index: trunk/hal/tsar_mips32/core/hal_special.c
===================================================================
--- trunk/hal/tsar_mips32/core/hal_special.c	(revision 624)
+++ trunk/hal/tsar_mips32/core/hal_special.c	(revision 625)
@@ -40,4 +40,15 @@
 extern cxy_t local_cxy;
 extern void  hal_kentry_enter( void );
+
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function registers the address of the
+// hal_kentry_enter() function in the MIPS32 cp0_ebase register.
+////////////////////////////////////////////////////////////////////////////////
+void hal_set_kentry( void )
+{
+    uint32_t kentry = (uint32_t)(&hal_kentry_enter);
+
+    asm volatile("mtc0   %0,  $15,  1" : : "r" (kentry) );
+}
 
 /////////////////////////////////////////////////////////////////////////////////
@@ -48,10 +59,9 @@
 void hal_mmu_init( gpt_t * gpt )
 {
-
-    // set PT1 base address in mmu_ptpr register
+    // set PT1 base address in cp2_ptpr register
     uint32_t ptpr = (((uint32_t)gpt->ptr) >> 13) | (local_cxy << 19);
     asm volatile ( "mtc2   %0,   $0         \n" : : "r" (ptpr) );
 
-    // set ITLB | ICACHE | DCACHE bits in mmu_mode register 
+    // set ITLB | ICACHE | DCACHE bits in cp2_mode register 
     asm volatile ( "ori    $26,  $0,  0xB   \n" 
                    "mtc2   $26,  $1         \n" );
@@ -59,15 +69,20 @@
 
 ////////////////////////////////////////////////////////////////////////////////
-// For the TSAR architecture, this function registers the address of the
-// hal_kentry_enter() function in the MIPS32 cp0_ebase register.
-////////////////////////////////////////////////////////////////////////////////
-void hal_set_kentry( void )
-{
-    uint32_t kentry = (uint32_t)(&hal_kentry_enter);
-
-    asm volatile("mtc0   %0,  $15,  1" : : "r" (kentry) );
-}
-
-////////////////////////////////
+// For the TSAR architecture, this function returns the current value 
+// of the 32 bits c0_sr register
+////////////////////////////////////////////////////////////////////////////////
+inline reg_t hal_get_sr( void )
+{
+    reg_t sr;
+
+	asm volatile ("mfc0    %0,    $12" : "=&r" (sr));
+
+	return sr;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function returns the 10 LSB bits 
+// of the 32 bits c0_ebase register : Y (4 bits) | Y (4 bits) | LID (2 bits)
+////////////////////////////////////////////////////////////////////////////////
 inline gid_t hal_get_gid( void )
 {
@@ -79,5 +94,8 @@
 }
 
-///////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function returns the current value
+// of the 32 bits c0_count cycle counter.
+////////////////////////////////////////////////////////////////////////////////
 inline reg_t hal_time_stamp( void )
 {
@@ -87,14 +105,4 @@
 
     return count;
-}
-
-///////////////////////////////
-inline reg_t hal_get_sr( void )
-{
-    reg_t sr;
-
-	asm volatile ("mfc0    %0,    $12" : "=&r" (sr));
-
-	return sr;
 }
 
@@ -131,5 +139,8 @@
 }
 
-///////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function returns the current value
+// of the 32 bits c0_th register.
+////////////////////////////////////////////////////////////////////////////////
 inline struct thread_s * hal_get_current_thread( void )
 {
@@ -141,5 +152,8 @@
 }
 
-///////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function set a new value
+// to the 32 bits c0_th register.
+////////////////////////////////////////////////////////////////////////////////
 void hal_set_current_thread( struct thread_s * thread )
 { 
@@ -182,6 +196,9 @@
 }
 
-///////////////////////////
-uint32_t hal_get_sp( void )
+////////////////////////////////////////////////////////////////////////////////
+// For the TSAR architecture, this function returns the current value
+// of the 32 bits sp_29 register.
+////////////////////////////////////////////////////////////////////////////////
+reg_t hal_get_sp( void )
 {
 	register uint32_t sp;
@@ -190,27 +207,4 @@
   
 	return sp;
-}
-
-/////////////////////////////////////
-uint32_t hal_set_sp( void * new_val )
-{
-	register uint32_t sp;
-  
-	asm volatile
-	( "or    %0,   $0,      $29   \n"
-	  "or    $29,  $0,      %1    \n"
-	  : "=&r" (sp) : "r" (new_val)  );
-  
-	return sp;
-}
-
-///////////////////////////
-uint32_t hal_get_ra( void )
-{
-	register uint32_t ra;
-  
-	asm volatile ("or    %0,   $0,   $31" : "=&r" (ra));
-  
-	return ra;
 }
 
