| // Copyright 2016 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| #include "textflag.h" | |
| // func block(dig *digest, p []byte) | |
| TEXT ·block(SB), NOSPLIT|NOFRAME, $0-32 | |
| MOVBZ ·useAsm(SB), R4 | |
| LMG dig+0(FP), R1, R3 // R2 = &p[0], R3 = len(p) | |
| MOVBZ $2, R0 // SHA-256 function code | |
| CMPBEQ R4, $0, generic | |
| loop: | |
| WORD $0xB93E0002 // KIMD R2 | |
| BVS loop // continue if interrupted | |
| RET | |
| generic: | |
| BR ·blockGeneric(SB) |