diff options
Diffstat (limited to 'isa/rv64ua')
-rw-r--r-- | isa/rv64ua/amoxor_w.S | 16 | ||||
-rw-r--r-- | isa/rv64ua/lrsc.S | 23 |
2 files changed, 20 insertions, 19 deletions
diff --git a/isa/rv64ua/amoxor_w.S b/isa/rv64ua/amoxor_w.S index 2b92323..1b305dd 100644 --- a/isa/rv64ua/amoxor_w.S +++ b/isa/rv64ua/amoxor_w.S @@ -17,7 +17,7 @@ RVTEST_CODE_BEGIN li a0, 0xffffffff80000000; \ li a1, 0xfffffffffffff800; \ la a3, amo_operand; \ - sd a0, 0(a3); \ + sw a0, 0(a3); \ nop; nop; nop; nop; \ nop; nop; nop; nop; \ nop; nop; nop; nop; \ @@ -28,24 +28,24 @@ RVTEST_CODE_BEGIN amoxor.w a4, a1, 0(a3); \ ) - TEST_CASE(3, a5, 0xffffffff7ffff800, ld a5, 0(a3)) + TEST_CASE(3, a5, 0x7ffff800, lw a5, 0(a3)) # try again after a cache miss - TEST_CASE(4, a4, 0x000000007ffff800, \ + TEST_CASE(4, a4, 0x7ffff800, \ li a1, 0xc0000001; \ li a4, 16384; \ add a5, a3, a4; \ - ld x0, 0(a5); \ + lw x0, 0(a5); \ add a5, a5, a4; \ - ld x0, 0(a5); \ + lw x0, 0(a5); \ add a5, a5, a4; \ - ld x0, 0(a5); \ + lw x0, 0(a5); \ add a5, a5, a4; \ - ld x0, 0(a5); \ + lw x0, 0(a5); \ amoxor.w a4, a1, 0(a3); \ ) - TEST_CASE(5, a5, 0xffffffffbffff801, ld a5, 0(a3)) + TEST_CASE(5, a5, 0xffffffffbffff801, lw a5, 0(a3)) TEST_PASSFAIL diff --git a/isa/rv64ua/lrsc.S b/isa/rv64ua/lrsc.S index 9422739..11eb7de 100644 --- a/isa/rv64ua/lrsc.S +++ b/isa/rv64ua/lrsc.S @@ -40,9 +40,12 @@ TEST_CASE( 3, a4, 1, \ sc.w a4, a1, (a0); \ ) -# have each core add its coreid to foo 1000 times +#define LOG_ITERATIONS 10 + +# have each core add its coreid+1 to foo 1024 times la a0, foo -li a1, 1000 +li a1, 1<<LOG_ITERATIONS +addi a2, a2, 1 1: lr.w a4, (a0) add a4, a4, a2 sc.w a4, a4, (a0) @@ -58,15 +61,13 @@ amoadd.w x0, a1, (a0) blt a1, a3, 1b fence -# expected result is 1000*ncores*(ncores-1)/2 -TEST_CASE( 4, a2, 0, \ - la a0, foo; \ - li a1, 500; \ - mul a1, a1, a3; \ - add a2, a3, -1; \ - mul a1, a1, a2; \ - lw a2, (a0); \ - sub a2, a2, a1; \ +# expected result is 512*ncores*(ncores+1) +TEST_CASE( 4, a0, 0, \ + lw a0, foo; \ + slli a1, a3, LOG_ITERATIONS-1; \ +1:sub a0, a0, a1; \ + addi a3, a3, -1; \ + bgez a3, 1b ) TEST_PASSFAIL |