-
Notifications
You must be signed in to change notification settings - Fork 561
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i#6585: Add drcachesim vector length trace marker
Adds a new trace marker TRACE_MARKER_TYPE_DYNAMIC_VECTOR_LENGTH to drcachesim that indicates the current vector length for architectures which have a dynamic vector length that can't be statically determined from the instruction. The marker is emitted as part of the thread header when running on AArch64 with SVE support, but in the future could also be used to track changes in the vector length after prctl(PR_SVE_SET_VL, ..) system calls. Some SVE load and store instructions such as ``` LDR <Zt>, [<Xn|SP>{, #<imm>, MUL VL}]``` or ``` ST1D { <Zt>.D }, <Pg>, [<Xn|SP>{, #<imm>, MUL VL}]``` scale the immediate offset based on the hardware vector length so knowing the correct vector length for the traced application is important to properly decode and analyse these instructions. Fixes: #6585
- Loading branch information
1 parent
34898ce
commit a54610b
Showing
12 changed files
with
194 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
clients/drcachesim/tests/allasm-scattergather-vl-view-aarch64.templatex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
.* | ||
#if __ARM_FEATURE_SVE_BITS == 128 | ||
.*<marker: vector length 16 bytes> | ||
#elif __ARM_FEATURE_SVE_BITS == 256 | ||
.*<marker: vector length 32 bytes> | ||
#elif __ARM_FEATURE_SVE_BITS == 512 | ||
.*<marker: vector length 64 bytes> | ||
#endif | ||
.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
clients/drcachesim/tests/offline-allasm-scattergather-vl-view-aarch64.templatex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
.* | ||
#if __ARM_FEATURE_SVE_BITS == 128 | ||
.*<marker: vector length 16 bytes> | ||
.*a401a03c ld1b \+0x10\(%x1\)\[1byte\] %p0/z -> %z28\.b | ||
.*e5d1ec3c st3d %z28\.d %z29\.d %z30\.d %p3 -> \+0x30\(%x1\)\[8byte\] | ||
#elif __ARM_FEATURE_SVE_BITS == 256 | ||
.*<marker: vector length 32 bytes> | ||
.*a401a03c ld1b \+0x20\(%x1\)\[1byte\] %p0/z -> %z28.b | ||
.*e5d1ec3c st3d %z28\.d %z29\.d %z30\.d %p3 -> \+0x60\(%x1\)\[8byte\] | ||
#elif __ARM_FEATURE_SVE_BITS == 512 | ||
.*<marker: vector length 64 bytes> | ||
.*a401a03c ld1b \+0x40\(%x1\)\[1byte\] %p0/z -> %z28.b | ||
.*e5d1ec3c st3d %z28\.d %z29\.d %z30\.d %p3 -> \+0xc0\(%x1\)\[8byte\] | ||
#endif | ||
.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.