Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
256 changes: 256 additions & 0 deletions backends/instructions_appendix/all_instructions.golden.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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 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::
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 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::
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 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::
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 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::
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

Expand Down Expand Up @@ -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 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::
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 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::
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 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::
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 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::
ntl.s1 has no decode variables.

Included in::
[options="autowrap,autowidth"]
|===
| Extension | Version

| *Zihintntl* | ~> 1.0.0

|===


[#udb:doc:inst:or]
== or

Expand Down
2 changes: 1 addition & 1 deletion spec/std/isa/ext/Zihintntl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions spec/std/isa/inst/C/c.add.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down
5 changes: 5 additions & 0 deletions spec/std/isa/inst/I/add.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 26 additions & 0 deletions spec/std/isa/inst/Zihintntl/c.ntl.all.yaml
Original file line number Diff line number Diff line change
@@ -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 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
- Zihintntl
assembly: ""
encoding:
match: "1001000000010110"
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: false
26 changes: 26 additions & 0 deletions spec/std/isa/inst/Zihintntl/c.ntl.p1.yaml
Original file line number Diff line number Diff line change
@@ -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 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
- Zihintntl
assembly: ""
encoding:
match: "1001000000001010"
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: false
26 changes: 26 additions & 0 deletions spec/std/isa/inst/Zihintntl/c.ntl.pall.yaml
Original file line number Diff line number Diff line change
@@ -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 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
- Zihintntl
assembly: ""
encoding:
match: "1001000000001110"
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: false
Loading
Loading