1// Copyright 2016 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build !purego
6
7#include "textflag.h"
8
9// func block(dig *digest, p []byte)
10TEXT ·block(SB), NOSPLIT|NOFRAME, $0-32
11	MOVBZ  ·useAsm(SB), R4
12	LMG    dig+0(FP), R1, R3            // R2 = &p[0], R3 = len(p)
13	MOVBZ  $2, R0                       // SHA-256 function code
14	CMPBEQ R4, $0, generic
15
16loop:
17	KIMD R0, R2      // compute intermediate message digest (KIMD)
18	BVS  loop        // continue if interrupted
19	RET
20
21generic:
22	BR ·blockGeneric(SB)
23