Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f5f6518 authored by Nikola Veljkovic's avatar Nikola Veljkovic
Browse files

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
parent 6701fbe5
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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"                               \
+8 −8
Original line number Diff line number Diff line
@@ -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"                                \
+8 −8
Original line number Diff line number Diff line
@@ -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"                                \