Index: /trunk/softs/test_llsc/scripts/LLSCTestGenerator/Program.hpp
===================================================================
--- /trunk/softs/test_llsc/scripts/LLSCTestGenerator/Program.hpp	(revision 570)
+++ /trunk/softs/test_llsc/scripts/LLSCTestGenerator/Program.hpp	(revision 571)
@@ -89,4 +89,5 @@
       res << "   tab = (int *) SRL_MEMSPACE_ADDR(memspace);" << endl;
       res << "   srl_barrier_t barrier = SRL_GET_BARRIER(barrier);" << endl;
+      res << "   srl_barrier_t barrier2 = SRL_GET_BARRIER(barrier2);" << endl;
       res << endl;
       res << "   // Initialisation du tableau" << endl;
@@ -99,5 +100,5 @@
       res << "   run0();" << endl;
       res << endl;
-      res << "   barrier_wait(barrier);" << endl;
+      res << "   barrier_wait(barrier2);" << endl;
       res << endl;
       res << "   for (i = 0; i < " << tab_size << "; i++) {" << endl;
@@ -158,4 +159,5 @@
       res << "   tab = (int *) SRL_MEMSPACE_ADDR(memspace);" << endl;
       res << "   srl_barrier_t barrier = SRL_GET_BARRIER(barrier);" << endl;
+      res << "   srl_barrier_t barrier2 = SRL_GET_BARRIER(barrier2);" << endl;
       res << "   int thread_id = SRL_GET_CONST(id);" << endl;
       res << endl;
@@ -174,5 +176,5 @@
       res << "   }" << endl;
       res << endl;
-      res << "   barrier_wait(barrier);" << endl;
+      res << "   barrier_wait(barrier2);" << endl;
       res << endl;
       res << "   srl_exit();" << endl;
Index: /trunk/softs/test_llsc/scripts/functions.c
===================================================================
--- /trunk/softs/test_llsc/scripts/functions.c	(revision 570)
+++ /trunk/softs/test_llsc/scripts/functions.c	(revision 571)
@@ -7,4 +7,5 @@
       "move $16, %0                   \n"
       "giet_lock_try :                \n"
+      "lw   $2,    0($16)             \n"
       "ll   $2,    0($16)             \n"
       "bnez $2,    giet_lock_try      \n"
Index: /trunk/softs/test_llsc/scripts/run_simus.py
===================================================================
--- /trunk/softs/test_llsc/scripts/run_simus.py	(revision 570)
+++ /trunk/softs/test_llsc/scripts/run_simus.py	(revision 571)
@@ -23,5 +23,5 @@
 nb_locks = 20
 nb_max_incr = 2000
-nb_procs = 4
+nb_procs = 64
 
 
@@ -105,6 +105,6 @@
    # Quit if results obtained by simulation are incorrect
    print "diff", term_filename, os.path.join(data_dir, res_natif)
-   output = subprocess.Popen([ 'diff', term_filename, os.path.join(data_dir, res_natif) ]).communicate()[0]
-   if output != None:
+   output = subprocess.Popen([ 'diff', term_filename, os.path.join(data_dir, res_natif) ], stdout = subprocess.PIPE).communicate()[0]
+   if output != "":
       break;
 
Index: /trunk/softs/test_llsc/scripts/test_llsc.py
===================================================================
--- /trunk/softs/test_llsc/scripts/test_llsc.py	(revision 570)
+++ /trunk/softs/test_llsc/scripts/test_llsc.py	(revision 571)
@@ -15,5 +15,5 @@
 cluster_x = int(sys.argv[1])
 cluster_y = int(sys.argv[2])
-memspace_size = int(sys.argv[3])
+memspace_size = int(sys.argv[3]) * 4
 
 nb_procs = 4
@@ -27,4 +27,5 @@
             'table':   MemspacePort(),
             'barrier': BarrierPort(),
+            'barrier2': BarrierPort(),
         },
         impls = [
@@ -44,4 +45,5 @@
             'table':   MemspacePort(),
             'barrier': BarrierPort(),
+            'barrier2': BarrierPort(),
             'id' : ConstPort(),
         },
@@ -57,4 +59,5 @@
 
 barrier = Barrier('barrier')
+barrier2 = Barrier('barrier2')
 memspace = Memspace('memspace', memspace_size)
 
