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
This commit is contained in:
parent
6701fbe5f0
commit
5f5f65183c
@ -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" \
|
||||
|
@ -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" \
|
||||
|
@ -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" \
|
||||
|
Loading…
Reference in New Issue
Block a user