Index: /soft/giet_vm/giet_common/utils.c
===================================================================
--- /soft/giet_vm/giet_common/utils.c	(revision 816)
+++ /soft/giet_vm/giet_common/utils.c	(revision 817)
@@ -80,5 +80,11 @@
     return ret;
 }
-
+////////////////////////////
+void _set_proctime( unsigned int val )
+{
+    asm volatile ( "mtc0     $0,     $9      \n"
+                   :
+                   :"r" (val));
+}
 /////////////////////////////////////////////
 void _it_disable( unsigned int * save_sr_ptr) 
@@ -119,4 +125,8 @@
 }
 
+void _cpu_sync()
+{
+    asm volatile("sync" ::: "memory");
+}
 
 ///////////////////////////////////////////////////////////////////////////
@@ -585,4 +595,16 @@
                   : "r" (delay)
                   : "$3" ); 
+}
+
+/////////////////////////////////////
+void _sleep( unsigned int cycles )
+{
+    unsigned int delay = cycles;
+    asm volatile( ".set noreorder                 \n"
+                  "1:                             \n"
+                  "bnez  %0,   1b                 \n"
+                  "addi  %0,   %0,  -1            \n"
+                  ".set reorder                   \n"
+                  : "+r" (delay) );
 }
 
Index: /soft/giet_vm/giet_common/utils.h
===================================================================
--- /soft/giet_vm/giet_common/utils.h	(revision 816)
+++ /soft/giet_vm/giet_common/utils.h	(revision 817)
@@ -56,4 +56,6 @@
 extern unsigned int _get_proctime(void);
 
+extern void         _set_proctime( unsigned int value );
+
 extern void         _it_disable( unsigned int* save_sr_ptr );
 
@@ -63,4 +65,6 @@
 
 extern void         _set_sr(unsigned int value);
+
+extern void         _cpu_sync();
 
 ///////////////////////////////////////////////////////////////////////////
@@ -154,4 +158,6 @@
 extern void         _break( char* str);
 
+extern void         _sleep( unsigned int cycles );
+
 extern unsigned int _strlen( char* str);
 
