Loading opengl/libagl/Android.bp +0 −14 Original line number Diff line number Diff line Loading @@ -33,14 +33,6 @@ cc_defaults { arm: { cflags: ["-fstrict-aliasing"], }, mips: { cflags: [ "-fstrict-aliasing", // The graphics code can generate division by zero "-mno-check-zero-division", ], }, }, } Loading @@ -67,12 +59,6 @@ cc_library_shared { "iterators.S", ], }, mips: { rev6: { srcs: ["arch-mips/fixed_asm.S"], }, }, }, relative_install_path: "egl", Loading opengl/libagl/arch-mips/fixed_asm.Sdeleted 100644 → 0 +0 −61 Original line number Diff line number Diff line /* libs/opengles/arch-mips/fixed_asm.S ** ** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ .text .align 4 /* * this version rounds-to-nearest and saturates numbers * outside the range (but not NaNs). */ .global gglFloatToFixed .ent gglFloatToFixed .type gglFloatToFixed, @function gglFloatToFixed: #if !defined(__mips_soft_float) mfc1 $a0,$f12 #endif srl $t0,$a0,31 /* t0 <- sign bit */ srl $t1,$a0,23 andi $t1,$t1,0xff /* get the e */ li $t2,0x8e subu $t1,$t2,$t1 /* t1=127+15-e */ blez $t1,0f /* t1<=0? */ sll $t2,$a0,8 /* mantissa<<8 */ lui $t3,0x8000 or $t2,$t2,$t3 /* add the missing 1 */ subu $t1,$t1,1 srl $v0,$t2,$t1 sltiu $t3,$t1,32 /* t3=1 if t1<32, else t3=0. t1>=32 means the float value is too small. */ andi $t4,$v0,0x1 srl $v0,$v0,1 /* scale to 16.16 */ addu $v0,$v0,$t4 /* round-to-nearest */ subu $t2,$zero,$v0 movn $v0,$t2,$t0 /* if negative? */ or $t1,$a0,$zero /* a0=0? */ movz $v0,$zero,$t1 movz $v0,$zero,$t3 /* t3=0 then res=0 */ jr $ra 0: lui $t1,0x8000 and $v0,$a0,$t1 /* keep only the sign bit */ li $t1,0x7fffffff movz $v0,$t1,$t0 /* positive, maximum value */ jr $ra .end gglFloatToFixed opengl/libagl/fp.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ // ---------------------------------------------------------------------------- #if !(defined(__arm__) || (defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6)) #if !defined(__arm__) GGLfixed gglFloatToFixed(float v) { return GGLfixed(floorf(v * 65536.0f + 0.5f)); } Loading opengl/libagl/matrix.h +0 −44 Original line number Diff line number Diff line Loading @@ -74,30 +74,6 @@ GLfixed vsquare3(GLfixed a, GLfixed b, GLfixed c) ); return r; #elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 GLfixed res; int32_t t1,t2,t3; asm( "mult %[a], %[a] \r\n" "li %[res],0x8000 \r\n" "madd %[b],%[b] \r\n" "move %[t3],$zero \r\n" "madd %[c],%[c] \r\n" "mflo %[t1]\r\n" "mfhi %[t2]\r\n" "addu %[t1],%[res],%[t1]\r\n" /*add 0x8000*/ "sltu %[t3],%[t1],%[res]\r\n" "addu %[t2],%[t2],%[t3]\r\n" "srl %[res],%[t1],16\r\n" "sll %[t2],%[t2],16\r\n" "or %[res],%[res],%[t2]\r\n" : [res]"=&r"(res),[t1]"=&r"(t1),[t2]"=&r"(t2),[t3]"=&r"(t3) : [a] "r" (a),[b] "r" (b),[c] "r" (c) : "%hi","%lo" ); return res; #else return (( int64_t(a)*a + Loading Loading @@ -160,26 +136,6 @@ static inline GLfixed mla3a( GLfixed a0, GLfixed b0, ); return r; #elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 GLfixed res; int32_t t1,t2; asm( "mult %[a0],%[b0] \r\n" "madd %[a1],%[b1] \r\n" "madd %[a2],%[b2] \r\n" "mflo %[t2]\r\n" "mfhi %[t1]\r\n" "srl %[t2],%[t2],16\r\n" "sll %[t1],%[t1],16\r\n" "or %[t2],%[t2],%[t1]\r\n" "addu %[res],%[t2],%[c]" : [res]"=&r"(res),[t1]"=&r"(t1),[t2]"=&r"(t2) : [a0] "r" (a0),[b0] "r" (b0),[a1] "r" (a1),[b1] "r" (b1),[a2] "r" (a2),[b2] "r" (b2),[c] "r" (c) : "%hi","%lo" ); return res; #else return (( int64_t(a0)*b0 + Loading Loading
opengl/libagl/Android.bp +0 −14 Original line number Diff line number Diff line Loading @@ -33,14 +33,6 @@ cc_defaults { arm: { cflags: ["-fstrict-aliasing"], }, mips: { cflags: [ "-fstrict-aliasing", // The graphics code can generate division by zero "-mno-check-zero-division", ], }, }, } Loading @@ -67,12 +59,6 @@ cc_library_shared { "iterators.S", ], }, mips: { rev6: { srcs: ["arch-mips/fixed_asm.S"], }, }, }, relative_install_path: "egl", Loading
opengl/libagl/arch-mips/fixed_asm.Sdeleted 100644 → 0 +0 −61 Original line number Diff line number Diff line /* libs/opengles/arch-mips/fixed_asm.S ** ** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ .text .align 4 /* * this version rounds-to-nearest and saturates numbers * outside the range (but not NaNs). */ .global gglFloatToFixed .ent gglFloatToFixed .type gglFloatToFixed, @function gglFloatToFixed: #if !defined(__mips_soft_float) mfc1 $a0,$f12 #endif srl $t0,$a0,31 /* t0 <- sign bit */ srl $t1,$a0,23 andi $t1,$t1,0xff /* get the e */ li $t2,0x8e subu $t1,$t2,$t1 /* t1=127+15-e */ blez $t1,0f /* t1<=0? */ sll $t2,$a0,8 /* mantissa<<8 */ lui $t3,0x8000 or $t2,$t2,$t3 /* add the missing 1 */ subu $t1,$t1,1 srl $v0,$t2,$t1 sltiu $t3,$t1,32 /* t3=1 if t1<32, else t3=0. t1>=32 means the float value is too small. */ andi $t4,$v0,0x1 srl $v0,$v0,1 /* scale to 16.16 */ addu $v0,$v0,$t4 /* round-to-nearest */ subu $t2,$zero,$v0 movn $v0,$t2,$t0 /* if negative? */ or $t1,$a0,$zero /* a0=0? */ movz $v0,$zero,$t1 movz $v0,$zero,$t3 /* t3=0 then res=0 */ jr $ra 0: lui $t1,0x8000 and $v0,$a0,$t1 /* keep only the sign bit */ li $t1,0x7fffffff movz $v0,$t1,$t0 /* positive, maximum value */ jr $ra .end gglFloatToFixed
opengl/libagl/fp.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ // ---------------------------------------------------------------------------- #if !(defined(__arm__) || (defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6)) #if !defined(__arm__) GGLfixed gglFloatToFixed(float v) { return GGLfixed(floorf(v * 65536.0f + 0.5f)); } Loading
opengl/libagl/matrix.h +0 −44 Original line number Diff line number Diff line Loading @@ -74,30 +74,6 @@ GLfixed vsquare3(GLfixed a, GLfixed b, GLfixed c) ); return r; #elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 GLfixed res; int32_t t1,t2,t3; asm( "mult %[a], %[a] \r\n" "li %[res],0x8000 \r\n" "madd %[b],%[b] \r\n" "move %[t3],$zero \r\n" "madd %[c],%[c] \r\n" "mflo %[t1]\r\n" "mfhi %[t2]\r\n" "addu %[t1],%[res],%[t1]\r\n" /*add 0x8000*/ "sltu %[t3],%[t1],%[res]\r\n" "addu %[t2],%[t2],%[t3]\r\n" "srl %[res],%[t1],16\r\n" "sll %[t2],%[t2],16\r\n" "or %[res],%[res],%[t2]\r\n" : [res]"=&r"(res),[t1]"=&r"(t1),[t2]"=&r"(t2),[t3]"=&r"(t3) : [a] "r" (a),[b] "r" (b),[c] "r" (c) : "%hi","%lo" ); return res; #else return (( int64_t(a)*a + Loading Loading @@ -160,26 +136,6 @@ static inline GLfixed mla3a( GLfixed a0, GLfixed b0, ); return r; #elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 GLfixed res; int32_t t1,t2; asm( "mult %[a0],%[b0] \r\n" "madd %[a1],%[b1] \r\n" "madd %[a2],%[b2] \r\n" "mflo %[t2]\r\n" "mfhi %[t1]\r\n" "srl %[t2],%[t2],16\r\n" "sll %[t1],%[t1],16\r\n" "or %[t2],%[t2],%[t1]\r\n" "addu %[res],%[t2],%[c]" : [res]"=&r"(res),[t1]"=&r"(t1),[t2]"=&r"(t2) : [a0] "r" (a0),[b0] "r" (b0),[a1] "r" (a1),[b1] "r" (b1),[a2] "r" (a2),[b2] "r" (b2),[c] "r" (c) : "%hi","%lo" ); return res; #else return (( int64_t(a0)*b0 + Loading