From bdfe7c5090cbf438c228d5c2d7642f5159771755 Mon Sep 17 00:00:00 2001 From: Derek Hower Date: Fri, 31 Jan 2025 18:20:38 -0800 Subject: [PATCH] Removing unratified RV128 instructions --- arch/inst/C/c.lq.yaml | 39 --------------------------------------- arch/inst/C/c.lqsp.yaml | 40 ---------------------------------------- arch/inst/C/c.sq.yaml | 39 --------------------------------------- arch/inst/C/c.sqsp.yaml | 38 -------------------------------------- 4 files changed, 156 deletions(-) delete mode 100644 arch/inst/C/c.lq.yaml delete mode 100644 arch/inst/C/c.lqsp.yaml delete mode 100644 arch/inst/C/c.sq.yaml delete mode 100644 arch/inst/C/c.sqsp.yaml diff --git a/arch/inst/C/c.lq.yaml b/arch/inst/C/c.lq.yaml deleted file mode 100644 index b6d532298..000000000 --- a/arch/inst/C/c.lq.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# yaml-language-server: $schema=../../../schemas/inst_schema.json - -$schema: "inst_schema.json#" -kind: instruction -name: c.lq -long_name: Load quadruple -description: | - Loads a 128-bit value from memory into register rd. - It computes an effective address by adding the zero-extended offset, scaled by 16, - to the base address in register rs1. - It expands to `lq` `rd, offset(rs1)`. -definedBy: - anyOf: - - C - - Zca -assembly: xd, imm(xs1) -encoding: - match: 001-----------00 - variables: - - name: imm - location: 12-11|6-5|10 - left_shift: 4 - - name: rd - location: 4-2 - - name: rs1 - location: 9-7 -access: - s: always - u: always - vs: always - vu: always -operation(): | - if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) { - raise(ExceptionCode::IllegalInstruction, mode(), $encoding); - } - - XReg virtual_address = X[rs1] + imm; - - X[rd] = sext(read_memory<128>(virtual_address, $encoding), 128); diff --git a/arch/inst/C/c.lqsp.yaml b/arch/inst/C/c.lqsp.yaml deleted file mode 100644 index adce78227..000000000 --- a/arch/inst/C/c.lqsp.yaml +++ /dev/null @@ -1,40 +0,0 @@ -# yaml-language-server: $schema=../../../schemas/inst_schema.json - -$schema: "inst_schema.json#" -kind: instruction -name: c.lqsp -long_name: Load quadruple word from stack pointer -description: | - C.LQSP is an RV128C-only instruction that loads a 128-bit value from memory into register rd. - It computes its effective address by adding the zero-extended offset, scaled by 16, - to the stack pointer, x2. - It expands to `lq` `rd, offset(x2)`. - C.LQSP is only valid when rd ≠ x0 the code points with rd=x0 are reserved. -definedBy: - anyOf: - - C - - Zca -base: 64 -assembly: xd, imm(sp) -encoding: - match: 001-----------10 - variables: - - name: imm - location: 5-2|12|6 - left_shift: 4 - - name: rd - location: 11-7 - not: 0 -access: - s: always - u: always - vs: always - vu: always -operation(): | - if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) { - raise(ExceptionCode::IllegalInstruction, mode(), $encoding); - } - - XReg virtual_address = X[2] + imm; - - X[rd] = read_memory<128>(virtual_address, $encoding); diff --git a/arch/inst/C/c.sq.yaml b/arch/inst/C/c.sq.yaml deleted file mode 100644 index 24fb6f1fd..000000000 --- a/arch/inst/C/c.sq.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# yaml-language-server: $schema=../../../schemas/inst_schema.json - -$schema: "inst_schema.json#" -kind: instruction -name: c.sq -long_name: Store quadruple -description: | - Stores a 128-bit value in register rs2 to memory. - It computes an effective address by adding the zero-extended offset, scaled by 16, - to the base address in register rs1. - It expands to `sq` `rs2, offset(rs1)`. -definedBy: - anyOf: - - C - - Zca -assembly: xs2, imm(xs1) -encoding: - match: 101-----------00 - variables: - - name: imm - location: 12-11|6-5|10 - left_shift: 4 - - name: rs2 - location: 4-2 - - name: rs1 - location: 9-7 -access: - s: always - u: always - vs: always - vu: always -operation(): | - if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) { - raise(ExceptionCode::IllegalInstruction, mode(), $encoding); - } - - XReg virtual_address = X[rs1] + imm; - - write_memory<128>(virtual_address, X[rs2], $encoding); diff --git a/arch/inst/C/c.sqsp.yaml b/arch/inst/C/c.sqsp.yaml deleted file mode 100644 index 107e1981d..000000000 --- a/arch/inst/C/c.sqsp.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# yaml-language-server: $schema=../../../schemas/inst_schema.json - -$schema: "inst_schema.json#" -kind: instruction -name: c.sqsp -long_name: Store quadruple word to stack -description: | - Stores a 128-bit value in register rs2 to memory. - It computes an effective address by adding the zero-extended offset, scaled by 16, - to the stack pointer, x2. - It expands to `sq` `rs2, offset(x2)`. -definedBy: - anyOf: - - C - - Zca -base: 64 -assembly: xs2, imm(sp) -encoding: - match: 101-----------10 - variables: - - name: imm - location: 10-7|12-11 - left_shift: 4 - - name: rs2 - location: 6-2 -access: - s: always - u: always - vs: always - vu: always -operation(): | - if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) { - raise(ExceptionCode::IllegalInstruction, mode(), $encoding); - } - - XReg virtual_address = X[2] + imm; - - write_memory<128>(virtual_address, X[rs2], $encoding);