Add Chromium-only Blender WebEngine parity work
This commit is contained in:
128
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/copyd.asm
vendored
Normal file
128
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/copyd.asm
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
dnl PowerPC-64 mpn_copyd.
|
||||
|
||||
dnl Copyright 2004, 2005, 2013 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 cycles/limb
|
||||
C POWER3/PPC630 ?
|
||||
C POWER4/PPC970 ?
|
||||
C POWER5 ?
|
||||
C POWER6 1.25
|
||||
C POWER7 1.09
|
||||
|
||||
C INPUT PARAMETERS
|
||||
define(`rp', `r3')
|
||||
define(`up', `r4')
|
||||
define(`n', `r5')
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_copyd)
|
||||
|
||||
ifdef(`HAVE_ABI_mode32',
|
||||
` rldicl n, n, 0,32')
|
||||
|
||||
sldi r0, n, 3
|
||||
add up, up, r0 C point at u[] end
|
||||
add rp, rp, r0 C point at r[] end
|
||||
|
||||
cmpdi cr0, n, 4
|
||||
blt L(sml)
|
||||
|
||||
addi r10, n, 4
|
||||
srdi r10, r10, 3
|
||||
mtctr r10
|
||||
|
||||
andi. r0, n, 1
|
||||
rlwinm r11, n, 0,30,30
|
||||
rlwinm r12, n, 0,29,29
|
||||
cmpdi cr6, r11, 0
|
||||
cmpdi cr7, r12, 0
|
||||
|
||||
beq cr0, L(xx0)
|
||||
L(xx1): ld r6, -8(up)
|
||||
addi up, up, -8
|
||||
std r6, -8(rp)
|
||||
addi rp, rp, -8
|
||||
|
||||
L(xx0): bne cr6, L(x10)
|
||||
L(x00): ld r6, -8(up)
|
||||
ld r7, -16(up)
|
||||
bne cr7, L(100)
|
||||
L(000): addi rp, rp, 32
|
||||
b L(lo0)
|
||||
L(100): addi up, up, 32
|
||||
b L(lo4)
|
||||
L(x10): ld r8, -8(up)
|
||||
ld r9, -16(up)
|
||||
bne cr7, L(110)
|
||||
L(010): addi up, up, -16
|
||||
addi rp, rp, 16
|
||||
b L(lo2)
|
||||
L(110): addi up, up, 16
|
||||
addi rp, rp, 48
|
||||
b L(lo6)
|
||||
|
||||
L(sml): cmpdi cr0, n, 0
|
||||
beqlr- cr0
|
||||
mtctr n
|
||||
L(t): ld r6, -8(up)
|
||||
addi up, up, -8
|
||||
std r6, -8(rp)
|
||||
addi rp, rp, -8
|
||||
bdnz L(t)
|
||||
blr
|
||||
|
||||
ALIGN(32)
|
||||
L(top): std r6, -8(rp)
|
||||
std r7, -16(rp)
|
||||
L(lo2): ld r6, -8(up)
|
||||
ld r7, -16(up)
|
||||
std r8, -24(rp)
|
||||
std r9, -32(rp)
|
||||
L(lo0): ld r8, -24(up)
|
||||
ld r9, -32(up)
|
||||
std r6, -40(rp)
|
||||
std r7, -48(rp)
|
||||
L(lo6): ld r6, -40(up)
|
||||
ld r7, -48(up)
|
||||
std r8, -56(rp)
|
||||
std r9, -64(rp)
|
||||
addi rp, rp, -64
|
||||
L(lo4): ld r8, -56(up)
|
||||
ld r9, -64(up)
|
||||
addi up, up, -64
|
||||
bdnz L(top)
|
||||
|
||||
L(end): std r6, -8(rp)
|
||||
std r7, -16(rp)
|
||||
std r8, -24(rp)
|
||||
std r9, -32(rp)
|
||||
blr
|
||||
EPILOGUE()
|
||||
129
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/copyi.asm
vendored
Normal file
129
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/copyi.asm
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
dnl PowerPC-64 mpn_copyi.
|
||||
|
||||
dnl Copyright 2004, 2005, 2013 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 cycles/limb
|
||||
C POWER3/PPC630 ?
|
||||
C POWER4/PPC970 ?
|
||||
C POWER5 ?
|
||||
C POWER6 1.25
|
||||
C POWER7 1.09
|
||||
|
||||
C INPUT PARAMETERS
|
||||
define(`rp', `r3')
|
||||
define(`up', `r4')
|
||||
define(`n', `r5')
|
||||
|
||||
C TODO
|
||||
C * Try rolling the two loop leading std to the end, allowing the code to
|
||||
C handle also n = 2.
|
||||
C * Consider using 4 pointers, schedule ptr update early wrt use.
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_copyi)
|
||||
|
||||
ifdef(`HAVE_ABI_mode32',
|
||||
` rldicl n, n, 0,32')
|
||||
|
||||
cmpdi cr0, n, 4
|
||||
blt L(sml)
|
||||
|
||||
addi r10, n, 4
|
||||
srdi r10, r10, 3
|
||||
mtctr r10
|
||||
|
||||
andi. r0, n, 1
|
||||
rlwinm r11, n, 0,30,30
|
||||
rlwinm r12, n, 0,29,29
|
||||
cmpdi cr6, r11, 0
|
||||
cmpdi cr7, r12, 0
|
||||
|
||||
beq cr0, L(xx0)
|
||||
L(xx1): ld r6, 0(up)
|
||||
addi up, up, 8
|
||||
std r6, 0(rp)
|
||||
addi rp, rp, 8
|
||||
|
||||
L(xx0): bne cr6, L(x10)
|
||||
L(x00): ld r6, 0(up)
|
||||
ld r7, 8(up)
|
||||
bne cr7, L(100)
|
||||
L(000): addi rp, rp, -32
|
||||
b L(lo0)
|
||||
L(100): addi up, up, -32
|
||||
b L(lo4)
|
||||
L(x10): ld r8, 0(up)
|
||||
ld r9, 8(up)
|
||||
bne cr7, L(110)
|
||||
L(010): addi up, up, 16
|
||||
addi rp, rp, -16
|
||||
b L(lo2)
|
||||
L(110): addi up, up, -16
|
||||
addi rp, rp, -48
|
||||
b L(lo6)
|
||||
|
||||
L(sml): cmpdi cr0, n, 0
|
||||
beqlr- cr0
|
||||
mtctr n
|
||||
L(t): ld r6, 0(up)
|
||||
addi up, up, 8
|
||||
std r6, 0(rp)
|
||||
addi rp, rp, 8
|
||||
bdnz L(t)
|
||||
blr
|
||||
|
||||
ALIGN(32)
|
||||
L(top): std r6, 0(rp)
|
||||
std r7, 8(rp)
|
||||
L(lo2): ld r6, 0(up)
|
||||
ld r7, 8(up)
|
||||
std r8, 16(rp)
|
||||
std r9, 24(rp)
|
||||
L(lo0): ld r8, 16(up)
|
||||
ld r9, 24(up)
|
||||
std r6, 32(rp)
|
||||
std r7, 40(rp)
|
||||
L(lo6): ld r6, 32(up)
|
||||
ld r7, 40(up)
|
||||
std r8, 48(rp)
|
||||
std r9, 56(rp)
|
||||
addi rp, rp, 64
|
||||
L(lo4): ld r8, 48(up)
|
||||
ld r9, 56(up)
|
||||
addi up, up, 64
|
||||
bdnz L(top)
|
||||
|
||||
L(end): std r6, 0(rp)
|
||||
std r7, 8(rp)
|
||||
std r8, 16(rp)
|
||||
std r9, 24(rp)
|
||||
blr
|
||||
EPILOGUE()
|
||||
110
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/hamdist.asm
vendored
Normal file
110
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/hamdist.asm
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
dnl PowerPC-64 mpn_hamdist.
|
||||
|
||||
dnl Copyright 2012, 2017 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 cycles/limb
|
||||
C POWER3/PPC630 -
|
||||
C POWER4/PPC970 -
|
||||
C POWER5 -
|
||||
C POWER6 -
|
||||
C POWER7 2.87
|
||||
|
||||
define(`up', r3)
|
||||
define(`vp', r4)
|
||||
define(`n', r5)
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_hamdist)
|
||||
std r30, -16(r1)
|
||||
std r31, -8(r1)
|
||||
|
||||
addi r0, n, 1
|
||||
ifdef(`HAVE_ABI_mode32',
|
||||
` rldicl r0, r0, 63,33', C ...branch count
|
||||
` srdi r0, r0, 1') C ...for ctr
|
||||
mtctr r0
|
||||
|
||||
andi. r0, n, 1
|
||||
|
||||
li r0, 0
|
||||
li r12, 0
|
||||
|
||||
beq L(evn)
|
||||
|
||||
L(odd): ld r6, 0(up)
|
||||
addi up, up, 8
|
||||
ld r8, 0(vp)
|
||||
addi vp, vp, 8
|
||||
xor r10, r6, r8
|
||||
popcntd(r0, r10)
|
||||
bdz L(e1)
|
||||
|
||||
L(evn): ld r6, 0(up)
|
||||
ld r8, 0(vp)
|
||||
ld r7, 8(up)
|
||||
ld r9, 8(vp)
|
||||
xor r10, r6, r8
|
||||
addi up, up, 16
|
||||
addi vp, vp, 16
|
||||
li r30, 0
|
||||
li r31, 0
|
||||
bdz L(end)
|
||||
|
||||
nop
|
||||
nop
|
||||
C ALIGN(16)
|
||||
L(top): add r0, r0, r30
|
||||
ld r6, 0(up)
|
||||
ld r8, 0(vp)
|
||||
xor r11, r7, r9
|
||||
popcntd(r30, r10)
|
||||
add r12, r12, r31
|
||||
ld r7, 8(up)
|
||||
ld r9, 8(vp)
|
||||
xor r10, r6, r8
|
||||
popcntd(r31, r11)
|
||||
addi up, up, 16
|
||||
addi vp, vp, 16
|
||||
bdnz L(top)
|
||||
|
||||
L(end): add r0, r0, r30
|
||||
xor r11, r7, r9
|
||||
popcntd(r30, r10)
|
||||
add r12, r12, r31
|
||||
popcntd(r31, r11)
|
||||
|
||||
add r0, r0, r30
|
||||
add r12, r12, r31
|
||||
L(e1): add r3, r0, r12
|
||||
ld r30, -16(r1)
|
||||
ld r31, -8(r1)
|
||||
blr
|
||||
EPILOGUE()
|
||||
90
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/popcount.asm
vendored
Normal file
90
blender-5.2.0/extern/gmp-source/mpn/powerpc64/p7/popcount.asm
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
dnl PowerPC-64 mpn_popcount.
|
||||
|
||||
dnl Copyright 2012, 2017 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 cycles/limb
|
||||
C POWER3/PPC630 -
|
||||
C POWER4/PPC970 -
|
||||
C POWER5 -
|
||||
C POWER6 -
|
||||
C POWER7 2
|
||||
|
||||
define(`up', r3)
|
||||
define(`n', r4)
|
||||
|
||||
ASM_START()
|
||||
PROLOGUE(mpn_popcount)
|
||||
addi r0, n, 1
|
||||
ifdef(`HAVE_ABI_mode32',
|
||||
` rldicl r0, r0, 63,33', C ...branch count
|
||||
` srdi r0, r0, 1') C ...for ctr
|
||||
mtctr r0
|
||||
|
||||
andi. r0, n, 1
|
||||
|
||||
li r0, 0
|
||||
li r12, 0
|
||||
beq L(evn)
|
||||
|
||||
L(odd): ld r4, 0(up)
|
||||
addi up, up, 8
|
||||
popcntd(r0, r4)
|
||||
bdz L(e1)
|
||||
|
||||
L(evn): ld r4, 0(up)
|
||||
ld r5, 8(up)
|
||||
popcntd(r8, r4)
|
||||
popcntd(r9, r5)
|
||||
bdz L(e2)
|
||||
|
||||
ld r4, 16(up)
|
||||
ld r5, 24(up)
|
||||
bdz L(e4)
|
||||
addi up, up, 32
|
||||
|
||||
L(top): add r0, r0, r8
|
||||
popcntd(r8, r4)
|
||||
ld r4, 0(up)
|
||||
add r12, r12, r9
|
||||
popcntd(r9, r5)
|
||||
ld r5, 8(up)
|
||||
addi up, up, 16
|
||||
bdnz L(top)
|
||||
|
||||
L(e4): add r0, r0, r8
|
||||
popcntd(r8, r4)
|
||||
add r12, r12, r9
|
||||
popcntd(r9, r5)
|
||||
L(e2): add r0, r0, r8
|
||||
add r12, r12, r9
|
||||
L(e1): add r3, r0, r12
|
||||
blr
|
||||
EPILOGUE()
|
||||
Reference in New Issue
Block a user