From e826c5a9f16ccde6194695e62bed2daf5a50ea12 Mon Sep 17 00:00:00 2001 From: brs Date: Tue, 10 Oct 2023 15:49:58 -0500 Subject: [PATCH 1/3] Adding load-acquire/store-release. Note they are written here as `lb.` for the load-acquire byte (so `lb.aq` and `lb.aqrl`), I'm not sure that will work but it passes the tests here. --- unratified/rv_zalasr | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 unratified/rv_zalasr diff --git a/unratified/rv_zalasr b/unratified/rv_zalasr new file mode 100644 index 00000000..8e81b0ff --- /dev/null +++ b/unratified/rv_zalasr @@ -0,0 +1,8 @@ +lb. rd rs1 aq rl 31..27=6 24..20=0 14..12=0 6..2=0x0B 1..0=3 +lh. rd rs1 aq rl 31..27=6 24..20=0 14..12=1 6..2=0x0B 1..0=3 +lw. rd rs1 aq rl 31..27=6 24..20=0 14..12=2 6..2=0x0B 1..0=3 +ld. rd rs1 aq rl 31..27=6 24..20=0 14..12=3 6..2=0x0B 1..0=3 +sb. rs1 rs2 aq rl 31..27=7 14..12=0 11..7=0 6..2=0x0B 1..0=3 +sh. rs1 rs2 aq rl 31..27=7 14..12=1 11..7=0 6..2=0x0B 1..0=3 +sw. rs1 rs2 aq rl 31..27=7 14..12=2 11..7=0 6..2=0x0B 1..0=3 +sd. rs1 rs2 aq rl 31..27=7 14..12=3 11..7=0 6..2=0x0B 1..0=3 From 65c40e9167e616431c45d27170a57d572e4ea502 Mon Sep 17 00:00:00 2001 From: brs Date: Tue, 17 Oct 2023 19:04:03 -0500 Subject: [PATCH 2/3] Changing it so Zalasr has one bit hardcoded for each, to reduce opcode confusion hopefully --- unratified/rv_zalasr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/unratified/rv_zalasr b/unratified/rv_zalasr index 8e81b0ff..84dbe521 100644 --- a/unratified/rv_zalasr +++ b/unratified/rv_zalasr @@ -1,8 +1,8 @@ -lb. rd rs1 aq rl 31..27=6 24..20=0 14..12=0 6..2=0x0B 1..0=3 -lh. rd rs1 aq rl 31..27=6 24..20=0 14..12=1 6..2=0x0B 1..0=3 -lw. rd rs1 aq rl 31..27=6 24..20=0 14..12=2 6..2=0x0B 1..0=3 -ld. rd rs1 aq rl 31..27=6 24..20=0 14..12=3 6..2=0x0B 1..0=3 -sb. rs1 rs2 aq rl 31..27=7 14..12=0 11..7=0 6..2=0x0B 1..0=3 -sh. rs1 rs2 aq rl 31..27=7 14..12=1 11..7=0 6..2=0x0B 1..0=3 -sw. rs1 rs2 aq rl 31..27=7 14..12=2 11..7=0 6..2=0x0B 1..0=3 -sd. rs1 rs2 aq rl 31..27=7 14..12=3 11..7=0 6..2=0x0B 1..0=3 +lb.aq rd rs1 rl 31..27=6 24..20=0 14..12=0 6..2=0x0B 1..0=3 +lh.aq rd rs1 rl 31..27=6 24..20=0 14..12=1 6..2=0x0B 1..0=3 +lw.aq rd rs1 rl 31..27=6 24..20=0 14..12=2 6..2=0x0B 1..0=3 +ld.aq rd rs1 rl 31..27=6 24..20=0 14..12=3 6..2=0x0B 1..0=3 +sb.rl rs1 rs2 aq 31..27=7 14..12=0 11..7=0 6..2=0x0B 1..0=3 +sh.rl rs1 rs2 aq 31..27=7 14..12=1 11..7=0 6..2=0x0B 1..0=3 +sw.rl rs1 rs2 aq 31..27=7 14..12=2 11..7=0 6..2=0x0B 1..0=3 +sd.rl rs1 rs2 aq 31..27=7 14..12=3 11..7=0 6..2=0x0B 1..0=3 From ce0312a91258aaf6e26e95c90394e45cb9ff4096 Mon Sep 17 00:00:00 2001 From: brs Date: Thu, 19 Oct 2023 10:45:27 -0500 Subject: [PATCH 3/3] Making explicit that the aq bit is set for load-acquire, rl bit is set for store-releasee --- unratified/rv_zalasr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/unratified/rv_zalasr b/unratified/rv_zalasr index 84dbe521..43af470e 100644 --- a/unratified/rv_zalasr +++ b/unratified/rv_zalasr @@ -1,8 +1,8 @@ -lb.aq rd rs1 rl 31..27=6 24..20=0 14..12=0 6..2=0x0B 1..0=3 -lh.aq rd rs1 rl 31..27=6 24..20=0 14..12=1 6..2=0x0B 1..0=3 -lw.aq rd rs1 rl 31..27=6 24..20=0 14..12=2 6..2=0x0B 1..0=3 -ld.aq rd rs1 rl 31..27=6 24..20=0 14..12=3 6..2=0x0B 1..0=3 -sb.rl rs1 rs2 aq 31..27=7 14..12=0 11..7=0 6..2=0x0B 1..0=3 -sh.rl rs1 rs2 aq 31..27=7 14..12=1 11..7=0 6..2=0x0B 1..0=3 -sw.rl rs1 rs2 aq 31..27=7 14..12=2 11..7=0 6..2=0x0B 1..0=3 -sd.rl rs1 rs2 aq 31..27=7 14..12=3 11..7=0 6..2=0x0B 1..0=3 +lb.aq rd rs1 26=1 rl 31..27=6 24..20=0 14..12=0 6..2=0x0B 1..0=3 +lh.aq rd rs1 26=1 rl 31..27=6 24..20=0 14..12=1 6..2=0x0B 1..0=3 +lw.aq rd rs1 26=1 rl 31..27=6 24..20=0 14..12=2 6..2=0x0B 1..0=3 +ld.aq rd rs1 26=1 rl 31..27=6 24..20=0 14..12=3 6..2=0x0B 1..0=3 +sb.rl rs1 rs2 aq 25=1 31..27=7 14..12=0 11..7=0 6..2=0x0B 1..0=3 +sh.rl rs1 rs2 aq 25=1 31..27=7 14..12=1 11..7=0 6..2=0x0B 1..0=3 +sw.rl rs1 rs2 aq 25=1 31..27=7 14..12=2 11..7=0 6..2=0x0B 1..0=3 +sd.rl rs1 rs2 aq 25=1 31..27=7 14..12=3 11..7=0 6..2=0x0B 1..0=3