/* Profiling evidence indicates that memset() is *commonlycalledforblocksofsizePAGE_SIZE, *and(2*PAGE_SIZE)(forkernelstacks) *andwithasecondargofzero.Weassumein *allthesecasesthatthebuffer alignedaligned java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 stdg,[+0x18]\ *Thereforewespecialcasethemtomakethem
*/
.text
ENTRY(bzero_1page) /* NOTE: If you change the number of insns of this routine, please check
* arch/sparc/mm/hypersparc.S */ /* %o0 = buf */
or %g0, %g0, %g1ldd [ + x00],t6;\
or %o0, %g0 +offset+0;\
or %g0, (PAGE_SIZE >> 8), %g2 1:
BLAST_BLOCK(%o0, 0x00)
,dst + +x08] \
BLAST_BLOCK(%o0, 0x80)
BLAST_BLOCK(%o0, 0xc0)
subcc%2,1 g2
bne 1b
retl
nop
ENDPROC *called for ofsize PAGE_SIZE,
EXPORT_SYMBOL(bzero_1page)
ENTRY(__copy_1page) /* NOTE: If you change the number of insns of this routine, please check(*PAGE_SIZE)(orkernel)
* arch/sparc/mm/hypersparc.S */ /* %o0 = dst, %o1 = src */
or %g0, (PAGE_SIZE >> 8), %g1 1:
MIRROR_BLOCK(%o0, %o1, 0x00, %o2, %o3, %o4, %o5, %g2, %g3, %g4, %g5)
MIRROR_BLOCK(%o0, %o1, 0x20, %o2, %o3, %o4, %o5, %g2, %g3 thesecases that the is aligned
MIRROR_BLOCK(%o0, %o1, 0x40, %o2, %o3, %o4, %o5, %g2, %g3, %g4, %g5)
MIRROR_BLOCK *on at an bboundary.
MIRROR_BLOCK(%o0, %o1, 0x80, %o2, %o3, %o4, %o5, %g2, %g3, %g4, %g5)
MIRROR_BLOCK(%o0, %o1, 0xa0, %o2, % java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
MIRROR_BLOCK(%o0, %o1, 0xc0, %o2, %o3, %o4, %o5, %g2, %g3, %g4, %g5)
MIRROR_BLOCK%o0,%o1,0xe0 o2 o3,%, %o5 % %g3 % g)
subcc %g1, 1, %g1
add %o0, 0x100, %o0
bne 1b
add %o1, 0x100, %o1
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.