[RFC 3/4] RISC-V: Hypervisor ext: tests for new isns/csr and cleanup old csrs

Palmer Dabbelt palmer@dabbelt.com
Fri Dec 17 04:10:51 GMT 2021


On Thu, 16 Dec 2021 09:33:27 PST (-0800), Vineet Gupta wrote:
> Since the prior versions were not fully supported (and or functional
> even from ISA pov), we just remove any old baggage - this avoids the
> mess in keeping csr with same names but different addresses etc.

IMO it's generally a bad idea to drop stuff that we used to support when 
a new version of the spec came out, but given that these old bits of H 
never really did anything I think it's safe to just get rid of them.

Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>

Though we could probably get rid of some churn by just going straight to 
the priv-1.12 class for the H stuff, so might be better to do that 
sooner rather than later.

> Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
> ---
>  gas/testsuite/gas/riscv/csr-dw-regnums.d      | 10 ---
>  gas/testsuite/gas/riscv/csr-dw-regnums.s      | 10 ---
>  gas/testsuite/gas/riscv/h-ext-32.s            | 61 +++++++++++++++++
>  gas/testsuite/gas/riscv/h-ext-64.s            | 68 +++++++++++++++++++
>  .../gas/riscv/priv-reg-fail-read-only-01.s    | 10 ---
>  .../gas/riscv/priv-reg-fail-version-1p10.l    | 10 ---
>  .../gas/riscv/priv-reg-fail-version-1p11.l    | 10 ---
>  .../gas/riscv/priv-reg-version-1p10.d         | 10 ---
>  .../gas/riscv/priv-reg-version-1p11.d         | 10 ---
>  .../gas/riscv/priv-reg-version-1p9p1.d        | 10 ---
>  gas/testsuite/gas/riscv/priv-reg.s            | 10 ---
>  11 files changed, 129 insertions(+), 90 deletions(-)
>  create mode 100644 gas/testsuite/gas/riscv/h-ext-32.s
>  create mode 100644 gas/testsuite/gas/riscv/h-ext-64.s
>
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.d b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> index de17ad81fbde..ea0a445c39ce 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.d
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.d
> @@ -229,16 +229,6 @@ Contents of the .* section:
>    DW_CFA_offset_extended_sf: r4925 \(mhpmevent29\) at cfa\+3316
>    DW_CFA_offset_extended_sf: r4926 \(mhpmevent30\) at cfa\+3320
>    DW_CFA_offset_extended_sf: r4927 \(mhpmevent31\) at cfa\+3324
> -  DW_CFA_offset_extended_sf: r4608 \(hstatus\) at cfa\+2048
> -  DW_CFA_offset_extended_sf: r4610 \(hedeleg\) at cfa\+2056
> -  DW_CFA_offset_extended_sf: r4611 \(hideleg\) at cfa\+2060
> -  DW_CFA_offset_extended_sf: r4612 \(hie\) at cfa\+2064
> -  DW_CFA_offset_extended_sf: r4613 \(htvec\) at cfa\+2068
> -  DW_CFA_offset_extended_sf: r4672 \(hscratch\) at cfa\+2304
> -  DW_CFA_offset_extended_sf: r4673 \(hepc\) at cfa\+2308
> -  DW_CFA_offset_extended_sf: r4674 \(hcause\) at cfa\+2312
> -  DW_CFA_offset_extended_sf: r4675 \(hbadaddr\) at cfa\+2316
> -  DW_CFA_offset_extended_sf: r4676 \(hip\) at cfa\+2320
>    DW_CFA_offset_extended_sf: r4992 \(mbase\) at cfa\+3584
>    DW_CFA_offset_extended_sf: r4993 \(mbound\) at cfa\+3588
>    DW_CFA_offset_extended_sf: r4994 \(mibase\) at cfa\+3592
> diff --git a/gas/testsuite/gas/riscv/csr-dw-regnums.s b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> index ecc801469763..549475d650e8 100644
> --- a/gas/testsuite/gas/riscv/csr-dw-regnums.s
> +++ b/gas/testsuite/gas/riscv/csr-dw-regnums.s
> @@ -220,16 +220,6 @@ _start:
>  	.cfi_offset mhpmevent30, 3320
>  	.cfi_offset mhpmevent31, 3324
>  	# dropped
> -	.cfi_offset hstatus, 2048
> -	.cfi_offset hedeleg, 2056
> -	.cfi_offset hideleg, 2060
> -	.cfi_offset hie, 2064
> -	.cfi_offset htvec, 2068
> -	.cfi_offset hscratch, 2304
> -	.cfi_offset hepc, 2308
> -	.cfi_offset hcause, 2312
> -	.cfi_offset hbadaddr, 2316
> -	.cfi_offset hip, 2320
>  	.cfi_offset mbase, 3584
>  	.cfi_offset mbound, 3588
>  	.cfi_offset mibase, 3592
> diff --git a/gas/testsuite/gas/riscv/h-ext-32.s b/gas/testsuite/gas/riscv/h-ext-32.s
> new file mode 100644
> index 000000000000..2818d7d17381
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/h-ext-32.s
> @@ -0,0 +1,61 @@
> +target:
> +	hlv.b   a0, (a1)
> +	hlv.bu  a0, (a1)
> +	hlv.h   a1, (a2)
> +	hlv.hu  a1, (a1)
> +	hlvx.hu a1, (a2)
> +	hlv.w   a2, (a2)
> +	hlvx.wu a2, (a3)
> +
> +	hsv.b   a0, (a1)
> +	hsv.h   a0, (a1)
> +	hsv.w   a0, (a1)
> +
> +	csrr    a0, hstatus
> +	csrw    hstatus, a1
> +	csrr    a0, hedeleg
> +	csrw    hedeleg, a1
> +	csrr    a0, hideleg
> +	csrw    hideleg, a1
> +	csrr    a0, hie
> +	csrw    hie, a1
> +	csrr    a0, hcounteren
> +	csrw    hcounteren, a1
> +	csrr    a0, hgeie
> +	csrw    hgeie, a1
> +	csrr    a0, htval
> +	csrw    htval, a1
> +	csrr    a0, hip
> +	csrw    hip, a1
> +	csrr    a0, hvip
> +	csrw    hvip, a1
> +	csrr    a0, htinst
> +	csrw    htinst, a1
> +	csrr    a0, hgeip
> +	csrw    hgeip, a1
> +	csrr    a0, henvcfg
> +	csrw    henvcfg, a1
> +	csrr    a0, hgatp
> +	csrw    hgatp, a1
> +	csrr    a0, hcontext
> +	csrw    hcontext, a1
> +	csrr    a0, htimedelta
> +	csrw    htimedelta, a1
> +	csrr    a0, vsstatus
> +	csrw    vsstatus, a1
> +	csrr    a0, vsie
> +	csrw    vsie, a1
> +	csrr    a0, vstvec
> +	csrw    vstvec, a1
> +	csrr    a0, vsscratch
> +	csrw    vsscratch, a1
> +	csrr    a0, vsepc
> +	csrw    vsepc, a1
> +	csrr    a0, vscause
> +	csrw    vscause, a1
> +	csrr    a0, vstval
> +	csrw    vstval, a1
> +	csrr    a0, vsip
> +	csrw    vsip, a1
> +	csrr    a0, vsatp
> +	csrw    vsatp, a1
> diff --git a/gas/testsuite/gas/riscv/h-ext-64.s b/gas/testsuite/gas/riscv/h-ext-64.s
> new file mode 100644
> index 000000000000..25455fd4fdca
> --- /dev/null
> +++ b/gas/testsuite/gas/riscv/h-ext-64.s
> @@ -0,0 +1,68 @@
> +target:
> +	hlv.b   a0, (a1)
> +	hlv.bu  a0, (a1)
> +	hlv.h   a1, (a2)
> +	hlv.hu  a1, (a1)
> +	hlvx.hu a1, (a2)
> +	hlv.w   a2, (a2)
> +	hlv.wu  a2, (a3)
> +	hlvx.wu a2, (a3)
> +	hlv.d   a3, (a4)
> +
> +	hsv.b   a0, (a1)
> +	hsv.h   a0, (a1)
> +	hsv.w   a0, (a1)
> +	hsv.d   a0, (a1)
> +
> +	csrr    a0, hstatus
> +	csrw    hstatus, a1
> +	csrr    a0, hedeleg
> +	csrw    hedeleg, a1
> +	csrr    a0, hideleg
> +	csrw    hideleg, a1
> +	csrr    a0, hie
> +	csrw    hie, a1
> +	csrr    a0, hcounteren
> +	csrw    hcounteren, a1
> +	csrr    a0, hgeie
> +	csrw    hgeie, a1
> +	csrr    a0, htval
> +	csrw    htval, a1
> +	csrr    a0, hip
> +	csrw    hip, a1
> +	csrr    a0, hvip
> +	csrw    hvip, a1
> +	csrr    a0, htinst
> +	csrw    htinst, a1
> +	csrr    a0, hgeip
> +	csrw    hgeip, a1
> +	csrr    a0, henvcfg
> +	csrw    henvcfg, a1
> +	csrr    a0, henvcfgh
> +	csrw    henvcfgh, a1
> +	csrr    a0, hgatp
> +	csrw    hgatp, a1
> +	csrr    a0, hcontext
> +	csrw    hcontext, a1
> +	csrr    a0, htimedelta
> +	csrw    htimedelta, a1
> +	csrr    a0, htimedeltah
> +	csrw    htimedeltah, a1
> +	csrr    a0, vsstatus
> +	csrw    vsstatus, a1
> +	csrr    a0, vsie
> +	csrw    vsie, a1
> +	csrr    a0, vstvec
> +	csrw    vstvec, a1
> +	csrr    a0, vsscratch
> +	csrw    vsscratch, a1
> +	csrr    a0, vsepc
> +	csrw    vsepc, a1
> +	csrr    a0, vscause
> +	csrw    vscause, a1
> +	csrr    a0, vstval
> +	csrw    vstval, a1
> +	csrr    a0, vsip
> +	csrw    vsip, a1
> +	csrr    a0, vsatp
> +	csrw    vsatp, a1
> diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.s b/gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.s
> index af0fc4e14a42..aff34e9a3470 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.s
> +++ b/gas/testsuite/gas/riscv/priv-reg-fail-read-only-01.s
> @@ -249,16 +249,6 @@
>  	csr mucounteren         # 0x320 in 1.9.1, dropped in 1.10, but the value is mcountinhibit since 1.11
>  	csr dscratch            # 0x7b2 in 1.10,  but the value is dscratch0 since 1.11
>
> -	csr hstatus             # 0x200, dropped in 1.10
> -	csr hedeleg             # 0x202, dropped in 1.10
> -	csr hideleg             # 0x203, dropped in 1.10
> -	csr hie                 # 0x204, dropped in 1.10
> -	csr htvec               # 0x205, dropped in 1.10
> -	csr hscratch            # 0x240, dropped in 1.10
> -	csr hepc                # 0x241, dropped in 1.10
> -	csr hcause              # 0x242, dropped in 1.10
> -	csr hbadaddr            # 0x243, dropped in 1.10
> -	csr hip                 # 0x244, dropped in 1.10
>  	csr mbase               # 0x380, dropped in 1.10
>  	csr mbound              # 0x381, dropped in 1.10
>  	csr mibase              # 0x382, dropped in 1.10
> diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l
> index fbba6e525670..5f7a8d60d7dd 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l
> +++ b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p10.l
> @@ -5,16 +5,6 @@
>  .*Warning: invalid CSR `sptbr' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mbadaddr' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mucounteren' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hstatus' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hedeleg' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hideleg' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hie' for the privileged spec `1.10'
> -.*Warning: invalid CSR `htvec' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hscratch' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hepc' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hcause' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hbadaddr' for the privileged spec `1.10'
> -.*Warning: invalid CSR `hip' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mbase' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mbound' for the privileged spec `1.10'
>  .*Warning: invalid CSR `mibase' for the privileged spec `1.10'
> diff --git a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l
> index 68354ce25ce9..888cbb211d7f 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l
> +++ b/gas/testsuite/gas/riscv/priv-reg-fail-version-1p11.l
> @@ -4,16 +4,6 @@
>  .*Warning: invalid CSR `sptbr' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mbadaddr' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mucounteren' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hstatus' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hedeleg' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hideleg' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hie' for the privileged spec `1.11'
> -.*Warning: invalid CSR `htvec' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hscratch' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hepc' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hcause' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hbadaddr' for the privileged spec `1.11'
> -.*Warning: invalid CSR `hip' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mbase' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mbound' for the privileged spec `1.11'
>  .*Warning: invalid CSR `mibase' for the privileged spec `1.11'
> diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p10.d b/gas/testsuite/gas/riscv/priv-reg-version-1p10.d
> index ee4f405adaae..44e9af63a31f 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-version-1p10.d
> +++ b/gas/testsuite/gas/riscv/priv-reg-version-1p10.d
> @@ -225,16 +225,6 @@ Disassembly of section .text:
>  [ 	]+[0-9a-f]+:[  	]+18002573[    	]+csrr[        	]+a0,satp
>  [ 	]+[0-9a-f]+:[  	]+34302573[    	]+csrr[        	]+a0,mtval
>  [ 	]+[0-9a-f]+:[  	]+32002573[    	]+csrr[        	]+a0,0x320
> -[ 	]+[0-9a-f]+:[  	]+20002573[    	]+csrr[        	]+a0,0x200
> -[ 	]+[0-9a-f]+:[  	]+20202573[    	]+csrr[        	]+a0,0x202
> -[ 	]+[0-9a-f]+:[  	]+20302573[    	]+csrr[        	]+a0,0x203
> -[ 	]+[0-9a-f]+:[  	]+20402573[    	]+csrr[        	]+a0,0x204
> -[ 	]+[0-9a-f]+:[  	]+20502573[    	]+csrr[        	]+a0,0x205
> -[ 	]+[0-9a-f]+:[  	]+24002573[    	]+csrr[        	]+a0,0x240
> -[ 	]+[0-9a-f]+:[  	]+24102573[    	]+csrr[        	]+a0,0x241
> -[ 	]+[0-9a-f]+:[  	]+24202573[    	]+csrr[        	]+a0,0x242
> -[ 	]+[0-9a-f]+:[  	]+24302573[    	]+csrr[        	]+a0,0x243
> -[ 	]+[0-9a-f]+:[  	]+24402573[    	]+csrr[        	]+a0,0x244
>  [ 	]+[0-9a-f]+:[  	]+38002573[    	]+csrr[        	]+a0,0x380
>  [ 	]+[0-9a-f]+:[  	]+38102573[    	]+csrr[        	]+a0,0x381
>  [ 	]+[0-9a-f]+:[  	]+38202573[    	]+csrr[        	]+a0,0x382
> diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p11.d b/gas/testsuite/gas/riscv/priv-reg-version-1p11.d
> index 185e84dbd70f..c456cb945689 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-version-1p11.d
> +++ b/gas/testsuite/gas/riscv/priv-reg-version-1p11.d
> @@ -225,16 +225,6 @@ Disassembly of section .text:
>  [     	]+[0-9a-f]+:[  	]+18002573[    	]+csrr[        	]+a0,satp
>  [     	]+[0-9a-f]+:[  	]+34302573[    	]+csrr[        	]+a0,mtval
>  [     	]+[0-9a-f]+:[  	]+32002573[    	]+csrr[        	]+a0,mcountinhibit
> -[     	]+[0-9a-f]+:[  	]+20002573[    	]+csrr[        	]+a0,0x200
> -[     	]+[0-9a-f]+:[  	]+20202573[    	]+csrr[        	]+a0,0x202
> -[     	]+[0-9a-f]+:[  	]+20302573[    	]+csrr[        	]+a0,0x203
> -[     	]+[0-9a-f]+:[  	]+20402573[    	]+csrr[        	]+a0,0x204
> -[     	]+[0-9a-f]+:[  	]+20502573[    	]+csrr[        	]+a0,0x205
> -[     	]+[0-9a-f]+:[  	]+24002573[    	]+csrr[        	]+a0,0x240
> -[     	]+[0-9a-f]+:[  	]+24102573[    	]+csrr[        	]+a0,0x241
> -[     	]+[0-9a-f]+:[  	]+24202573[    	]+csrr[        	]+a0,0x242
> -[     	]+[0-9a-f]+:[  	]+24302573[    	]+csrr[        	]+a0,0x243
> -[     	]+[0-9a-f]+:[  	]+24402573[    	]+csrr[        	]+a0,0x244
>  [     	]+[0-9a-f]+:[  	]+38002573[    	]+csrr[        	]+a0,0x380
>  [     	]+[0-9a-f]+:[  	]+38102573[    	]+csrr[        	]+a0,0x381
>  [     	]+[0-9a-f]+:[  	]+38202573[    	]+csrr[        	]+a0,0x382
> diff --git a/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d b/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d
> index 0e0ba7797014..432aecc6691c 100644
> --- a/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d
> +++ b/gas/testsuite/gas/riscv/priv-reg-version-1p9p1.d
> @@ -225,16 +225,6 @@ Disassembly of section .text:
>  [     	]+[0-9a-f]+:[  	]+18002573[    	]+csrr[        	]+a0,sptbr
>  [     	]+[0-9a-f]+:[  	]+34302573[    	]+csrr[        	]+a0,mbadaddr
>  [     	]+[0-9a-f]+:[  	]+32002573[    	]+csrr[        	]+a0,mucounteren
> -[     	]+[0-9a-f]+:[  	]+20002573[    	]+csrr[        	]+a0,hstatus
> -[     	]+[0-9a-f]+:[  	]+20202573[    	]+csrr[        	]+a0,hedeleg
> -[     	]+[0-9a-f]+:[  	]+20302573[    	]+csrr[        	]+a0,hideleg
> -[     	]+[0-9a-f]+:[  	]+20402573[    	]+csrr[        	]+a0,hie
> -[     	]+[0-9a-f]+:[  	]+20502573[    	]+csrr[        	]+a0,htvec
> -[     	]+[0-9a-f]+:[  	]+24002573[    	]+csrr[        	]+a0,hscratch
> -[     	]+[0-9a-f]+:[  	]+24102573[    	]+csrr[        	]+a0,hepc
> -[     	]+[0-9a-f]+:[  	]+24202573[    	]+csrr[        	]+a0,hcause
> -[     	]+[0-9a-f]+:[  	]+24302573[    	]+csrr[        	]+a0,hbadaddr
> -[     	]+[0-9a-f]+:[  	]+24402573[    	]+csrr[        	]+a0,hip
>  [     	]+[0-9a-f]+:[  	]+38002573[    	]+csrr[        	]+a0,mbase
>  [     	]+[0-9a-f]+:[  	]+38102573[    	]+csrr[        	]+a0,mbound
>  [     	]+[0-9a-f]+:[  	]+38202573[    	]+csrr[        	]+a0,mibase
> diff --git a/gas/testsuite/gas/riscv/priv-reg.s b/gas/testsuite/gas/riscv/priv-reg.s
> index 5cf3ebc1b3e0..8c507fec4bb9 100644
> --- a/gas/testsuite/gas/riscv/priv-reg.s
> +++ b/gas/testsuite/gas/riscv/priv-reg.s
> @@ -234,16 +234,6 @@
>  	csr mbadaddr		# 0x343 in 1.9.1, but the value is mtval since 1.10
>  	csr mucounteren		# 0x320 in 1.9.1, dropped in 1.10, but the value is mcountinhibit since 1.11
>
> -	csr hstatus		# 0x200, dropped in 1.10
> -	csr hedeleg		# 0x202, dropped in 1.10
> -	csr hideleg		# 0x203, dropped in 1.10
> -	csr hie			# 0x204, dropped in 1.10
> -	csr htvec		# 0x205, dropped in 1.10
> -	csr hscratch		# 0x240, dropped in 1.10
> -	csr hepc		# 0x241, dropped in 1.10
> -	csr hcause		# 0x242, dropped in 1.10
> -	csr hbadaddr		# 0x243, dropped in 1.10
> -	csr hip			# 0x244, dropped in 1.10
>  	csr mbase		# 0x380, dropped in 1.10
>  	csr mbound		# 0x381, dropped in 1.10
>  	csr mibase		# 0x382, dropped in 1.10


More information about the Binutils mailing list