Mesa (master): amd/addrlib: prevent defining regparm differently

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Mar 25 23:56:01 UTC 2021


Module: Mesa
Branch: master
Commit: 1d69c0419b39952ec9ad869fbec58be1c033cdb6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d69c0419b39952ec9ad869fbec58be1c033cdb6

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Wed Mar 17 16:37:47 2021 -0400

amd/addrlib: prevent defining regparm differently

Define it in meson, so addrlib won't define it.
This is adding back the addrlib original code.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9668>

---

 src/amd/addrlib/inc/addrtypes.h | 9 ++++++---
 src/amd/addrlib/meson.build     | 3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/amd/addrlib/inc/addrtypes.h b/src/amd/addrlib/inc/addrtypes.h
index 5524f67cd45..095fc27ad34 100644
--- a/src/amd/addrlib/inc/addrtypes.h
+++ b/src/amd/addrlib/inc/addrtypes.h
@@ -87,9 +87,12 @@ typedef int            INT;
 #endif
 
 #ifndef ADDR_FASTCALL
-    #if defined(__GNUC__) || defined(BRAHMA_ARM)
-        // We don't care about the performance of call instructions in addrlib
-        #define ADDR_FASTCALL
+    #if defined(__GNUC__)
+        #if defined(__i386__) || defined(__amd64__) || defined(__x86_64__)
+            #define ADDR_FASTCALL __attribute__((regparm(0)))
+        #else
+            #define ADDR_FASTCALL
+        #endif
     #else
         #define ADDR_FASTCALL __fastcall
     #endif
diff --git a/src/amd/addrlib/meson.build b/src/amd/addrlib/meson.build
index f396c86211a..7609cc94eb3 100644
--- a/src/amd/addrlib/meson.build
+++ b/src/amd/addrlib/meson.build
@@ -52,7 +52,8 @@ files_addrlib = files(
   'src/r800/siaddrlib.h',
 )
 
-cpp_args_addrlib = []
+# Skip the addrlib definition of ADDR_FASTCALL so as not to use regparm.
+cpp_args_addrlib = ['-DADDR_FASTCALL=']
 foreach w : ['-Wno-unused-variable', '-Wno-unused-local-typedefs',
              '-Wno-unused-but-set-variable', '-Wno-maybe-uninitialized']
   if cpp.has_argument(w)



More information about the mesa-commit mailing list