Check UXL in sstatus
authorAndrew Waterman <andrew@sifive.com>
Fri, 5 May 2017 23:28:06 +0000 (16:28 -0700)
committerAndrew Waterman <andrew@sifive.com>
Fri, 5 May 2017 23:28:06 +0000 (16:28 -0700)
env
isa/rv64si/csr.S

diff --git a/env b/env
index 70f5e06eef154a1eaeb65d3f034c1857771100ff..d7b2fdc9ed30163ac7e4f5cfc502710e862a112e 160000 (submodule)
--- a/env
+++ b/env
@@ -1 +1 @@
-Subproject commit 70f5e06eef154a1eaeb65d3f034c1857771100ff
+Subproject commit d7b2fdc9ed30163ac7e4f5cfc502710e862a112e
index 13dbf2679545f9dda98bc74bad2d317486131c40..0576678d47171ea86b654a05d658f9f4ee1df719 100644 (file)
@@ -24,6 +24,11 @@ RVTEST_CODE_BEGIN
   #define SSTATUS_SPP MSTATUS_MPP
 #endif
 
+  # For RV64, make sure UXL encodes RV64.  (UXL does not exist for RV32.)
+#if __riscv_xlen == 64
+  TEST_CASE(13, a0, SSTATUS_UXL & (SSTATUS_UXL << 1), csrr a0, sstatus; li a1, SSTATUS_UXL; and a0, a0, a1)
+#endif
+
   csrwi sscratch, 3
   TEST_CASE( 2, a0,         3, csrr a0, sscratch);
   TEST_CASE( 3, a1,         3, csrrci a1, sscratch, 1);