From bbf093d26650a60013d79a6c6871a7af0dd4f1ce Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Tue, 28 Oct 2025 13:30:03 -0700 Subject: [PATCH 1/3] feat(data): add Zihintntl instructions --- .../all_instructions.golden.adoc | 256 ++++++++++++++++++ spec/std/isa/ext/Zihintntl.yaml | 2 +- spec/std/isa/inst/C/c.add.yaml | 5 + spec/std/isa/inst/I/add.yaml | 5 + spec/std/isa/inst/Zihintntl/c.ntl.all.yaml | 26 ++ spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml | 26 ++ spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml | 26 ++ spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml | 26 ++ spec/std/isa/inst/Zihintntl/ntl.all.yaml | 23 ++ spec/std/isa/inst/Zihintntl/ntl.p1.yaml | 23 ++ spec/std/isa/inst/Zihintntl/ntl.pall.yaml | 23 ++ spec/std/isa/inst/Zihintntl/ntl.s1.yaml | 23 ++ 12 files changed, 463 insertions(+), 1 deletion(-) create mode 100644 spec/std/isa/inst/Zihintntl/c.ntl.all.yaml create mode 100644 spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml create mode 100644 spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml create mode 100644 spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml create mode 100644 spec/std/isa/inst/Zihintntl/ntl.all.yaml create mode 100644 spec/std/isa/inst/Zihintntl/ntl.p1.yaml create mode 100644 spec/std/isa/inst/Zihintntl/ntl.pall.yaml create mode 100644 spec/std/isa/inst/Zihintntl/ntl.s1.yaml diff --git a/backends/instructions_appendix/all_instructions.golden.adoc b/backends/instructions_appendix/all_instructions.golden.adoc index d2678908b2..151dacc68f 100644 --- a/backends/instructions_appendix/all_instructions.golden.adoc +++ b/backends/instructions_appendix/all_instructions.golden.adoc @@ -4853,6 +4853,138 @@ Included in:: |=== +[#udb:doc:inst:c_ntl_all] +== c.ntl.all + +Synopsis:: +Compressed non-temporal locality hint, all + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":16,"name": 0x9016,"type":2}]} +.... + +Description:: +The NTL.ALL instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of any level of cache in the memory +hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. + + +Decode Variables:: +c.ntl.all has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zca* | ~> 1.0.0 + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:c_ntl_p1] +== c.ntl.p1 + +Synopsis:: +Compressed non-temporal locality hint, innermost private + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":16,"name": 0x900a,"type":2}]} +.... + +Description:: +The NTL.P1 instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of the innermost level of private cache +in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. + + +Decode Variables:: +c.ntl.p1 has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zca* | ~> 1.0.0 + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:c_ntl_pall] +== c.ntl.pall + +Synopsis:: +Compressed non-temporal locality hint, all private + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":16,"name": 0x900e,"type":2}]} +.... + +Description:: +The NTL.PALL instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of any level of private cache in the memory +hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. + + +Decode Variables:: +c.ntl.pall has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zca* | ~> 1.0.0 + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:c_ntl_s1] +== c.ntl.s1 + +Synopsis:: +Compressed non-temporal locality hint, innermost shared + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":16,"name": 0x9012,"type":2}]} +.... + +Description:: +The NTL.S1 instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of the innermost level of shared cache +in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. + + +Decode Variables:: +c.ntl.s1 has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zca* | ~> 1.0.0 + +| *Zihintntl* | ~> 1.0.0 + +|=== + + [#udb:doc:inst:c_or] == c.or @@ -16272,6 +16404,130 @@ Included in:: |=== +[#udb:doc:inst:ntl_all] +== ntl.all + +Synopsis:: +Non-temporal locality hint, all + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":32,"name": 0x500033,"type":2}]} +.... + +Description:: +The NTL.ALL instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of any level of cache in the memory +hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. + + +Decode Variables:: +ntl.all has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:ntl_p1] +== ntl.p1 + +Synopsis:: +Non-temporal locality hint, innermost private + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":32,"name": 0x200033,"type":2}]} +.... + +Description:: +The NTL.P1 instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of the innermost level of private cache +in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. + + +Decode Variables:: +ntl.p1 has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:ntl_pall] +== ntl.pall + +Synopsis:: +Non-temporal locality hint, all private + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":32,"name": 0x300033,"type":2}]} +.... + +Description:: +The NTL.PALL instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of any level of private cache in the memory +hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. + + +Decode Variables:: +ntl.pall has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zihintntl* | ~> 1.0.0 + +|=== + + +[#udb:doc:inst:ntl_s1] +== ntl.s1 + +Synopsis:: +Non-temporal locality hint, innermost shared + +Encoding:: +[wavedrom, ,svg,subs='attributes',width="100%"] +.... +{"reg":[{"bits":32,"name": 0x400033,"type":2}]} +.... + +Description:: +The NTL.S1 instruction indicates that the target instruction does not exhibit +temporal locality within the capacity of the innermost level of shared cache +in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. + + +Decode Variables:: +ntl.s1 has no decode variables. + +Included in:: +[options="autowrap,autowidth"] +|=== +| Extension | Version + +| *Zihintntl* | ~> 1.0.0 + +|=== + + [#udb:doc:inst:or] == or diff --git a/spec/std/isa/ext/Zihintntl.yaml b/spec/std/isa/ext/Zihintntl.yaml index dd57172ed9..f350413a18 100644 --- a/spec/std/isa/ext/Zihintntl.yaml +++ b/spec/std/isa/ext/Zihintntl.yaml @@ -6,7 +6,7 @@ $schema: "ext_schema.json#" kind: extension name: Zihintntl -long_name: NTL (Non-Temporal Locality) Hint Instructions +long_name: NTL Non-Temporal Locality Hint Instructions description: | The NTL instructions are HINTs that indicate that the explicit memory accesses of the immediately subsequent instruction (henceforth "target diff --git a/spec/std/isa/inst/C/c.add.yaml b/spec/std/isa/inst/C/c.add.yaml index dc73eb6465..f2029e1a62 100644 --- a/spec/std/isa/inst/C/c.add.yaml +++ b/spec/std/isa/inst/C/c.add.yaml @@ -29,6 +29,11 @@ access: u: always vs: always vu: always +hints: + - { $ref: inst/Zihintntl/c.ntl.p1.yaml# } + - { $ref: inst/Zihintntl/c.ntl.pall.yaml# } + - { $ref: inst/Zihintntl/c.ntl.s1.yaml# } + - { $ref: inst/Zihintntl/c.ntl.all.yaml# } operation(): | XReg t0 = X[xd]; XReg t1 = X[xs2]; diff --git a/spec/std/isa/inst/I/add.yaml b/spec/std/isa/inst/I/add.yaml index 12bbd5ab91..6cb03d38cf 100644 --- a/spec/std/isa/inst/I/add.yaml +++ b/spec/std/isa/inst/I/add.yaml @@ -27,6 +27,11 @@ access: vs: always vu: always data_independent_timing: true +hints: + - { $ref: inst/Zihintntl/ntl.p1.yaml# } + - { $ref: inst/Zihintntl/ntl.pall.yaml# } + - { $ref: inst/Zihintntl/ntl.s1.yaml# } + - { $ref: inst/Zihintntl/ntl.all.yaml# } operation(): X[xd] = X[xs1] + X[xs2]; # SPDX-SnippetBegin diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml new file mode 100644 index 0000000000..8c696767c4 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml @@ -0,0 +1,26 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: c.ntl.all +long_name: Compressed non-temporal locality hint, all +description: | + The NTL.ALL instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of any level of cache in the memory + hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. +definedBy: + allOf: + - Zca + - Zihintntl +assembly: "" +encoding: + match: "1001000000010110" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml new file mode 100644 index 0000000000..57dd05ec54 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml @@ -0,0 +1,26 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: c.ntl.p1 +long_name: Compressed non-temporal locality hint, innermost private +description: | + The NTL.P1 instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of the innermost level of private cache + in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. +definedBy: + allOf: + - Zca + - Zihintntl +assembly: "" +encoding: + match: "1001000000001010" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml new file mode 100644 index 0000000000..728b3a66a8 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml @@ -0,0 +1,26 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: c.ntl.pall +long_name: Compressed non-temporal locality hint, all private +description: | + The NTL.PALL instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of any level of private cache in the memory + hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. +definedBy: + allOf: + - Zca + - Zihintntl +assembly: "" +encoding: + match: "1001000000001110" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml new file mode 100644 index 0000000000..cb9cf2b8a2 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml @@ -0,0 +1,26 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: c.ntl.s1 +long_name: Compressed non-temporal locality hint, innermost shared +description: | + The NTL.S1 instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of the innermost level of shared cache + in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. +definedBy: + allOf: + - Zca + - Zihintntl +assembly: "" +encoding: + match: "1001000000010010" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/ntl.all.yaml b/spec/std/isa/inst/Zihintntl/ntl.all.yaml new file mode 100644 index 0000000000..e41c82caeb --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/ntl.all.yaml @@ -0,0 +1,23 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: ntl.all +long_name: Non-temporal locality hint, all +description: | + The NTL.ALL instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of any level of cache in the memory + hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. +definedBy: Zihintntl +assembly: "" +encoding: + match: "00000000010100000000000000110011" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/ntl.p1.yaml b/spec/std/isa/inst/Zihintntl/ntl.p1.yaml new file mode 100644 index 0000000000..8219b85346 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/ntl.p1.yaml @@ -0,0 +1,23 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: ntl.p1 +long_name: Non-temporal locality hint, innermost private +description: | + The NTL.P1 instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of the innermost level of private cache + in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. +definedBy: Zihintntl +assembly: "" +encoding: + match: "00000000001000000000000000110011" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/ntl.pall.yaml b/spec/std/isa/inst/Zihintntl/ntl.pall.yaml new file mode 100644 index 0000000000..5938b34b55 --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/ntl.pall.yaml @@ -0,0 +1,23 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: ntl.pall +long_name: Non-temporal locality hint, all private +description: | + The NTL.PALL instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of any level of private cache in the memory + hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. +definedBy: Zihintntl +assembly: "" +encoding: + match: "00000000001100000000000000110011" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false diff --git a/spec/std/isa/inst/Zihintntl/ntl.s1.yaml b/spec/std/isa/inst/Zihintntl/ntl.s1.yaml new file mode 100644 index 0000000000..f2667df6cc --- /dev/null +++ b/spec/std/isa/inst/Zihintntl/ntl.s1.yaml @@ -0,0 +1,23 @@ +# Copyright (c) Jordan Carlin +# SPDX-License-Identifier: BSD-3-Clause-Clear + +# yaml-language-server: $schema=../../../../schemas/inst_schema.json + +$schema: inst_schema.json# +kind: instruction +name: ntl.s1 +long_name: Non-temporal locality hint, innermost shared +description: | + The NTL.S1 instruction indicates that the target instruction does not exhibit + temporal locality within the capacity of the innermost level of shared cache + in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. +definedBy: Zihintntl +assembly: "" +encoding: + match: "00000000010000000000000000110011" +access: + s: always + u: always + vs: always + vu: always +data_independent_timing: false From e71f57e75e31f7496413d921bde80c5ab54c9f8b Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Tue, 28 Oct 2025 18:49:16 -0700 Subject: [PATCH 2/3] update descriptions --- .../all_instructions.golden.adoc | 48 +++++++++---------- spec/std/isa/inst/Zihintntl/c.ntl.all.yaml | 6 +-- spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml | 6 +-- spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml | 6 +-- spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml | 6 +-- spec/std/isa/inst/Zihintntl/ntl.all.yaml | 6 +-- spec/std/isa/inst/Zihintntl/ntl.p1.yaml | 6 +-- spec/std/isa/inst/Zihintntl/ntl.pall.yaml | 6 +-- spec/std/isa/inst/Zihintntl/ntl.s1.yaml | 6 +-- 9 files changed, 48 insertions(+), 48 deletions(-) diff --git a/backends/instructions_appendix/all_instructions.golden.adoc b/backends/instructions_appendix/all_instructions.golden.adoc index 151dacc68f..4415f08711 100644 --- a/backends/instructions_appendix/all_instructions.golden.adoc +++ b/backends/instructions_appendix/all_instructions.golden.adoc @@ -4866,9 +4866,9 @@ Encoding:: .... Description:: -The NTL.ALL instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of any level of cache in the memory -hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. +The C.NTL.ALL instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of any level of cache in +the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x0, x5. Decode Variables:: @@ -4899,9 +4899,9 @@ Encoding:: .... Description:: -The NTL.P1 instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of the innermost level of private cache -in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. +The C.NTL.P1 instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of the innermost level +of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x0, x2. Decode Variables:: @@ -4932,9 +4932,9 @@ Encoding:: .... Description:: -The NTL.PALL instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of any level of private cache in the memory -hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. +The C.NTL.PALL instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of any level of private +cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x0, x3. Decode Variables:: @@ -4965,9 +4965,9 @@ Encoding:: .... Description:: -The NTL.S1 instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of the innermost level of shared cache -in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. +The C.NTL.S1 instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of the innermost level +of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x0, x4. Decode Variables:: @@ -16417,9 +16417,9 @@ Encoding:: .... Description:: -The NTL.ALL instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of any level of cache in the memory -hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. +The NTL.ALL instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of any level of cache +in the memory hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. Decode Variables:: @@ -16448,9 +16448,9 @@ Encoding:: .... Description:: -The NTL.P1 instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of the innermost level of private cache -in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. +The NTL.P1 instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of the innermost level +of private cache in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. Decode Variables:: @@ -16479,9 +16479,9 @@ Encoding:: .... Description:: -The NTL.PALL instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of any level of private cache in the memory -hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. +The NTL.PALL instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of any level of private +cache in the memory hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. Decode Variables:: @@ -16510,9 +16510,9 @@ Encoding:: .... Description:: -The NTL.S1 instruction indicates that the target instruction does not exhibit -temporal locality within the capacity of the innermost level of shared cache -in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. +The NTL.S1 instruction indicates that the immediately subsequent instruction +does not exhibit temporal locality within the capacity of the innermost level +of shared cache in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. Decode Variables:: diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml index 8c696767c4..f05a91e43e 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml @@ -8,9 +8,9 @@ kind: instruction name: c.ntl.all long_name: Compressed non-temporal locality hint, all description: | - The NTL.ALL instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of any level of cache in the memory - hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. + The C.NTL.ALL instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of any level of cache in + the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x0, x5. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml index 57dd05ec54..02c5d3d60d 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml @@ -8,9 +8,9 @@ kind: instruction name: c.ntl.p1 long_name: Compressed non-temporal locality hint, innermost private description: | - The NTL.P1 instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of the innermost level of private cache - in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. + The C.NTL.P1 instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of the innermost level + of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x0, x2. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml index 728b3a66a8..05eabe0d20 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml @@ -8,9 +8,9 @@ kind: instruction name: c.ntl.pall long_name: Compressed non-temporal locality hint, all private description: | - The NTL.PALL instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of any level of private cache in the memory - hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. + The C.NTL.PALL instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of any level of private + cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x0, x3. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml index cb9cf2b8a2..eec757b588 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml @@ -8,9 +8,9 @@ kind: instruction name: c.ntl.s1 long_name: Compressed non-temporal locality hint, innermost shared description: | - The NTL.S1 instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of the innermost level of shared cache - in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. + The C.NTL.S1 instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of the innermost level + of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x0, x4. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/ntl.all.yaml b/spec/std/isa/inst/Zihintntl/ntl.all.yaml index e41c82caeb..56dc9ecb00 100644 --- a/spec/std/isa/inst/Zihintntl/ntl.all.yaml +++ b/spec/std/isa/inst/Zihintntl/ntl.all.yaml @@ -8,9 +8,9 @@ kind: instruction name: ntl.all long_name: Non-temporal locality hint, all description: | - The NTL.ALL instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of any level of cache in the memory - hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. + The NTL.ALL instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of any level of cache + in the memory hierarchy. NTL.ALL is encoded as ADD x0, x0, x5. definedBy: Zihintntl assembly: "" encoding: diff --git a/spec/std/isa/inst/Zihintntl/ntl.p1.yaml b/spec/std/isa/inst/Zihintntl/ntl.p1.yaml index 8219b85346..d53b28fcc6 100644 --- a/spec/std/isa/inst/Zihintntl/ntl.p1.yaml +++ b/spec/std/isa/inst/Zihintntl/ntl.p1.yaml @@ -8,9 +8,9 @@ kind: instruction name: ntl.p1 long_name: Non-temporal locality hint, innermost private description: | - The NTL.P1 instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of the innermost level of private cache - in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. + The NTL.P1 instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of the innermost level + of private cache in the memory hierarchy. NTL.P1 is encoded as ADD x0, x0, x2. definedBy: Zihintntl assembly: "" encoding: diff --git a/spec/std/isa/inst/Zihintntl/ntl.pall.yaml b/spec/std/isa/inst/Zihintntl/ntl.pall.yaml index 5938b34b55..d3c26c640d 100644 --- a/spec/std/isa/inst/Zihintntl/ntl.pall.yaml +++ b/spec/std/isa/inst/Zihintntl/ntl.pall.yaml @@ -8,9 +8,9 @@ kind: instruction name: ntl.pall long_name: Non-temporal locality hint, all private description: | - The NTL.PALL instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of any level of private cache in the memory - hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. + The NTL.PALL instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of any level of private + cache in the memory hierarchy. NTL.PALL is encoded as ADD x0, x0, x3. definedBy: Zihintntl assembly: "" encoding: diff --git a/spec/std/isa/inst/Zihintntl/ntl.s1.yaml b/spec/std/isa/inst/Zihintntl/ntl.s1.yaml index f2667df6cc..9eaca11104 100644 --- a/spec/std/isa/inst/Zihintntl/ntl.s1.yaml +++ b/spec/std/isa/inst/Zihintntl/ntl.s1.yaml @@ -8,9 +8,9 @@ kind: instruction name: ntl.s1 long_name: Non-temporal locality hint, innermost shared description: | - The NTL.S1 instruction indicates that the target instruction does not exhibit - temporal locality within the capacity of the innermost level of shared cache - in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. + The NTL.S1 instruction indicates that the immediately subsequent instruction + does not exhibit temporal locality within the capacity of the innermost level + of shared cache in the memory hierarchy. NTL.S1 is encoded as ADD x0, x0, x4. definedBy: Zihintntl assembly: "" encoding: From 6f03fddc1776b40af65592f5175342c39770741b Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Tue, 28 Oct 2025 19:08:49 -0700 Subject: [PATCH 3/3] fix compressed hint descriptions --- .../instructions_appendix/all_instructions.golden.adoc | 8 ++++---- spec/std/isa/inst/Zihintntl/c.ntl.all.yaml | 2 +- spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml | 2 +- spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml | 2 +- spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backends/instructions_appendix/all_instructions.golden.adoc b/backends/instructions_appendix/all_instructions.golden.adoc index 4415f08711..cddee7d88c 100644 --- a/backends/instructions_appendix/all_instructions.golden.adoc +++ b/backends/instructions_appendix/all_instructions.golden.adoc @@ -4868,7 +4868,7 @@ Encoding:: Description:: The C.NTL.ALL instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of any level of cache in -the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x0, x5. +the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x5. Decode Variables:: @@ -4901,7 +4901,7 @@ Encoding:: Description:: The C.NTL.P1 instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of the innermost level -of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x0, x2. +of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x2. Decode Variables:: @@ -4934,7 +4934,7 @@ Encoding:: Description:: The C.NTL.PALL instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of any level of private -cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x0, x3. +cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x3. Decode Variables:: @@ -4967,7 +4967,7 @@ Encoding:: Description:: The C.NTL.S1 instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of the innermost level -of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x0, x4. +of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x4. Decode Variables:: diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml index f05a91e43e..521c394078 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.all.yaml @@ -10,7 +10,7 @@ long_name: Compressed non-temporal locality hint, all description: | The C.NTL.ALL instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of any level of cache in - the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x0, x5. + the memory hierarchy. C.NTL.ALL is encoded as C.ADD x0, x5. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml index 02c5d3d60d..163c679313 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml @@ -10,7 +10,7 @@ long_name: Compressed non-temporal locality hint, innermost private description: | The C.NTL.P1 instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of the innermost level - of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x0, x2. + of private cache in the memory hierarchy. C.NTL.P1 is encoded as C.ADD x0, x2. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml index 05eabe0d20..459daa4148 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml @@ -10,7 +10,7 @@ long_name: Compressed non-temporal locality hint, all private description: | The C.NTL.PALL instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of any level of private - cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x0, x3. + cache in the memory hierarchy. C.NTL.PALL is encoded as C.ADD x0, x3. definedBy: allOf: - Zca diff --git a/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml index eec757b588..ecff447acd 100644 --- a/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml +++ b/spec/std/isa/inst/Zihintntl/c.ntl.s1.yaml @@ -10,7 +10,7 @@ long_name: Compressed non-temporal locality hint, innermost shared description: | The C.NTL.S1 instruction indicates that the immediately subsequent instruction does not exhibit temporal locality within the capacity of the innermost level - of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x0, x4. + of shared cache in the memory hierarchy. C.NTL.S1 is encoded as C.ADD x0, x4. definedBy: allOf: - Zca