@@ -66,4 +69,5 @@
                'table'   : memspace,
                'barrier' : barrier,
+               'barrier2' : barrier2,
             },
             defines = {} ),
@@ -75,14 +79,12 @@
                'table'   : memspace,
                'barrier' : barrier,
+               'barrier2' : barrier2,
                'id' : i,
             },
             defines = {} ),
 
-
-
-
 tcg = dsx.Tcg('test_llsc', *tasks)
 
-mpr = Mapper(hd ,tcg) 
+mpr = Mapper(hd, tcg) 
 
 mpr.map('task_llsc_main', cluster = 0, proc = 0, stack = "PSEG_RAM_0")
@@ -95,10 +97,12 @@
    mpr.map(const, pseg = 'PSEG_RAM_0')
 
+
 mpr.map('memspace', pseg = "PSEG_RAM_0")
 mpr.map('barrier', pseg = "PSEG_RAM_0")
+mpr.map('barrier2', pseg = "PSEG_RAM_0")
 
 mpr.map(tcg, code = 'PSEG_RAM_0', data = 'PSEG_RAM_0', ptab = "PSEG_RAM_0")
 mpr.map('system', boot = 'PSEG_RAM_0', kernel = 'PSEG_RAM_0', scheduler = True)
 
-mpr.generate(dsx.Giet(outdir = '.', vaddr_replicated_peri_inc = 0x2000, debug = True))
+mpr.generate(dsx.Giet(outdir = '.', vaddr_replicated_peri_inc = 0x2000, debug = False))
 
Index: /trunk/softs/test_llsc/top.cpp
===================================================================
--- /trunk/softs/test_llsc/top.cpp	(revision 570)
+++ /trunk/softs/test_llsc/top.cpp	(revision 571)
@@ -231,5 +231,5 @@
 //////////////////////i/////////////////////////////////////
 
-#define MAX_FROZEN_CYCLES     1000000
+#define MAX_FROZEN_CYCLES     100000000
 
 /////////////////////////////////////////////////////////
@@ -725,5 +725,5 @@
                 loader,
                 frozen_cycles,
-                debug_from   ,
+                debug_from,
                 debug_ok and (cluster(x,y) == debug_memc_id),
                 debug_ok and (cluster(x,y) == debug_proc_id) 
@@ -921,18 +921,22 @@
         p_rsp_signame << "[SIG]PROC_" << x << "_" << y << "_" << l << " RSP" ;
 
-        clusters[x][y]->proc[l]->print_trace();
-        clusters[x][y]->wi_proc[l]->print_trace();
-        clusters[x][y]->signal_vci_ini_proc[l].print_trace(proc_signame.str());
-        clusters[x][y]->signal_dspin_p2m_proc[l].print_trace(p2m_signame.str());
-        clusters[x][y]->signal_dspin_m2p_proc[l].print_trace(m2p_signame.str());
-        clusters[x][y]->signal_dspin_cmd_proc_i[l].print_trace(p_cmd_signame.str());
-        clusters[x][y]->signal_dspin_rsp_proc_i[l].print_trace(p_rsp_signame.str());
-
-        clusters[x][y]->xbar_rsp_d->print_trace();
-        clusters[x][y]->xbar_cmd_d->print_trace();
-        clusters[x][y]->signal_dspin_cmd_l2g_d.print_trace("[SIG]L2G CMD");
-        clusters[x][y]->signal_dspin_cmd_g2l_d.print_trace("[SIG]G2L CMD");
-        clusters[x][y]->signal_dspin_rsp_l2g_d.print_trace("[SIG]L2G RSP");
-        clusters[x][y]->signal_dspin_rsp_g2l_d.print_trace("[SIG]G2L RSP");
+        for (int _x = 0, _y = 0; _x != XMAX; (_y == YMAX - 1 ? _x++, _y = 0 : _y++)) {
+           for (int _l = 0; _l < NB_PROCS_MAX; _l++) {
+              clusters[_x][_y]->proc[_l]->print_trace();
+           }
+        }
+        //clusters[x][y]->wi_proc[l]->print_trace();
+        //clusters[x][y]->signal_vci_ini_proc[l].print_trace(proc_signame.str());
+        //clusters[x][y]->signal_dspin_p2m_proc[l].print_trace(p2m_signame.str());
+        //clusters[x][y]->signal_dspin_m2p_proc[l].print_trace(m2p_signame.str());
+        //clusters[x][y]->signal_dspin_cmd_proc_i[l].print_trace(p_cmd_signame.str());
+        //clusters[x][y]->signal_dspin_rsp_proc_i[l].print_trace(p_rsp_signame.str());
+
+        //clusters[x][y]->xbar_rsp_d->print_trace();
+        //clusters[x][y]->xbar_cmd_d->print_trace();
+        //clusters[x][y]->signal_dspin_cmd_l2g_d.print_trace("[SIG]L2G CMD");
+        //clusters[x][y]->signal_dspin_cmd_g2l_d.print_trace("[SIG]G2L CMD");
+        //clusters[x][y]->signal_dspin_rsp_l2g_d.print_trace("[SIG]L2G RSP");
+        //clusters[x][y]->signal_dspin_rsp_g2l_d.print_trace("[SIG]G2L RSP");
 
         // trace memc[debug_memc_id] 
