Add Chromium-only Blender WebEngine parity work
This commit is contained in:
109
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/addmul_1.asm
vendored
Normal file
109
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/addmul_1.asm
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
dnl SPARC v8 mpn_addmul_1 -- Multiply a limb vector with a limb and
|
||||
dnl add the result to a second limb vector.
|
||||
|
||||
dnl Copyright 1992-1995, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
C INPUT PARAMETERS
|
||||
C res_ptr o0
|
||||
C s1_ptr o1
|
||||
C size o2
|
||||
C s2_limb o3
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_addmul_1)
|
||||
ld [%o1+0],%o4
|
||||
andcc %o2,1,%g0
|
||||
be L(bx0)
|
||||
andcc %o2,2,%g0
|
||||
L(bx1): be L(01)
|
||||
orcc %g0,%g0,%g2
|
||||
L(b11): add %o0,-8,%o0
|
||||
b L(11)
|
||||
add %o1,-8,%o1
|
||||
L(bx0): be L(b00)
|
||||
orcc %g0,%g0,%g2
|
||||
L(b10): add %o0,-12,%o0
|
||||
b L(10)
|
||||
add %o1,4,%o1
|
||||
L(b00): add %o0,-4,%o0
|
||||
b L(00)
|
||||
add %o1,-4,%o1
|
||||
|
||||
L(top): addcc %g3,%g2,%g3 C 1
|
||||
ld [%o1+4],%o4 C 2
|
||||
rd %y,%g2 C 1
|
||||
addx %g0,%g2,%g2
|
||||
ld [%o0+0],%g1 C 2
|
||||
addcc %g1,%g3,%g3
|
||||
st %g3,[%o0+0] C 1
|
||||
L(00): umul %o4,%o3,%g3 C 2
|
||||
ld [%o0+4],%g1 C 2
|
||||
addxcc %g3,%g2,%g3 C 2
|
||||
ld [%o1+8],%o4 C 3
|
||||
rd %y,%g2 C 2
|
||||
addx %g0,%g2,%g2
|
||||
nop
|
||||
addcc %g1,%g3,%g3
|
||||
st %g3,[%o0+4] C 2
|
||||
L(11): umul %o4,%o3,%g3 C 3
|
||||
addxcc %g3,%g2,%g3 C 3
|
||||
ld [%o1+12],%o4 C 4
|
||||
rd %y,%g2 C 3
|
||||
add %o1,16,%o1
|
||||
addx %g0,%g2,%g2
|
||||
ld [%o0+8],%g1 C 2
|
||||
addcc %g1,%g3,%g3
|
||||
st %g3,[%o0+8] C 3
|
||||
L(10): umul %o4,%o3,%g3 C 4
|
||||
addxcc %g3,%g2,%g3 C 4
|
||||
ld [%o1+0],%o4 C 1
|
||||
rd %y,%g2 C 4
|
||||
addx %g0,%g2,%g2
|
||||
ld [%o0+12],%g1 C 2
|
||||
addcc %g1,%g3,%g3
|
||||
st %g3,[%o0+12] C 4
|
||||
add %o0,16,%o0
|
||||
addx %g0,%g2,%g2
|
||||
L(01): addcc %o2,-4,%o2
|
||||
bg L(top)
|
||||
umul %o4,%o3,%g3 C 1
|
||||
|
||||
addcc %g3,%g2,%g3 C 4
|
||||
rd %y,%g2 C 4
|
||||
addx %g0,%g2,%g2
|
||||
ld [%o0+0],%g1 C 2
|
||||
addcc %g1,%g3,%g3
|
||||
st %g3,[%o0+0] C 4
|
||||
|
||||
retl
|
||||
addx %g0,%g2,%o0
|
||||
EPILOGUE(mpn_addmul_1)
|
||||
73
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/gmp-mparam.h
vendored
Normal file
73
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/gmp-mparam.h
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
/* SPARC v8 gmp-mparam.h -- Compiler/machine parameter header file.
|
||||
|
||||
Copyright 1991, 1993, 1994, 1999-2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU MP Library.
|
||||
|
||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
it under the terms of either:
|
||||
|
||||
* the GNU Lesser General Public License as published by the Free
|
||||
Software Foundation; either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
or
|
||||
|
||||
* the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any
|
||||
later version.
|
||||
|
||||
or both in parallel, as here.
|
||||
|
||||
The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received copies of the GNU General Public License and the
|
||||
GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
see https://www.gnu.org/licenses/. */
|
||||
|
||||
|
||||
#define GMP_LIMB_BITS 32
|
||||
#define GMP_LIMB_BYTES 4
|
||||
|
||||
/* Generated by tuneup.c, 2004-02-07, gcc 2.95 */
|
||||
|
||||
#define MUL_TOOM22_THRESHOLD 10
|
||||
#define MUL_TOOM33_THRESHOLD 65
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 4
|
||||
#define SQR_TOOM2_THRESHOLD 18
|
||||
#define SQR_TOOM3_THRESHOLD 65
|
||||
|
||||
#define DIV_SB_PREINV_THRESHOLD 5
|
||||
#define DIV_DC_THRESHOLD 24
|
||||
#define POWM_THRESHOLD 38
|
||||
|
||||
#define HGCD_THRESHOLD 69
|
||||
#define GCD_ACCEL_THRESHOLD 3
|
||||
#define GCD_DC_THRESHOLD 498
|
||||
#define JACOBI_BASE_METHOD 2
|
||||
|
||||
#define DIVREM_1_NORM_THRESHOLD 6
|
||||
#define DIVREM_1_UNNORM_THRESHOLD 11
|
||||
#define MOD_1_NORM_THRESHOLD 5
|
||||
#define MOD_1_UNNORM_THRESHOLD 9
|
||||
#define USE_PREINV_DIVREM_1 1
|
||||
#define USE_PREINV_MOD_1 1
|
||||
#define DIVREM_2_THRESHOLD 0 /* always */
|
||||
#define DIVEXACT_1_THRESHOLD 0 /* always */
|
||||
#define MODEXACT_1_ODD_THRESHOLD 4
|
||||
|
||||
#define GET_STR_DC_THRESHOLD 14
|
||||
#define GET_STR_PRECOMPUTE_THRESHOLD 23
|
||||
#define SET_STR_THRESHOLD 1679
|
||||
|
||||
#define MUL_FFT_TABLE { 272, 672, 1152, 2560, 10240, 24576, 0 }
|
||||
#define MUL_FFT_MODF_THRESHOLD 264
|
||||
#define MUL_FFT_THRESHOLD 1792
|
||||
|
||||
#define SQR_FFT_TABLE { 304, 672, 1152, 3584, 10240, 24576, 0 }
|
||||
#define SQR_FFT_MODF_THRESHOLD 264
|
||||
#define SQR_FFT_THRESHOLD 1728
|
||||
93
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/mul_1.asm
vendored
Normal file
93
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/mul_1.asm
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
dnl SPARC v8 mpn_mul_1 -- Multiply a limb vector with a single limb and
|
||||
dnl store the product in a second limb vector.
|
||||
|
||||
dnl Copyright 1992, 1994, 1995, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
C INPUT PARAMETERS
|
||||
C res_ptr o0
|
||||
C s1_ptr o1
|
||||
C size o2
|
||||
C s2_limb o3
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_mul_1)
|
||||
ld [%o1+0],%o4
|
||||
andcc %o2,1,%g0
|
||||
be L(bx0)
|
||||
andcc %o2,2,%g0
|
||||
L(bx1): be L(01)
|
||||
orcc %g0,%g0,%g2
|
||||
L(b11): add %o0,-8,%o0
|
||||
b L(11)
|
||||
add %o1,-8,%o1
|
||||
L(bx0): be L(b00)
|
||||
orcc %g0,%g0,%g2
|
||||
L(b10): add %o0,-12,%o0
|
||||
b L(10)
|
||||
add %o1,4,%o1
|
||||
L(b00): add %o0,-4,%o0
|
||||
b L(00)
|
||||
add %o1,-4,%o1
|
||||
|
||||
L(top): addcc %g3,%g2,%g3 C 1
|
||||
ld [%o1+4],%o4 C 2
|
||||
st %g3,[%o0+0] C 1
|
||||
rd %y,%g2 C 1
|
||||
L(00): umul %o4,%o3,%g3 C 2
|
||||
addxcc %g3,%g2,%g3 C 2
|
||||
ld [%o1+8],%o4 C 3
|
||||
st %g3,[%o0+4] C 2
|
||||
rd %y,%g2 C 2
|
||||
L(11): umul %o4,%o3,%g3 C 3
|
||||
addxcc %g3,%g2,%g3 C 3
|
||||
ld [%o1+12],%o4 C 4
|
||||
add %o1,16,%o1
|
||||
st %g3,[%o0+8] C 3
|
||||
rd %y,%g2 C 3
|
||||
L(10): umul %o4,%o3,%g3 C 4
|
||||
addxcc %g3,%g2,%g3 C 4
|
||||
ld [%o1+0],%o4 C 1
|
||||
st %g3,[%o0+12] C 4
|
||||
add %o0,16,%o0
|
||||
rd %y,%g2 C 4
|
||||
addx %g0,%g2,%g2
|
||||
L(01): addcc %o2,-4,%o2
|
||||
bg L(top)
|
||||
umul %o4,%o3,%g3 C 1
|
||||
|
||||
addcc %g3,%g2,%g3 C 4
|
||||
st %g3,[%o0+0] C 4
|
||||
rd %y,%g2 C 4
|
||||
|
||||
retl
|
||||
addx %g0,%g2,%o0
|
||||
EPILOGUE(mpn_mul_1)
|
||||
67
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/submul_1.asm
vendored
Normal file
67
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/submul_1.asm
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
dnl SPARC v8 mpn_submul_1 -- Multiply a limb vector with a limb and
|
||||
dnl subtract the result from a second limb vector.
|
||||
|
||||
dnl Copyright 1992-1994, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
C INPUT PARAMETERS
|
||||
C res_ptr o0
|
||||
C s1_ptr o1
|
||||
C size o2
|
||||
C s2_limb o3
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_submul_1)
|
||||
sub %g0,%o2,%o2 C negate ...
|
||||
sll %o2,2,%o2 C ... and scale size
|
||||
sub %o1,%o2,%o1 C o1 is offset s1_ptr
|
||||
sub %o0,%o2,%g1 C g1 is offset res_ptr
|
||||
|
||||
mov 0,%o0 C clear cy_limb
|
||||
|
||||
L(loop):
|
||||
ld [%o1+%o2],%o4
|
||||
ld [%g1+%o2],%g2
|
||||
umul %o4,%o3,%o5
|
||||
rd %y,%g3
|
||||
addcc %o5,%o0,%o5
|
||||
addx %g3,0,%o0
|
||||
subcc %g2,%o5,%g2
|
||||
addx %o0,0,%o0
|
||||
st %g2,[%g1+%o2]
|
||||
|
||||
addcc %o2,4,%o2
|
||||
bne L(loop)
|
||||
nop
|
||||
|
||||
retl
|
||||
nop
|
||||
EPILOGUE(mpn_submul_1)
|
||||
73
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/supersparc/gmp-mparam.h
vendored
Normal file
73
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/supersparc/gmp-mparam.h
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
/* SuperSPARC gmp-mparam.h -- Compiler/machine parameter header file.
|
||||
|
||||
Copyright 1991, 1993, 1994, 1999-2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU MP Library.
|
||||
|
||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
it under the terms of either:
|
||||
|
||||
* the GNU Lesser General Public License as published by the Free
|
||||
Software Foundation; either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
or
|
||||
|
||||
* the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any
|
||||
later version.
|
||||
|
||||
or both in parallel, as here.
|
||||
|
||||
The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received copies of the GNU General Public License and the
|
||||
GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
see https://www.gnu.org/licenses/. */
|
||||
|
||||
|
||||
#define GMP_LIMB_BITS 32
|
||||
#define GMP_LIMB_BYTES 4
|
||||
|
||||
/* Generated by tuneup.c, 2004-02-10, gcc 3.3 */
|
||||
|
||||
#define MUL_TOOM22_THRESHOLD 14
|
||||
#define MUL_TOOM33_THRESHOLD 81
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 5
|
||||
#define SQR_TOOM2_THRESHOLD 28
|
||||
#define SQR_TOOM3_THRESHOLD 86
|
||||
|
||||
#define DIV_SB_PREINV_THRESHOLD 0 /* always */
|
||||
#define DIV_DC_THRESHOLD 26
|
||||
#define POWM_THRESHOLD 79
|
||||
|
||||
#define HGCD_THRESHOLD 97
|
||||
#define GCD_ACCEL_THRESHOLD 3
|
||||
#define GCD_DC_THRESHOLD 470
|
||||
#define JACOBI_BASE_METHOD 2
|
||||
|
||||
#define DIVREM_1_NORM_THRESHOLD 0 /* always */
|
||||
#define DIVREM_1_UNNORM_THRESHOLD 3
|
||||
#define MOD_1_NORM_THRESHOLD 0 /* always */
|
||||
#define MOD_1_UNNORM_THRESHOLD 3
|
||||
#define USE_PREINV_DIVREM_1 1
|
||||
#define USE_PREINV_MOD_1 1
|
||||
#define DIVREM_2_THRESHOLD 0 /* always */
|
||||
#define DIVEXACT_1_THRESHOLD 0 /* always */
|
||||
#define MODEXACT_1_ODD_THRESHOLD 0 /* always */
|
||||
|
||||
#define GET_STR_DC_THRESHOLD 19
|
||||
#define GET_STR_PRECOMPUTE_THRESHOLD 34
|
||||
#define SET_STR_THRESHOLD 3524
|
||||
|
||||
#define MUL_FFT_TABLE { 304, 800, 1408, 3584, 10240, 24576, 0 }
|
||||
#define MUL_FFT_MODF_THRESHOLD 264
|
||||
#define MUL_FFT_THRESHOLD 2304
|
||||
|
||||
#define SQR_FFT_TABLE { 336, 800, 1408, 3584, 10240, 24576, 0 }
|
||||
#define SQR_FFT_MODF_THRESHOLD 280
|
||||
#define SQR_FFT_THRESHOLD 2304
|
||||
131
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/supersparc/udiv.asm
vendored
Normal file
131
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/supersparc/udiv.asm
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
dnl SuperSPARC mpn_udiv_qrnnd division support, used from longlong.h.
|
||||
dnl This is for SuperSPARC only, to compensate for its semi-functional
|
||||
dnl udiv instruction.
|
||||
|
||||
dnl Copyright 1993, 1994, 1996, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
C INPUT PARAMETERS
|
||||
C rem_ptr i0
|
||||
C n1 i1
|
||||
C n0 i2
|
||||
C d i3
|
||||
|
||||
ASM_START()
|
||||
|
||||
ifdef(`PIC',
|
||||
` TEXT
|
||||
L(getpc):
|
||||
retl
|
||||
nop')
|
||||
|
||||
TEXT
|
||||
ALIGN(8)
|
||||
L(C0): .double 0r4294967296
|
||||
L(C1): .double 0r2147483648
|
||||
|
||||
PROLOGUE(mpn_udiv_qrnnd)
|
||||
save %sp,-104,%sp
|
||||
st %i1,[%fp-8]
|
||||
ld [%fp-8],%f10
|
||||
|
||||
ifdef(`PIC',
|
||||
`L(pc): call L(getpc) C put address of this insn in %o7
|
||||
ldd [%o7+L(C0)-L(pc)],%f8',
|
||||
` sethi %hi(L(C0)),%o7
|
||||
ldd [%o7+%lo(L(C0))],%f8')
|
||||
|
||||
fitod %f10,%f4
|
||||
cmp %i1,0
|
||||
bge L(248)
|
||||
mov %i0,%i5
|
||||
faddd %f4,%f8,%f4
|
||||
L(248):
|
||||
st %i2,[%fp-8]
|
||||
ld [%fp-8],%f10
|
||||
fmuld %f4,%f8,%f6
|
||||
cmp %i2,0
|
||||
bge L(249)
|
||||
fitod %f10,%f2
|
||||
faddd %f2,%f8,%f2
|
||||
L(249):
|
||||
st %i3,[%fp-8]
|
||||
faddd %f6,%f2,%f2
|
||||
ld [%fp-8],%f10
|
||||
cmp %i3,0
|
||||
bge L(250)
|
||||
fitod %f10,%f4
|
||||
faddd %f4,%f8,%f4
|
||||
L(250):
|
||||
fdivd %f2,%f4,%f2
|
||||
|
||||
ifdef(`PIC',
|
||||
` ldd [%o7+L(C1)-L(pc)],%f4',
|
||||
` sethi %hi(L(C1)),%o7
|
||||
ldd [%o7+%lo(L(C1))],%f4')
|
||||
|
||||
fcmped %f2,%f4
|
||||
nop
|
||||
fbge,a L(251)
|
||||
fsubd %f2,%f4,%f2
|
||||
fdtoi %f2,%f2
|
||||
st %f2,[%fp-8]
|
||||
b L(252)
|
||||
ld [%fp-8],%i4
|
||||
L(251):
|
||||
fdtoi %f2,%f2
|
||||
st %f2,[%fp-8]
|
||||
ld [%fp-8],%i4
|
||||
sethi %hi(-2147483648),%g2
|
||||
xor %i4,%g2,%i4
|
||||
L(252):
|
||||
umul %i3,%i4,%g3
|
||||
rd %y,%i0
|
||||
subcc %i2,%g3,%o7
|
||||
subxcc %i1,%i0,%g0
|
||||
be L(253)
|
||||
cmp %o7,%i3
|
||||
|
||||
add %i4,-1,%i0
|
||||
add %o7,%i3,%o7
|
||||
st %o7,[%i5]
|
||||
ret
|
||||
restore
|
||||
L(253):
|
||||
blu L(246)
|
||||
mov %i4,%i0
|
||||
add %i4,1,%i0
|
||||
sub %o7,%i3,%o7
|
||||
L(246):
|
||||
st %o7,[%i5]
|
||||
ret
|
||||
restore
|
||||
EPILOGUE(mpn_udiv_qrnnd)
|
||||
131
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/udiv.asm
vendored
Normal file
131
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/udiv.asm
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
dnl SuperSPARC mpn_udiv_qrnnd division support, used from longlong.h.
|
||||
dnl This is for SuperSPARC only, to compensate for its semi-functional
|
||||
dnl udiv instruction.
|
||||
|
||||
dnl Copyright 1993, 1994, 1996, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
C INPUT PARAMETERS
|
||||
C rem_ptr i0
|
||||
C n1 i1
|
||||
C n0 i2
|
||||
C d i3
|
||||
|
||||
ASM_START()
|
||||
|
||||
ifdef(`PIC',
|
||||
` TEXT
|
||||
L(getpc):
|
||||
retl
|
||||
nop')
|
||||
|
||||
TEXT
|
||||
ALIGN(8)
|
||||
L(C0): .double 0r4294967296
|
||||
L(C1): .double 0r2147483648
|
||||
|
||||
PROLOGUE(mpn_udiv_qrnnd)
|
||||
save %sp,-104,%sp
|
||||
st %i1,[%fp-8]
|
||||
ld [%fp-8],%f10
|
||||
|
||||
ifdef(`PIC',
|
||||
`L(pc): call L(getpc) C put address of this insn in %o7
|
||||
ldd [%o7+L(C0)-L(pc)],%f8',
|
||||
` sethi %hi(L(C0)),%o7
|
||||
ldd [%o7+%lo(L(C0))],%f8')
|
||||
|
||||
fitod %f10,%f4
|
||||
cmp %i1,0
|
||||
bge L(248)
|
||||
mov %i0,%i5
|
||||
faddd %f4,%f8,%f4
|
||||
L(248):
|
||||
st %i2,[%fp-8]
|
||||
ld [%fp-8],%f10
|
||||
fmuld %f4,%f8,%f6
|
||||
cmp %i2,0
|
||||
bge L(249)
|
||||
fitod %f10,%f2
|
||||
faddd %f2,%f8,%f2
|
||||
L(249):
|
||||
st %i3,[%fp-8]
|
||||
faddd %f6,%f2,%f2
|
||||
ld [%fp-8],%f10
|
||||
cmp %i3,0
|
||||
bge L(250)
|
||||
fitod %f10,%f4
|
||||
faddd %f4,%f8,%f4
|
||||
L(250):
|
||||
fdivd %f2,%f4,%f2
|
||||
|
||||
ifdef(`PIC',
|
||||
` ldd [%o7+L(C1)-L(pc)],%f4',
|
||||
` sethi %hi(L(C1)),%o7
|
||||
ldd [%o7+%lo(L(C1))],%f4')
|
||||
|
||||
fcmped %f2,%f4
|
||||
nop
|
||||
fbge,a L(251)
|
||||
fsubd %f2,%f4,%f2
|
||||
fdtoi %f2,%f2
|
||||
st %f2,[%fp-8]
|
||||
b L(252)
|
||||
ld [%fp-8],%i4
|
||||
L(251):
|
||||
fdtoi %f2,%f2
|
||||
st %f2,[%fp-8]
|
||||
ld [%fp-8],%i4
|
||||
sethi %hi(-2147483648),%g2
|
||||
xor %i4,%g2,%i4
|
||||
L(252):
|
||||
umul %i3,%i4,%g3
|
||||
rd %y,%i0
|
||||
subcc %i2,%g3,%o7
|
||||
subxcc %i1,%i0,%g0
|
||||
be L(253)
|
||||
cmp %o7,%i3
|
||||
|
||||
add %i4,-1,%i0
|
||||
add %o7,%i3,%o7
|
||||
st %o7,[%i5]
|
||||
ret
|
||||
restore
|
||||
L(253):
|
||||
blu L(246)
|
||||
mov %i4,%i0
|
||||
add %i4,1,%i0
|
||||
sub %o7,%i3,%o7
|
||||
L(246):
|
||||
st %o7,[%i5]
|
||||
ret
|
||||
restore
|
||||
EPILOGUE(mpn_udiv_qrnnd)
|
||||
40
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/umul.asm
vendored
Normal file
40
blender-5.2.0/extern/gmp-source/mpn/sparc32/v8/umul.asm
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
dnl SPARC v8 mpn_umul_ppmm -- support for longlong.h for non-gcc.
|
||||
|
||||
dnl Copyright 1995, 1996, 2000 Free Software Foundation, Inc.
|
||||
|
||||
dnl This file is part of the GNU MP Library.
|
||||
dnl
|
||||
dnl The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of either:
|
||||
dnl
|
||||
dnl * the GNU Lesser General Public License as published by the Free
|
||||
dnl Software Foundation; either version 3 of the License, or (at your
|
||||
dnl option) any later version.
|
||||
dnl
|
||||
dnl or
|
||||
dnl
|
||||
dnl * the GNU General Public License as published by the Free Software
|
||||
dnl Foundation; either version 2 of the License, or (at your option) any
|
||||
dnl later version.
|
||||
dnl
|
||||
dnl or both in parallel, as here.
|
||||
dnl
|
||||
dnl The GNU MP Library is distributed in the hope that it will be useful, but
|
||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
dnl for more details.
|
||||
dnl
|
||||
dnl You should have received copies of the GNU General Public License and the
|
||||
dnl GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
dnl see https://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
include(`../config.m4')
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_umul_ppmm)
|
||||
umul %o1,%o2,%g2
|
||||
st %g2,[%o0]
|
||||
retl
|
||||
rd %y,%o0
|
||||
EPILOGUE(mpn_umul_ppmm)
|
||||
Reference in New Issue
Block a user