Mesa (main): pan/va: Add .signed bit to right shift instructions
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 22 22:16:28 UTC 2021
Module: Mesa
Branch: main
Commit: 8df1b42eb0387f133746e4f4bb22147a6b3c980e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8df1b42eb0387f133746e4f4bb22147a6b3c980e
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Wed Dec 22 12:14:59 2021 -0500
pan/va: Add .signed bit to right shift instructions
This makes the RSHIFT_* family of instructions act like ARSHIFT.* on
Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14292>
---
src/panfrost/bifrost/valhall/ISA.xml | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/panfrost/bifrost/valhall/ISA.xml b/src/panfrost/bifrost/valhall/ISA.xml
index d5022a8531a..c4ffa073c4e 100644
--- a/src/panfrost/bifrost/valhall/ISA.xml
+++ b/src/panfrost/bifrost/valhall/ISA.xml
@@ -1578,8 +1578,11 @@
<mod name="left" start="128" size="1" implied="true"/>
<desc>
Right shifts its first source by a specified amount and bitwise ANDs it with the
- second source, optionally inverting the second source or the result.
+ second source, optionally inverting the second source or the result. If
+ `signed` is set, the hardware performs an arithmetic right shift; otherwise,
+ it performs an unsigned right shift.
</desc>
+ <mod name="signed" start="34" size="1"/>
<not_result/>
<src widen="true">A</src>
<src lanes="true" size="8">shift</src>
@@ -1610,8 +1613,11 @@
<mod name="left" start="128" size="1" implied="true"/>
<desc>
Right shifts its first source by a specified amount and bitwise ORs it with the
- second source, optionally inverting the second source or the result.
- </desc>
+ second source, optionally inverting the second source or the result. If
+ `signed` is set, the hardware performs an arithmetic right shift; otherwise,
+ it performs an unsigned right shift.
+ </desc>
+ <mod name="signed" start="34" size="1"/>
<not_result/>
<src widen="true">A</src>
<src lanes="true" size="8">shift</src>
@@ -1642,8 +1648,11 @@
<mod name="left" start="128" size="1" implied="true"/>
<desc>
Right shifts its first source by a specified amount and bitwise XORs it with the
- second source, optionally inverting the second source or the result.
+ second source, optionally inverting the second source or the result. If
+ `signed` is set, the hardware performs an arithmetic right shift; otherwise,
+ it performs an unsigned right shift.
</desc>
+ <mod name="signed" start="34" size="1"/>
<not_result/>
<src widen="true">A</src>
<src lanes="true" size="8">shift</src>
More information about the mesa-commit
mailing list