summaryrefslogtreecommitdiffstats
path: root/opengl
diff options
context:
space:
mode:
authorNikola Veljkovic <Nikola.Veljkovic@imgtec.com>2014-12-26 17:33:14 +0100
committerNikola Veljkovic <Nikola.Veljkovic@imgtec.com>2015-01-19 15:58:32 +0100
commit5f5f65183c9a77bd4b5dc63b5767af69ac938b39 (patch)
tree5c519da3a7052875d105896a0607cda996b689d9 /opengl
parent6701fbe5f0d799c5245b0cdf3a69ecdcbfd9fb08 (diff)
downloadframeworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.zip
frameworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.tar.gz
frameworks_native-5f5f65183c9a77bd4b5dc63b5767af69ac938b39.tar.bz2
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
Diffstat (limited to 'opengl')
-rw-r--r--opengl/libs/EGL/getProcAddress.cpp12
-rw-r--r--opengl/libs/GLES2/gl2.cpp16
-rw-r--r--opengl/libs/GLES_CM/gl.cpp16
3 files changed, 22 insertions, 22 deletions
diff --git a/opengl/libs/EGL/getProcAddress.cpp b/opengl/libs/EGL/getProcAddress.cpp
index 25cffae..2b2b227 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 dfd19f2..40555d7 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 1297ac4..0b30956 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" \