From 5f5f65183c9a77bd4b5dc63b5767af69ac938b39 Mon Sep 17 00:00:00 2001 From: Nikola Veljkovic Date: Fri, 26 Dec 2014 17:33:14 +0100 Subject: [PATCH] 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 --- opengl/libs/EGL/getProcAddress.cpp | 12 ++++++------ opengl/libs/GLES2/gl2.cpp | 16 ++++++++-------- 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" \