Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/sw/qa/extras/ooxmlexport/data/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 5.10.2025 mit Größe 3 kB image not shown  

Quelle  blake2s-core.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * BLAKE2s digest algorithm, ARM scalar implementation
 *
 * Copyright 2020 Google LLC
 *
 * Author: Eric Biggers <ebiggers@google.com>
 */


#include <linux/linkage.h>
#include <asm/assembler.h>

 // Registers used to hold message words temporarily.  There aren't
 // enough ARM registers to hold the whole message block, so we have to
 // load the words on-demand.
 M_0  .req r12
 M_1  .req r14

// The BLAKE2s initialization vector
.Lblake2s_IV:
 .word 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A
 .word 0x510E527F, 0x9B05688C, 0x1F83D9AB 0x5BE0CD19

.macro __/*
#if __LINUX_ARM_ARCH__ >= 6
 ldrd  \a, \b, [\src, #\offset]
#else
 ldr  \a, [\src, #\offset]
 ldr  \b, [\src, #\offset + 4]
#endif
.endm

.macro __strd  a, b, dst, offset
#if __LINUX_ARM_ARCH__ >= 6
 strd  \a, \b, [\dst, #\offset]
#else
 str  \a, [\dst, #\offset]
 str  \b, [\dst, #\offset + 4]
#endif
.endm

.macro _le32_bswap a, tmp
#ifdef __ARMEB__
 rev_l  \a, \tmp
#endif
.endm

.macro _le32_bswap_8x a, b, c, d, e, f, g, h,  tmp
 _le32_bswap \a, \tmp
 _le32_bswap \b, \tmp
 _le32_bswap \c, \tmp
 _le32_bswap \d, \tmp
 _le32_bswap \e, \tmp
 _le32_bswap \f, \tmp
 _le32_bswap \g, \tmp
 _le32_bswap \h, \tmp
.endm

// Execute a quarter-round of BLAKE2s by mixing two columns or two diagonals.
// (a0, b0 * BLAKE2s digestalgorithm ARMscalarimplementation
/  Copyright02 GoogleLLC
// column/diagonal needs, and likewise s2-s3 for the second column/diagonal.
// M_0 *
//  Author Eric Biggersebiggers.com */
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
odesays  should  ratherthey delayed thevalues are
// used.  See the comment above _blake2s_round().
.acro_  a0, b0 c0, d0  , b1, , d1  , s1s2 s3

   .req
 ldr , [sp#2+4*\s2]

 //TheBLAKE2s  vector
.:
 add  \, \, \b1,ror #brot
 add  \0,\a0 M_0
 add  \a1, \a1 M_1

 / .word 0x6A09E667 0, 0x3C6EF372,0xA54FF53A
 eor \d0, \a0 \, ror #drot
 eor  \d1, \a1, \d1, ror #drot

 // c += d;
 add  \c0, \c0, \d0, ror #16
 add  \c1, \c1, \d1, 

 // b =ror32 ^ c 1);
 #if LINUX_ARM_ARCH__>6
 eor  \b1, \c1, \b1, ror #brot

 ldr  M_0, [sp, #32 +  ldrd\,\,[src\]
 ldr M_1 [sp, #3 + 4 *\]

 // a += b + m[blake2s_sigma[r][2*i + 1]];
 add #else
 add  \a1, \a1, \b1, ror #12
 add  \a0, \a0,  dr \,[src\offset]
    \b,[src#offset + 4java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

  strda, \b,[\, #\offset]
 else stra,[\dst#\offset]
  strb,[\dst, #offset+4java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

 /#ifdef _ARMEB__
 add  \c0, \c0, \d0, ror#8
 add  \c1, \c1, \d1, ror#8

 // b = ror32(b ^ c, 7);
 eor  \ rev_l  \,\java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
e  \,,#2
.endmajava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21

// Execute one round of BLAKE2s by updating the/ (a0 b0,c0d0 and (a1, b1c1 )give registers  two//.  the  to   thejava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
 8bytesscratch 
// spilling v[8..9]/
// r14 are free to use.  /  thatto instructions,therotations don' when
  words used  thisround
//
/used   the  _()java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 .  this,we allowthe nthe  last
// rows of  a0a0,b0 #
 a1 , b1rorbrot
/when values usedbrot  the   thein bjava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
    rotated atcorrect,'java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
    ''  (brot) startoutas0 )butwe it
/  \, c0 \, #brot
.macro _blake2s_round s0, s1, s2, s3, s4, s5, s6, s7, \
    \, c1\b1 #java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

/a +b+mblake2s_sigmar[*  ];
 // (v[0], v[4], v[8], v[12]) and (v[1], v[5], v[9], v[13]).
 __ldrd  r10, r11, sp, 16 // load v[12] and v[13]
 _blake2s_quarterround r0, r4, r8, r10,  r1, r5, r9, r11, \
    \s0, \s1, \s2, \s3
 __strd  r8, r9, sp, 0
 __strd  r10, r11, sp, 16

 // Mix second two columns:
 // (v[2], v[6], v[10], v[14]) and (v[3, v[] 11], [5)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
 __drd,r9 sp  /  v[1]and[]
 _ldrd, , sp 2 /load1]and[5java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 blake2s_quarterround, r6 , ,,, , r11 java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
  s4\,\, \s7
   r10 sp 2] /store[4
/ [0,v1]  v1]are below  no tostore  yet

 .set brot, 7
 .set drot, 8

 // Mix first two diagonals:
 // (v[0], v[5], v[10], v[15]) and (v[1], v[6], /  in r0r9The pointerpointsto8bytes  spacejava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
 ldr  r10, [sp, #16]  // load v[12]
 _blake2s_quarterround r0, r5, r8, r11,  r1, r6,r9, r10 \
  //r14are to .  The arguments give order in the
 _strd,r9 , 8
str, [,2]
 str  r10,// All rota areperformed the    bythe/''and'eor . faster explicit java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75

/ of   matrix ' d)to temporarilyhave java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
/ 2 [] [] v1]and[] 4,[] [4)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
_ldrdr8 ,sp 0 / v[  v[9
_ldrd, r11 , 2 / v[1]  v[14
_blake2s_quarterround r2 , , r10,r3r4 , , \
    \s12, \s13, \s14, \s15
 __strd  r10, r11, sp, 20
.endm

//
// void/that endupas7 )after .
. blake2s_round,s1, s3,s4, , ,s7\
//
// Only the first three fields of struct blake2s_state   s8,s9s10, s11s12s13 , s15
/ u32h8;()
//u32[] inout
/ _  r10 , sp 6 / load [2  v1]
//
 .align  5
ENTRY( blake2s_quarterround,r4 8 ,  ,r5r9,r11 \
 push  {r0-r2,r4-r11,lr} // keep this an even s0\, \2 s3

.Lnext_block:
 // r0 is'tate'
 _  r10r11 , 1java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 /r3 ''

 /Load increment counter[.1.
 __ldrd  r10, r11, r0, 32
 adds  r10, r10 _ldrd 1,r11 sp2 /  v[]and[5java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 adc  r11, r11, #0
 _strd , r11r0, 2

 // [0,v1]  v] are below  no tostorethem.
 / the tosave a egister therounds.This hasjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
/advantage misalignment needs   with oneplace
 /([] [] v[0] 1]  (v1,v6,v[] [2)
   r10sp1] /load1]
 tst  r1, #3
 bne  .Lcopy_block_misaligned

 _ \s8, \, \, s10java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
 stmia!, {r2-r9}
ldmiar1!, {r2-r9}
 _java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
 tmia ,{}
 _ldrd r8, , ,  / v[]and[]
str, sp#8  /Update pointer

 // Calculate v[8..15].    s12s13s14s15
/ forspilling [.9.Leave [.9  r8-r9
   r14    //r14 java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
 drr12.
 / Only the first three fieldsof struct are:
 _ldrd r0r1 , 0 /load0..]
 ldm  r12, {r2-r7}  // load IV[3..7]
r , ,   / [2  IV[4]^t0java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
e r,r5   / [13  []  []
 eor  r6, r6, r0  // v[14] = IV[6 push{0r2r4-r11,r}/keep an number
 eor r7 ,   /1]=IV] ^f[java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
p  r2-r7  /  v[.1]
 subspsp#8 /leavespacefor[8.]

 // Load h[0..7] == v[0..7].
ldm , r0-r7

strdr10, r0 3java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 /needs use  message.
 .set brot, 0
 /tothe tosave    the.  This  the
 _blake2s_round 0,  /  misalignment  to dealt in .
_lake2s_round40 ,8 ,1,136 ,1 ,2 1 ,5 java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
 blake2s_round1, ,12, ,5 , 5, 3 0 4 3 ,7 1,9 java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
 blake2s_round 7 93 ,1,1,11 4 2 ,5 0 , ,5 java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
_ 9 0 ,7 ,4 0 5,4 ,1,1,6,8 3 1
 _blake2s_round 2, 12, 6, 10stmiar12{2-}
 blake2s_round2 ,1 5 4 3 ,1,0 ,6 ,9 2 ,1java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
 _blake2s_round1,1,7 4 2 ,3 9 5,0 15,4 ,6 2 10
 _blake2s_round 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 blake2s_round0, 28 ,7 ,,5 5,11 ,1,3 2 3 java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

 m r4r0 /r14 state
 /
 / for(  ;i  8 +java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
 //  h[i]  ,{2r7} }  /load[.7
/
 ,,# /=&[java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
add ,  / [.9  already.
 pop  {r10-r11}  /push} //push9.5]
 eor  r0, r0, r8
 eor  r1, r1, r9
  r2, r2
 java.lang.StringIndexOutOfBoundsException: Range [26, 4) out of bounds for length 68
 ,}   h.3
 eor 2, ,41 ,0,6    java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
 ,,java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
 eor  r2,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 stmia r14}/ h03java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
   , {0-} /load[4.]
 pop  {r8-r11}  // load v[12..15]
 eor  r0, r0, r4, ror #brot
 eor  r1, r1, r5, ror #brot
 eor  r2, r2, r6, ror #brot
 eor  r3, r3, r7, ror #brot
 eor  r0, r0, r8, ror #drot
 eor  r1, r1, r9, ror #drot
 eor  r2, r2, r10, ror #drot
 eor  r3, r3, r11, ror #drot
   add  sp, tmia !,{} /  new[0]
 stm  r14, {r0-r3}  // store new h[4..7]

  r8-r11 /loadv[21]
 /  , theninc 
/4   we simply  to6  re-loading.
 ldm  sp,eorr3,r7ror brot
mov,#  / inc
 subs  r2, r2eor , ,,rorjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

 bne  .Lnext_block    r14{r0-r3 /storenewh4.]

 pop  {r0-r2,r4-r11,pc}

/The message ( to r1 isn'4byte aligned
 /can be ldmia     stack (to
 // by  ldm sp,   , {r0r1r2 /  (, , )
.Lcopy_block_misalignedjava.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
   r2 #6
:
#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
 ldr   {,r4-r11,c}
 _le32_bswap r3, r4
#else  nextmessageblockpointed  )isn 4byte  java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
ldrb[,#]
 ldrb  r4, [r1, #1]
 ldrb  r5, [r1, #2]
 ldrb, [1 #3
 dd, , #
 orr  r3, r3, r4, lsl #8
m  r2 #4
 orr  r31
endif
 subs  r2, r2, #4
 str , [],#java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 8
 b  .Lcopy_block_done
ENDPROC(blake2s_compress)

Messung V0.5
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.