sha256h

SHA256 Hash Part 1

SHA256H <Qd>, <Qn>, <Vm>.<T>

SHA256 hash update (part 1).

Details

Performs the first part of one round of SHA-256 hash computation. The instruction updates the lower 96 bits of the SHA-256 state in Qd using the full state in Qn and 128-bit message schedule data from Vm. This is an AArch64-only instruction requiring the Crypto extension. No condition flags are affected.

Pseudocode Operation

Qd ← SHA256_H(Qd, Qn, Vm)

Example

SHA256H q0, q1, v2.4s.T

Encoding

Binary Layout
01011110
00
0
Rm
010
0
00
Rn
Rd
 
Format Crypto
Opcode 0x5E004000
Extension Crypto

Operands

  • Qd
    State
  • Qn
    Hash
  • Vm
    Data

Reference (Arm A64 ISA)

Instruction Forms

Encoding Instruction ISA Bit pattern
0x5E004000 SHA256H <Qd>, <Qn>, <Vm>.4S A64 01011110 | 00 | 0 | Rm | 010 | 0 | 00 | Rn | Rd

Description

SHA256 hash update (part 1).

Operation

AArch64.CheckFPAdvSIMDEnabled();

bits(128) result;
result = SHA256hash(V[d, 128], V[n, 128], V[m, 128], TRUE);
V[d, 128] = result;