dnl Library free; you can redistribute it and/or modify
dnl it under thetermsofeither:
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
*theGNU Publicas bythe FreeSoftware
dnl Foundationdnl or
dnl later version.
dnl
dnl or both in parallel, as here.
dnl
TheGNU MP is java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 78
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 79
dnlPURPOSE GNU
dnl for more details.
dnl
dnl You FITNESS java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 77
General along GNU MPLibrary If,
dnl seejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
dnlLesserGeneral alongwiththe . notjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
: 47 per product, 92cyclesper triangular
measured difference 17and ,
C which is roughly the Karatsuba recursing C product (measured on the speed difference betwee ,
dnl Cwhich roughly the range)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
attempt compilewitha bigger value
dnl trigger some m4_assert()s in thednlcodesupports.This is programtoknow
triggersome (s in ,makingbuild .
dnl addmul todnl 63 amaximumSQR_TOOM2_THRESHOLD66.
deflit(SQR_TOOM2_THRESHOLD_MAX, 66)
Allowavaluefromthetune program tooverrideconfig.4.
ifdef(`SQR_TOOM2_THRESHOLD_OVERRIDE',
`('java.lang.StringIndexOutOfBoundsException: Range [61, 58) out of bounds for length 61
dnl define,java.lang.StringIndexOutOfBoundsException: Range [60, 58) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 64
dnlneeds<java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 71
dnl java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 74
dnl up. Hence for a maximum java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 74
dnl up. fora 1
dnl,java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 59
(3java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
C
C The algorithm is java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 76
C is small.
C
excessive not
C and java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
clearly sizes
thejava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 75
C at least be getting value for money, because 35x35 spends C and so won't fill up the code cache. The 1x1, 2x2 and 3x3 special only tothose; mid sizes like 10x10 only need part of
C 5780 cycles here.
C
C DifferentC java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
n 17and33 java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 This'a java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 72
C which if understood could give a simple speedup.
defframe( which if understood asimple java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
efframe(,)
defframe(PARAM_DST, 4)
TEXT
TEXT
ALIGN(32
PROLOGUEjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
movl %java.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 21
cmpl $2, %ecx je L(two_limbs)
java.lang.StringIndexOutOfBoundsException: Range [0, 5) out of bounds for length 0
(
Cjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 16
C
C edx java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 19
movl%)e 16java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
mull %eax
movl %eaxjava.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 10
`,
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
C -----------java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
()
L(two_limbs):
C eax src
ebx
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
movl% eax
movl edx (
movl %movl 4()
deflit
movl (%ebx), %
e,8%)
movl e %)
movl%java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
movl %edx, 4(%ecx)
mulljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
movl %eax, 8(%ecx(java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 17
() eax
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 20
movljava.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 10
mull %edx C src[ eax%Cjava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
% src0]
addl %eax,
adcle,()
adcl $04%,ejava.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19
popl %ebx
addl %eax,
adcl %edx, 8(%ecx)
adcl $,12%cx
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
----------------------------------------java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
(hree_or_more:
deflit(`FRAME',0)
cmpl $4, %ecx
jae
------------------------------
C java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 20
C eax java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
x
edx
pushlebp
movleax C
(ebx,%ax
movl %edx %ax
% 0 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
movle,(%cxjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 4%) eax
movl %edx, 4(%ecx
pushl
mulljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
dst
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
movl ()
pushlejava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
% 2 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
movl %eax,%bp12%cx)
movlpopl%
movl %edx, 20(%ecx)
adcl %dx, 16(e)
mulledx src]*src[1java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
movl %eax, %esi
movl (%ebxASSERTn)
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 8(ebx,%
defframe(,-4)
xorl(AVE_ESI 8java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
mull %edx C src[0] * src
addl %eax, %edi
movl4%)%ax
adcl %edx, %ebp
movl 8java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
e C src1]*src[]
addl %eax, %ebp
Cecx
C eax will be dst[5]C esi
Cjava.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
C ecx dst
C edx dst[4]
C esi dst done mpn_mul_1to benefitits
C edidst[]
C ebp dst[3]
xorl %ax %ax
addl %esi,Ca5780 operation, isnot since here 8
adcl %edi cl 6. /.
adcl %ebp, %ebp
adcl
%,%)
adcl %edi, 8(%ecx4%,%
leal(eax)%ebx
popl%bp
popl e
adcl %bpjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
popl %esi
popl %ebx
adcl%, (ecxjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
leal -%) eCsize,and toa 16byte java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
ret
C ------Ceaxscratch
C ebx src
defframe(, -)
defframe(SAVE_EDI -2java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
(SAVE_EBP,-16java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
OUNTER,20java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
defframe(
addl esi eax
ALIGN
Lfour_or_more:
C eax src
C ebx
C ecx addl $4, %java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
C edx dst
esi
C edi
C ebp
C First multiply src[0]*srctriangle lefttotheend srcs-3*[size2,1java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
CC thatneedbedone.
C CThe isthesameas mpn_addmul_1( thatroutinefor
C a 5780 cycle operation, whichcomments
c/ and 625c.
C eax
C ebxjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
C size
C edx
C esi
C ediCODE_BYTES_PER_LIMB 15)
Cebp
movl (%eax), %ebpdnl to 31.Abovethat anoffsetmust be to java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
lealdeflit(FFSET
ALIGN(16)
Leval(-31)4,
C 0
Cjava.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
C ecxcounter
C edx scratch
C esi
C edi dst ptr
ebp multiplier
movl (%ebx), %eax
addl $4,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
%bp
addl %esi, %ax
jz L L
adcl % movl %ecx %dx
movl ` $FFSET %')
addl $4, %edi
loop L(mul_1)
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
last two ,which the right corner the product
triangle areleft end aresrc[-]src[ize-size-]
src-]src[ize-1] is4thenits these
leal u)-(*CODE_BYTES_PER_LIMB(ecx%)%java.lang.StringIndexOutOfBoundsException: Range [70, 71) out of bounds for length 70
C
C The unrolled code is the java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
comments.
C
C VAR_COUNTER C. is java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 69
C
,
C
K6' anyjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 70
C
isabout3limbfaster loop, the 6
indirect jumpis recovered
Thisis implicitlyencodedina and.
dnl
deflit(, )
dnl With the unmodified &C
dnl
to. Above offset mustbe tothemjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
dnl
deflit(OFFSET,
ifelse(java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
eval(UNROLL_COUNT*) 0))
C eax
edx esi java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 29
C ecx
Cedx
java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
C ebp
movl PARAM_SIZE, %ecx
movl %esi,C touchthan a , the
subl $4,C between andnot loop jz()
movl %, eax high around
ifelse(OFFSET,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
` subl $Lunroll_noswapjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
shll indicate/ start
ifelse(OFFSET,0C
` subl $OFFSET, %ediCAnwasmadeatpaddingheretogetthe of unrolled
eglejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
ifdef(`PIC',` 2. reasonfor notclear,itmightberelated
L(here) Cto different noted. ',`
leal L(unroll_inner_end)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ')
negl %edx
C The java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
C code. This edx
C size, java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
ASSERT(ae,`
movl_text_address( L(unroll_inner_start),
cmpl %eax, %ecx ')
C -------------------------- deflit`' -* ) ALIGN(16)
L( `,evaldisp_src 4)
C eax
C ebx &src[size], constant
C m4_assert`isp_src=128 &disp_src128')
m4_assert(disp_dst>128& <')
C esi high ifelse(eval(i%2)`
C edi dst ptr, high of lastjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 23
(%,) eax of
mull %ebp
testb
movl %edx, %Lunroll_inner_end
movl %eax, %ecx
movl %
movl %edx,
lealjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
C VAR_JMPecx
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
switchingtaken takeneveryloopjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
movl '
movl %eax
L(unroll_noswap ----------------------------------java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
jmp*
C Must be on java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Cmovl -%) %
C
CAnattempt wasmade atpaddinghere to get the end of the unrolled
C mull
C java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
C adcl0 edx
C movl -(ebx)%ax
ALIGN(2)
L(unroll_inner_start)movl%ax,%ebx
C eax scratch
C ebx src
C ecx addl e,eax
C scratch
C esi
java.lang.StringIndexOutOfBoundsException: Range [6, 2) out of bounds for length 10
C ebp%dx e
C
C 15codebyteseach limb
C ecx/esi java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 10
ifelsee(%2,,java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
Zdispmovl,disp_src(ebx),%ax)
mull %ebp
Zdisp ,%, ,(edi)
adcl %eax, %ecx
movl %edx, %esi
jadcl0%esi) ',`
dnl this one comes out
( movl,disp_src,%%)
mull %ebp
Zdisp( addl, PARAM_SIZE, %java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
adcl %ax,%si
%dx e
jadcl0( %ecx) ') ')
L % eax C for
addl %java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
addl %esi,C low limb src[]2java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
adcl movl eax,(edi,ecx,)Cdst[]
addl %eax, (%edi)
adcl $0, %edx
ovl%dx,%
movl %ebx, %eax
mull %ecx
addl %esi, % C ebx &src[size
%eax, 4%edi)
adcl $0, %edx
movl %edx, 8(%edi)
C ---------------------------------C
C Left shift
loop measures 6 /,thoughit like it should
C decode %,%
L(
PARAM_SIZE e
, ejava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21 1% 1
movl,ebx
movl %ecx
% eax C forjava.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34
ALIGN(16,%
()java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
C eax
C ebx
java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 28
C //java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
C edi java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
C EPILOG)
movl %eax, 4(%edi) C dst most significant limb
movl (%ebx), %eax C src[0]
leal 4(%ebx,%edx,4), %ebx C &src[size]
subl %edx, %ecx C -(size-1)
C -----------------------------------------------------------------------------
C Now add in the squares on the diagonal, src[0]^2, src[1]^2, ...,
C src[size-1]^2. dst[0] hasn't yet been set at all yet, and just gets the
C low limb of src[0]^2.
mull %eax
movl %eax, (%edi,%ecx,8) C dst[0]
ALIGN(16)
L(diag):
C eax scratch
C ebx &src[size]
C ecx counter, negative
C edx carry
C esi scratch
C edi dst[2*size-2]
C ebp
movl SAVE_EDI, %edi
movl SAVE_EBP, %ebp
addl $FRAME, %esp
ret
C ----------------------------------------------------------------------------- ifdef(`PIC',`
L(pic_calc):
C See mpn/x86/README about old gas bugs
addl (%esp), %ecx
addl $L(unroll_inner_end)-L(here)-eval(2*CODE_BYTES_PER_LIMB), %ecx
addl %edx, %ecx
ret_internal ')
EPILOGUE()
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.5Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.