You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
According to comments in code, it's intended to support offsets as wide as 32-bit unsigned integers. Doing that with just add operation with a shift is not feasible since 24-bit shifts are not allowed.
For wide offsets, we should use a temporary register for storing the immediate and a sequence from movz/movk/movn instructions to fill this register.
The text was updated successfully, but these errors were encountered:
Consider the following IR:
When compiling to an object file via the following command:
We get the following assertion triggered:
We try to emit "add immediate" instruction with 24-bit shift of the immediate while only 0 or 12 bits are allowed. See https://developer.arm.com/documentation/ddi0602/2023-09/Base-Instructions/ADD--immediate---Add--immediate--?lang=en.
According to comments in code, it's intended to support offsets as wide as 32-bit unsigned integers. Doing that with just add operation with a shift is not feasible since 24-bit shifts are not allowed.
For wide offsets, we should use a temporary register for storing the immediate and a sequence from movz/movk/movn instructions to fill this register.
The text was updated successfully, but these errors were encountered: