Replies: 4 comments
-
|
I like the syntax of |
Beta Was this translation helpful? Give feedback.
-
|
I only like the syntax partially. There is no reason to add indexing information or to add identifiers which have no semantics on the left side of the equality operator. I propose to only allow a single identifier on the left side. On the right side instead of using identifiers I would only allow a constant index expression or a Eventually we need the partial/full read/write annotations. |
Beta Was this translation helpful? Give feedback.
-
|
Some constraints of the this slicing:
Current implementation limitations:
PS: Sorry for the late clarification |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Currently alias registers have mainly two purposes:
Slicing of Source Register
It would be useful to define an alias register that operates only on a slice of the original register:
Since slices must apply to the innermost index access, the syntax for alias registers must be extended to support parameters. Without parameters, we cannot slice results from indexed register files. For example, in AArch64 this could look like:
Here, the alias register
Wuses a parameterito select fromX, and slices the result to extract the lower 32 bits. AsWis alias ofX, the zero constraint also applies toW.This syntax also implies that:
is equivalent to:
In both cases B is of type
Bits<5> -> Bits<64>.Alias Register Grammar
The grammar and type-checking rules are strict and only allow forms as shown above:
All parameter identifiers must appear in the right-hand expression. The number of parameters must not exceed the number of index dimensions on the source register. Additionally, only a single slice is allowed at the end of the expression.
Beta Was this translation helpful? Give feedback.
All reactions