@@ -954,31 +958,31 @@
 
         clusters[x][y]->memc->print_trace();
-        clusters[x][y]->wt_memc->print_trace();
-        clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str());
-        clusters[x][y]->signal_vci_xram.print_trace(sxram.str());
-        clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str());
-        clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str());
-        clusters[x][y]->signal_dspin_cmd_memc_t.print_trace(m_cmd_signame.str());
-        clusters[x][y]->signal_dspin_rsp_memc_t.print_trace(m_rsp_signame.str());
+        //clusters[x][y]->wt_memc->print_trace();
+        //clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str());
+        //clusters[x][y]->signal_vci_xram.print_trace(sxram.str());
+        //clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str());
+        //clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str());
+        //clusters[x][y]->signal_dspin_cmd_memc_t.print_trace(m_cmd_signame.str());
+        //clusters[x][y]->signal_dspin_rsp_memc_t.print_trace(m_rsp_signame.str());
         
         // trace replicated peripherals
-//        clusters[1][1]->mdma->print_trace();
-//        clusters[1][1]->signal_vci_tgt_mdma.print_trace("[SIG]MDMA_TGT_1_1");
-//        clusters[1][1]->signal_vci_ini_mdma.print_trace("[SIG]MDMA_INI_1_1");
+        //clusters[1][1]->mdma->print_trace();
+        //clusters[1][1]->signal_vci_tgt_mdma.print_trace("[SIG]MDMA_TGT_1_1");
+        //clusters[1][1]->signal_vci_ini_mdma.print_trace("[SIG]MDMA_INI_1_1");
         
 
         // trace external peripherals
-        size_t io_x   = cluster_io_id / YMAX;
-        size_t io_y   = cluster_io_id % YMAX;
+        //size_t io_x   = cluster_io_id / YMAX;
+        //size_t io_y   = cluster_io_id % YMAX;
         
-        clusters[io_x][io_y]->brom->print_trace();
-        clusters[io_x][io_y]->wt_brom->print_trace();
-        clusters[io_x][io_y]->signal_vci_tgt_brom.print_trace("[SIG]BROM");
-        clusters[io_x][io_y]->signal_dspin_cmd_brom_t.print_trace("[SIG]BROM CMD");
-        clusters[io_x][io_y]->signal_dspin_rsp_brom_t.print_trace("[SIG]BROM RSP");
-
-//        clusters[io_x][io_y]->bdev->print_trace();
-//        clusters[io_x][io_y]->signal_vci_tgt_bdev.print_trace("[SIG]BDEV_TGT");
-//        clusters[io_x][io_y]->signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");
+        //clusters[io_x][io_y]->brom->print_trace();
+        //clusters[io_x][io_y]->wt_brom->print_trace();
+        //clusters[io_x][io_y]->signal_vci_tgt_brom.print_trace("[SIG]BROM");
+        //clusters[io_x][io_y]->signal_dspin_cmd_brom_t.print_trace("[SIG]BROM CMD");
+        //clusters[io_x][io_y]->signal_dspin_rsp_brom_t.print_trace("[SIG]BROM RSP");
+
+        //clusters[io_x][io_y]->bdev->print_trace();
+        //clusters[io_x][io_y]->signal_vci_tgt_bdev.print_trace("[SIG]BDEV_TGT");
+        //clusters[io_x][io_y]->signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");
       }
 
