diff options
author | Nikola Veljkovic <Nikola.Veljkovic@imgtec.com> | 2014-12-26 17:33:14 +0100 |
---|---|---|
committer | Nikola Veljkovic <Nikola.Veljkovic@imgtec.com> | 2015-01-19 15:58:32 +0100 |
commit | 5f5f65183c9a77bd4b5dc63b5767af69ac938b39 (patch) | |
tree | 5c519da3a7052875d105896a0607cda996b689d9 | |
parent | 6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 (diff) | |
download | frameworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.tar.gz frameworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.tar.bz2 frameworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.zip |
Use register numbers instead of register names
Avoid ambiguity by using register numbers. Register names are
interpreted depending on the ABI. Fixes the issue with mips64 gcc,
where registers t0-t4 are translated into $8-$11 (o32 ABI) instead
of $12-$15 (o64 ABI).
Also, use t9 ($25) for storing function address
(in getProcAddress.cpp).
Change-Id: I12ef5cd98bf14dab3c01f2756889cc02856c1cd8
-rw-r--r-- | opengl/libs/EGL/getProcAddress.cpp | 12 | ||||
-rw-r--r-- | opengl/libs/GLES2/gl2.cpp | 16 | ||||
-rw-r--r-- | opengl/libs/GLES_CM/gl.cpp | 16 |
3 files changed, 22 insertions, 22 deletions
diff --git a/opengl/libs/EGL/getProcAddress.cpp b/opengl/libs/EGL/getProcAddress.cpp index 25cffaec9..2b2b2270e 100644 --- a/opengl/libs/EGL/getProcAddress.cpp +++ b/opengl/libs/EGL/getProcAddress.cpp @@ -125,9 +125,9 @@ namespace android { #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_EXTENSION_API(_api, ...) \ - register unsigned int _t0 asm("t0"); \ - register unsigned int _fn asm("t1"); \ - register unsigned int _tls asm("v1"); \ + register unsigned int _t0 asm("$12"); \ + register unsigned int _fn asm("$25"); \ + register unsigned int _tls asm("$3"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ @@ -157,9 +157,9 @@ namespace android { #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_EXTENSION_API(_api, ...) \ - register unsigned int _t0 asm("t0"); \ - register unsigned int _fn asm("t1"); \ - register unsigned int _tls asm("v1"); \ + register unsigned int _t0 asm("$8"); \ + register unsigned int _fn asm("$25"); \ + register unsigned int _tls asm("$3"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ diff --git a/opengl/libs/GLES2/gl2.cpp b/opengl/libs/GLES2/gl2.cpp index dfd19f209..40555d735 100644 --- a/opengl/libs/GLES2/gl2.cpp +++ b/opengl/libs/GLES2/gl2.cpp @@ -123,10 +123,10 @@ using namespace android; #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_API(_api, ...) \ - register unsigned long _t0 asm("t0"); \ - register unsigned long _fn asm("t9"); \ - register unsigned long _tls asm("v1"); \ - register unsigned long _v0 asm("v0"); \ + register unsigned long _t0 asm("$12"); \ + register unsigned long _fn asm("$25"); \ + register unsigned long _tls asm("$3"); \ + register unsigned long _v0 asm("$2"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ @@ -156,10 +156,10 @@ using namespace android; #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_API(_api, ...) \ - register unsigned int _t0 asm("t0"); \ - register unsigned int _fn asm("t9"); \ - register unsigned int _tls asm("v1"); \ - register unsigned int _v0 asm("v0"); \ + register unsigned int _t0 asm("$8"); \ + register unsigned int _fn asm("$25"); \ + register unsigned int _tls asm("$3"); \ + register unsigned int _v0 asm("$2"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ diff --git a/opengl/libs/GLES_CM/gl.cpp b/opengl/libs/GLES_CM/gl.cpp index 1297ac47a..0b309566c 100644 --- a/opengl/libs/GLES_CM/gl.cpp +++ b/opengl/libs/GLES_CM/gl.cpp @@ -179,10 +179,10 @@ GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_API(_api, ...) \ - register unsigned long _t0 asm("t0"); \ - register unsigned long _fn asm("t9"); \ - register unsigned long _tls asm("v1"); \ - register unsigned long _v0 asm("v0"); \ + register unsigned long _t0 asm("$12"); \ + register unsigned long _fn asm("$25"); \ + register unsigned long _tls asm("$3"); \ + register unsigned long _v0 asm("$2"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ @@ -212,10 +212,10 @@ GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, #define API_ENTRY(_api) __attribute__((noinline)) _api #define CALL_GL_API(_api, ...) \ - register unsigned int _t0 asm("t0"); \ - register unsigned int _fn asm("t9"); \ - register unsigned int _tls asm("v1"); \ - register unsigned int _v0 asm("v0"); \ + register unsigned int _t0 asm("$8"); \ + register unsigned int _fn asm("$25"); \ + register unsigned int _tls asm("$3"); \ + register unsigned int _v0 asm("$2"); \ asm volatile( \ ".set push\n\t" \ ".set noreorder\n\t" \ |