[rv64ua/lrsc] Initialize memory read out. (#135)
authorChristopher Celio <celio@eecs.berkeley.edu>
Tue, 1 May 2018 00:03:50 +0000 (17:03 -0700)
committerAndrew Waterman <aswaterman@gmail.com>
Tue, 1 May 2018 00:03:50 +0000 (17:03 -0700)
* [rv64ua/lrsc] Initialize memory read out.

Even though the load contents are discarded, this un-initialized memory value
can lead to a divergence for co-simulation between two different RISC-V designs.

* [rv64ua/lrsc] Use .skip instead of .align.

isa/rv64ua/lrsc.S

index 11eb7de14a311e11ba8915b50fd2cadb6f198340..14ef07de5cd53bbebefecfda77dea0e2c993cfb7 100644 (file)
@@ -35,7 +35,7 @@ TEST_CASE( 2, a4, 1, \
 # TODO is this actually mandatory behavior?
 TEST_CASE( 3, a4, 1, \
   la a0, foo; \
-  add a1, a0, 1024; \
+  la a1, fooTest3; \
   lr.w a1, (a1); \
   sc.w a4, a1, (a0); \
 )
@@ -82,4 +82,6 @@ RVTEST_DATA_BEGIN
 coreid: .word 0
 barrier: .word 0
 foo: .word 0
+.skip 1024
+fooTest3: .word 0
 RVTEST_DATA_END