...

Text file src/cmd/internal/notsha256/sha256block_amd64.s

Documentation: cmd/internal/notsha256

     1// Copyright 2013 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// SHA256 block routine. See sha256block.go for Go equivalent.
    10//
    11// The algorithm is detailed in FIPS 180-4:
    12//
    13//  https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf
    14
    15// Wt = Mt; for 0 <= t <= 15
    16// Wt = SIGMA1(Wt-2) + SIGMA0(Wt-15) + Wt-16; for 16 <= t <= 63
    17//
    18// a = H0
    19// b = H1
    20// c = H2
    21// d = H3
    22// e = H4
    23// f = H5
    24// g = H6
    25// h = H7
    26//
    27// for t = 0 to 63 {
    28//    T1 = h + BIGSIGMA1(e) + Ch(e,f,g) + Kt + Wt
    29//    T2 = BIGSIGMA0(a) + Maj(a,b,c)
    30//    h = g
    31//    g = f
    32//    f = e
    33//    e = d + T1
    34//    d = c
    35//    c = b
    36//    b = a
    37//    a = T1 + T2
    38// }
    39//
    40// H0 = a + H0
    41// H1 = b + H1
    42// H2 = c + H2
    43// H3 = d + H3
    44// H4 = e + H4
    45// H5 = f + H5
    46// H6 = g + H6
    47// H7 = h + H7
    48
    49// Wt = Mt; for 0 <= t <= 15
    50#define MSGSCHEDULE0(index) \
    51	MOVL	(index*4)(SI), AX; \
    52	BSWAPL	AX; \
    53	MOVL	AX, (index*4)(BP)
    54
    55// Wt = SIGMA1(Wt-2) + Wt-7 + SIGMA0(Wt-15) + Wt-16; for 16 <= t <= 63
    56//   SIGMA0(x) = ROTR(7,x) XOR ROTR(18,x) XOR SHR(3,x)
    57//   SIGMA1(x) = ROTR(17,x) XOR ROTR(19,x) XOR SHR(10,x)
    58#define MSGSCHEDULE1(index) \
    59	MOVL	((index-2)*4)(BP), AX; \
    60	MOVL	AX, CX; \
    61	RORL	$17, AX; \
    62	MOVL	CX, DX; \
    63	RORL	$19, CX; \
    64	SHRL	$10, DX; \
    65	MOVL	((index-15)*4)(BP), BX; \
    66	XORL	CX, AX; \
    67	MOVL	BX, CX; \
    68	XORL	DX, AX; \
    69	RORL	$7, BX; \
    70	MOVL	CX, DX; \
    71	SHRL	$3, DX; \
    72	RORL	$18, CX; \
    73	ADDL	((index-7)*4)(BP), AX; \
    74	XORL	CX, BX; \
    75	XORL	DX, BX; \
    76	ADDL	((index-16)*4)(BP), BX; \
    77	ADDL	BX, AX; \
    78	MOVL	AX, ((index)*4)(BP)
    79
    80// Calculate T1 in AX - uses AX, CX and DX registers.
    81// h is also used as an accumulator. Wt is passed in AX.
    82//   T1 = h + BIGSIGMA1(e) + Ch(e, f, g) + Kt + Wt
    83//     BIGSIGMA1(x) = ROTR(6,x) XOR ROTR(11,x) XOR ROTR(25,x)
    84//     Ch(x, y, z) = (x AND y) XOR (NOT x AND z)
    85#define SHA256T1(const, e, f, g, h) \
    86	ADDL	AX, h; \
    87	MOVL	e, AX; \
    88	ADDL	$const, h; \
    89	MOVL	e, CX; \
    90	RORL	$6, AX; \
    91	MOVL	e, DX; \
    92	RORL	$11, CX; \
    93	XORL	CX, AX; \
    94	MOVL	e, CX; \
    95	RORL	$25, DX; \
    96	ANDL	f, CX; \
    97	XORL	AX, DX; \
    98	MOVL	e, AX; \
    99	NOTL	AX; \
   100	ADDL	DX, h; \
   101	ANDL	g, AX; \
   102	XORL	CX, AX; \
   103	ADDL	h, AX
   104
   105// Calculate T2 in BX - uses BX, CX, DX and DI registers.
   106//   T2 = BIGSIGMA0(a) + Maj(a, b, c)
   107//     BIGSIGMA0(x) = ROTR(2,x) XOR ROTR(13,x) XOR ROTR(22,x)
   108//     Maj(x, y, z) = (x AND y) XOR (x AND z) XOR (y AND z)
   109#define SHA256T2(a, b, c) \
   110	MOVL	a, DI; \
   111	MOVL	c, BX; \
   112	RORL	$2, DI; \
   113	MOVL	a, DX; \
   114	ANDL	b, BX; \
   115	RORL	$13, DX; \
   116	MOVL	a, CX; \
   117	ANDL	c, CX; \
   118	XORL	DX, DI; \
   119	XORL	CX, BX; \
   120	MOVL	a, DX; \
   121	MOVL	b, CX; \
   122	RORL	$22, DX; \
   123	ANDL	a, CX; \
   124	XORL	CX, BX; \
   125	XORL	DX, DI; \
   126	ADDL	DI, BX
   127
   128// Calculate T1 and T2, then e = d + T1 and a = T1 + T2.
   129// The values for e and a are stored in d and h, ready for rotation.
   130#define SHA256ROUND(index, const, a, b, c, d, e, f, g, h) \
   131	SHA256T1(const, e, f, g, h); \
   132	SHA256T2(a, b, c); \
   133	MOVL	BX, h; \
   134	ADDL	AX, d; \
   135	ADDL	AX, h
   136
   137#define SHA256ROUND0(index, const, a, b, c, d, e, f, g, h) \
   138	MSGSCHEDULE0(index); \
   139	SHA256ROUND(index, const, a, b, c, d, e, f, g, h)
   140
   141#define SHA256ROUND1(index, const, a, b, c, d, e, f, g, h) \
   142	MSGSCHEDULE1(index); \
   143	SHA256ROUND(index, const, a, b, c, d, e, f, g, h)
   144
   145TEXT ·block(SB), 0, $536-32
   146	MOVQ p_base+8(FP), SI
   147	MOVQ p_len+16(FP), DX
   148	SHRQ $6, DX
   149	SHLQ $6, DX
   150
   151	LEAQ (SI)(DX*1), DI
   152	MOVQ DI, 256(SP)
   153	CMPQ SI, DI
   154	JEQ  end
   155
   156	MOVQ dig+0(FP), BP
   157	MOVL (0*4)(BP), R8  // a = H0
   158	MOVL (1*4)(BP), R9  // b = H1
   159	MOVL (2*4)(BP), R10 // c = H2
   160	MOVL (3*4)(BP), R11 // d = H3
   161	MOVL (4*4)(BP), R12 // e = H4
   162	MOVL (5*4)(BP), R13 // f = H5
   163	MOVL (6*4)(BP), R14 // g = H6
   164	MOVL (7*4)(BP), R15 // h = H7
   165
   166loop:
   167	MOVQ SP, BP
   168
   169	SHA256ROUND0(0, 0x428a2f98, R8, R9, R10, R11, R12, R13, R14, R15)
   170	SHA256ROUND0(1, 0x71374491, R15, R8, R9, R10, R11, R12, R13, R14)
   171	SHA256ROUND0(2, 0xb5c0fbcf, R14, R15, R8, R9, R10, R11, R12, R13)
   172	SHA256ROUND0(3, 0xe9b5dba5, R13, R14, R15, R8, R9, R10, R11, R12)
   173	SHA256ROUND0(4, 0x3956c25b, R12, R13, R14, R15, R8, R9, R10, R11)
   174	SHA256ROUND0(5, 0x59f111f1, R11, R12, R13, R14, R15, R8, R9, R10)
   175	SHA256ROUND0(6, 0x923f82a4, R10, R11, R12, R13, R14, R15, R8, R9)
   176	SHA256ROUND0(7, 0xab1c5ed5, R9, R10, R11, R12, R13, R14, R15, R8)
   177	SHA256ROUND0(8, 0xd807aa98, R8, R9, R10, R11, R12, R13, R14, R15)
   178	SHA256ROUND0(9, 0x12835b01, R15, R8, R9, R10, R11, R12, R13, R14)
   179	SHA256ROUND0(10, 0x243185be, R14, R15, R8, R9, R10, R11, R12, R13)
   180	SHA256ROUND0(11, 0x550c7dc3, R13, R14, R15, R8, R9, R10, R11, R12)
   181	SHA256ROUND0(12, 0x72be5d74, R12, R13, R14, R15, R8, R9, R10, R11)
   182	SHA256ROUND0(13, 0x80deb1fe, R11, R12, R13, R14, R15, R8, R9, R10)
   183	SHA256ROUND0(14, 0x9bdc06a7, R10, R11, R12, R13, R14, R15, R8, R9)
   184	SHA256ROUND0(15, 0xc19bf174, R9, R10, R11, R12, R13, R14, R15, R8)
   185
   186	SHA256ROUND1(16, 0xe49b69c1, R8, R9, R10, R11, R12, R13, R14, R15)
   187	SHA256ROUND1(17, 0xefbe4786, R15, R8, R9, R10, R11, R12, R13, R14)
   188	SHA256ROUND1(18, 0x0fc19dc6, R14, R15, R8, R9, R10, R11, R12, R13)
   189	SHA256ROUND1(19, 0x240ca1cc, R13, R14, R15, R8, R9, R10, R11, R12)
   190	SHA256ROUND1(20, 0x2de92c6f, R12, R13, R14, R15, R8, R9, R10, R11)
   191	SHA256ROUND1(21, 0x4a7484aa, R11, R12, R13, R14, R15, R8, R9, R10)
   192	SHA256ROUND1(22, 0x5cb0a9dc, R10, R11, R12, R13, R14, R15, R8, R9)
   193	SHA256ROUND1(23, 0x76f988da, R9, R10, R11, R12, R13, R14, R15, R8)
   194	SHA256ROUND1(24, 0x983e5152, R8, R9, R10, R11, R12, R13, R14, R15)
   195	SHA256ROUND1(25, 0xa831c66d, R15, R8, R9, R10, R11, R12, R13, R14)
   196	SHA256ROUND1(26, 0xb00327c8, R14, R15, R8, R9, R10, R11, R12, R13)
   197	SHA256ROUND1(27, 0xbf597fc7, R13, R14, R15, R8, R9, R10, R11, R12)
   198	SHA256ROUND1(28, 0xc6e00bf3, R12, R13, R14, R15, R8, R9, R10, R11)
   199	SHA256ROUND1(29, 0xd5a79147, R11, R12, R13, R14, R15, R8, R9, R10)
   200	SHA256ROUND1(30, 0x06ca6351, R10, R11, R12, R13, R14, R15, R8, R9)
   201	SHA256ROUND1(31, 0x14292967, R9, R10, R11, R12, R13, R14, R15, R8)
   202	SHA256ROUND1(32, 0x27b70a85, R8, R9, R10, R11, R12, R13, R14, R15)
   203	SHA256ROUND1(33, 0x2e1b2138, R15, R8, R9, R10, R11, R12, R13, R14)
   204	SHA256ROUND1(34, 0x4d2c6dfc, R14, R15, R8, R9, R10, R11, R12, R13)
   205	SHA256ROUND1(35, 0x53380d13, R13, R14, R15, R8, R9, R10, R11, R12)
   206	SHA256ROUND1(36, 0x650a7354, R12, R13, R14, R15, R8, R9, R10, R11)
   207	SHA256ROUND1(37, 0x766a0abb, R11, R12, R13, R14, R15, R8, R9, R10)
   208	SHA256ROUND1(38, 0x81c2c92e, R10, R11, R12, R13, R14, R15, R8, R9)
   209	SHA256ROUND1(39, 0x92722c85, R9, R10, R11, R12, R13, R14, R15, R8)
   210	SHA256ROUND1(40, 0xa2bfe8a1, R8, R9, R10, R11, R12, R13, R14, R15)
   211	SHA256ROUND1(41, 0xa81a664b, R15, R8, R9, R10, R11, R12, R13, R14)
   212	SHA256ROUND1(42, 0xc24b8b70, R14, R15, R8, R9, R10, R11, R12, R13)
   213	SHA256ROUND1(43, 0xc76c51a3, R13, R14, R15, R8, R9, R10, R11, R12)
   214	SHA256ROUND1(44, 0xd192e819, R12, R13, R14, R15, R8, R9, R10, R11)
   215	SHA256ROUND1(45, 0xd6990624, R11, R12, R13, R14, R15, R8, R9, R10)
   216	SHA256ROUND1(46, 0xf40e3585, R10, R11, R12, R13, R14, R15, R8, R9)
   217	SHA256ROUND1(47, 0x106aa070, R9, R10, R11, R12, R13, R14, R15, R8)
   218	SHA256ROUND1(48, 0x19a4c116, R8, R9, R10, R11, R12, R13, R14, R15)
   219	SHA256ROUND1(49, 0x1e376c08, R15, R8, R9, R10, R11, R12, R13, R14)
   220	SHA256ROUND1(50, 0x2748774c, R14, R15, R8, R9, R10, R11, R12, R13)
   221	SHA256ROUND1(51, 0x34b0bcb5, R13, R14, R15, R8, R9, R10, R11, R12)
   222	SHA256ROUND1(52, 0x391c0cb3, R12, R13, R14, R15, R8, R9, R10, R11)
   223	SHA256ROUND1(53, 0x4ed8aa4a, R11, R12, R13, R14, R15, R8, R9, R10)
   224	SHA256ROUND1(54, 0x5b9cca4f, R10, R11, R12, R13, R14, R15, R8, R9)
   225	SHA256ROUND1(55, 0x682e6ff3, R9, R10, R11, R12, R13, R14, R15, R8)
   226	SHA256ROUND1(56, 0x748f82ee, R8, R9, R10, R11, R12, R13, R14, R15)
   227	SHA256ROUND1(57, 0x78a5636f, R15, R8, R9, R10, R11, R12, R13, R14)
   228	SHA256ROUND1(58, 0x84c87814, R14, R15, R8, R9, R10, R11, R12, R13)
   229	SHA256ROUND1(59, 0x8cc70208, R13, R14, R15, R8, R9, R10, R11, R12)
   230	SHA256ROUND1(60, 0x90befffa, R12, R13, R14, R15, R8, R9, R10, R11)
   231	SHA256ROUND1(61, 0xa4506ceb, R11, R12, R13, R14, R15, R8, R9, R10)
   232	SHA256ROUND1(62, 0xbef9a3f7, R10, R11, R12, R13, R14, R15, R8, R9)
   233	SHA256ROUND1(63, 0xc67178f2, R9, R10, R11, R12, R13, R14, R15, R8)
   234
   235	MOVQ dig+0(FP), BP
   236	ADDL (0*4)(BP), R8  // H0 = a + H0
   237	MOVL R8, (0*4)(BP)
   238	ADDL (1*4)(BP), R9  // H1 = b + H1
   239	MOVL R9, (1*4)(BP)
   240	ADDL (2*4)(BP), R10 // H2 = c + H2
   241	MOVL R10, (2*4)(BP)
   242	ADDL (3*4)(BP), R11 // H3 = d + H3
   243	MOVL R11, (3*4)(BP)
   244	ADDL (4*4)(BP), R12 // H4 = e + H4
   245	MOVL R12, (4*4)(BP)
   246	ADDL (5*4)(BP), R13 // H5 = f + H5
   247	MOVL R13, (5*4)(BP)
   248	ADDL (6*4)(BP), R14 // H6 = g + H6
   249	MOVL R14, (6*4)(BP)
   250	ADDL (7*4)(BP), R15 // H7 = h + H7
   251	MOVL R15, (7*4)(BP)
   252
   253	ADDQ $64, SI
   254	CMPQ SI, 256(SP)
   255	JB   loop
   256
   257end:
   258	RET
   259
   260// shuffle byte order from LE to BE
   261DATA flip_mask<>+0x00(SB)/8, $0x0405060700010203
   262DATA flip_mask<>+0x08(SB)/8, $0x0c0d0e0f08090a0b
   263DATA flip_mask<>+0x10(SB)/8, $0x0405060700010203
   264DATA flip_mask<>+0x18(SB)/8, $0x0c0d0e0f08090a0b
   265GLOBL flip_mask<>(SB), 8, $32
   266
   267// shuffle xBxA -> 00BA
   268DATA shuff_00BA<>+0x00(SB)/8, $0x0b0a090803020100
   269DATA shuff_00BA<>+0x08(SB)/8, $0xFFFFFFFFFFFFFFFF
   270DATA shuff_00BA<>+0x10(SB)/8, $0x0b0a090803020100
   271DATA shuff_00BA<>+0x18(SB)/8, $0xFFFFFFFFFFFFFFFF
   272GLOBL shuff_00BA<>(SB), 8, $32
   273
   274// shuffle xDxC -> DC00
   275DATA shuff_DC00<>+0x00(SB)/8, $0xFFFFFFFFFFFFFFFF
   276DATA shuff_DC00<>+0x08(SB)/8, $0x0b0a090803020100
   277DATA shuff_DC00<>+0x10(SB)/8, $0xFFFFFFFFFFFFFFFF
   278DATA shuff_DC00<>+0x18(SB)/8, $0x0b0a090803020100
   279GLOBL shuff_DC00<>(SB), 8, $32
   280
   281// Round specific constants
   282DATA K256<>+0x00(SB)/4, $0x428a2f98 // k1
   283DATA K256<>+0x04(SB)/4, $0x71374491 // k2
   284DATA K256<>+0x08(SB)/4, $0xb5c0fbcf // k3
   285DATA K256<>+0x0c(SB)/4, $0xe9b5dba5 // k4
   286DATA K256<>+0x10(SB)/4, $0x428a2f98 // k1
   287DATA K256<>+0x14(SB)/4, $0x71374491 // k2
   288DATA K256<>+0x18(SB)/4, $0xb5c0fbcf // k3
   289DATA K256<>+0x1c(SB)/4, $0xe9b5dba5 // k4
   290
   291DATA K256<>+0x20(SB)/4, $0x3956c25b // k5 - k8
   292DATA K256<>+0x24(SB)/4, $0x59f111f1
   293DATA K256<>+0x28(SB)/4, $0x923f82a4
   294DATA K256<>+0x2c(SB)/4, $0xab1c5ed5
   295DATA K256<>+0x30(SB)/4, $0x3956c25b
   296DATA K256<>+0x34(SB)/4, $0x59f111f1
   297DATA K256<>+0x38(SB)/4, $0x923f82a4
   298DATA K256<>+0x3c(SB)/4, $0xab1c5ed5
   299
   300DATA K256<>+0x40(SB)/4, $0xd807aa98 // k9 - k12
   301DATA K256<>+0x44(SB)/4, $0x12835b01
   302DATA K256<>+0x48(SB)/4, $0x243185be
   303DATA K256<>+0x4c(SB)/4, $0x550c7dc3
   304DATA K256<>+0x50(SB)/4, $0xd807aa98
   305DATA K256<>+0x54(SB)/4, $0x12835b01
   306DATA K256<>+0x58(SB)/4, $0x243185be
   307DATA K256<>+0x5c(SB)/4, $0x550c7dc3
   308
   309DATA K256<>+0x60(SB)/4, $0x72be5d74 // k13 - k16
   310DATA K256<>+0x64(SB)/4, $0x80deb1fe
   311DATA K256<>+0x68(SB)/4, $0x9bdc06a7
   312DATA K256<>+0x6c(SB)/4, $0xc19bf174
   313DATA K256<>+0x70(SB)/4, $0x72be5d74
   314DATA K256<>+0x74(SB)/4, $0x80deb1fe
   315DATA K256<>+0x78(SB)/4, $0x9bdc06a7
   316DATA K256<>+0x7c(SB)/4, $0xc19bf174
   317
   318DATA K256<>+0x80(SB)/4, $0xe49b69c1 // k17 - k20
   319DATA K256<>+0x84(SB)/4, $0xefbe4786
   320DATA K256<>+0x88(SB)/4, $0x0fc19dc6
   321DATA K256<>+0x8c(SB)/4, $0x240ca1cc
   322DATA K256<>+0x90(SB)/4, $0xe49b69c1
   323DATA K256<>+0x94(SB)/4, $0xefbe4786
   324DATA K256<>+0x98(SB)/4, $0x0fc19dc6
   325DATA K256<>+0x9c(SB)/4, $0x240ca1cc
   326
   327DATA K256<>+0xa0(SB)/4, $0x2de92c6f // k21 - k24
   328DATA K256<>+0xa4(SB)/4, $0x4a7484aa
   329DATA K256<>+0xa8(SB)/4, $0x5cb0a9dc
   330DATA K256<>+0xac(SB)/4, $0x76f988da
   331DATA K256<>+0xb0(SB)/4, $0x2de92c6f
   332DATA K256<>+0xb4(SB)/4, $0x4a7484aa
   333DATA K256<>+0xb8(SB)/4, $0x5cb0a9dc
   334DATA K256<>+0xbc(SB)/4, $0x76f988da
   335
   336DATA K256<>+0xc0(SB)/4, $0x983e5152 // k25 - k28
   337DATA K256<>+0xc4(SB)/4, $0xa831c66d
   338DATA K256<>+0xc8(SB)/4, $0xb00327c8
   339DATA K256<>+0xcc(SB)/4, $0xbf597fc7
   340DATA K256<>+0xd0(SB)/4, $0x983e5152
   341DATA K256<>+0xd4(SB)/4, $0xa831c66d
   342DATA K256<>+0xd8(SB)/4, $0xb00327c8
   343DATA K256<>+0xdc(SB)/4, $0xbf597fc7
   344
   345DATA K256<>+0xe0(SB)/4, $0xc6e00bf3 // k29 - k32
   346DATA K256<>+0xe4(SB)/4, $0xd5a79147
   347DATA K256<>+0xe8(SB)/4, $0x06ca6351
   348DATA K256<>+0xec(SB)/4, $0x14292967
   349DATA K256<>+0xf0(SB)/4, $0xc6e00bf3
   350DATA K256<>+0xf4(SB)/4, $0xd5a79147
   351DATA K256<>+0xf8(SB)/4, $0x06ca6351
   352DATA K256<>+0xfc(SB)/4, $0x14292967
   353
   354DATA K256<>+0x100(SB)/4, $0x27b70a85
   355DATA K256<>+0x104(SB)/4, $0x2e1b2138
   356DATA K256<>+0x108(SB)/4, $0x4d2c6dfc
   357DATA K256<>+0x10c(SB)/4, $0x53380d13
   358DATA K256<>+0x110(SB)/4, $0x27b70a85
   359DATA K256<>+0x114(SB)/4, $0x2e1b2138
   360DATA K256<>+0x118(SB)/4, $0x4d2c6dfc
   361DATA K256<>+0x11c(SB)/4, $0x53380d13
   362
   363DATA K256<>+0x120(SB)/4, $0x650a7354
   364DATA K256<>+0x124(SB)/4, $0x766a0abb
   365DATA K256<>+0x128(SB)/4, $0x81c2c92e
   366DATA K256<>+0x12c(SB)/4, $0x92722c85
   367DATA K256<>+0x130(SB)/4, $0x650a7354
   368DATA K256<>+0x134(SB)/4, $0x766a0abb
   369DATA K256<>+0x138(SB)/4, $0x81c2c92e
   370DATA K256<>+0x13c(SB)/4, $0x92722c85
   371
   372DATA K256<>+0x140(SB)/4, $0xa2bfe8a1
   373DATA K256<>+0x144(SB)/4, $0xa81a664b
   374DATA K256<>+0x148(SB)/4, $0xc24b8b70
   375DATA K256<>+0x14c(SB)/4, $0xc76c51a3
   376DATA K256<>+0x150(SB)/4, $0xa2bfe8a1
   377DATA K256<>+0x154(SB)/4, $0xa81a664b
   378DATA K256<>+0x158(SB)/4, $0xc24b8b70
   379DATA K256<>+0x15c(SB)/4, $0xc76c51a3
   380
   381DATA K256<>+0x160(SB)/4, $0xd192e819
   382DATA K256<>+0x164(SB)/4, $0xd6990624
   383DATA K256<>+0x168(SB)/4, $0xf40e3585
   384DATA K256<>+0x16c(SB)/4, $0x106aa070
   385DATA K256<>+0x170(SB)/4, $0xd192e819
   386DATA K256<>+0x174(SB)/4, $0xd6990624
   387DATA K256<>+0x178(SB)/4, $0xf40e3585
   388DATA K256<>+0x17c(SB)/4, $0x106aa070
   389
   390DATA K256<>+0x180(SB)/4, $0x19a4c116
   391DATA K256<>+0x184(SB)/4, $0x1e376c08
   392DATA K256<>+0x188(SB)/4, $0x2748774c
   393DATA K256<>+0x18c(SB)/4, $0x34b0bcb5
   394DATA K256<>+0x190(SB)/4, $0x19a4c116
   395DATA K256<>+0x194(SB)/4, $0x1e376c08
   396DATA K256<>+0x198(SB)/4, $0x2748774c
   397DATA K256<>+0x19c(SB)/4, $0x34b0bcb5
   398
   399DATA K256<>+0x1a0(SB)/4, $0x391c0cb3
   400DATA K256<>+0x1a4(SB)/4, $0x4ed8aa4a
   401DATA K256<>+0x1a8(SB)/4, $0x5b9cca4f
   402DATA K256<>+0x1ac(SB)/4, $0x682e6ff3
   403DATA K256<>+0x1b0(SB)/4, $0x391c0cb3
   404DATA K256<>+0x1b4(SB)/4, $0x4ed8aa4a
   405DATA K256<>+0x1b8(SB)/4, $0x5b9cca4f
   406DATA K256<>+0x1bc(SB)/4, $0x682e6ff3
   407
   408DATA K256<>+0x1c0(SB)/4, $0x748f82ee
   409DATA K256<>+0x1c4(SB)/4, $0x78a5636f
   410DATA K256<>+0x1c8(SB)/4, $0x84c87814
   411DATA K256<>+0x1cc(SB)/4, $0x8cc70208
   412DATA K256<>+0x1d0(SB)/4, $0x748f82ee
   413DATA K256<>+0x1d4(SB)/4, $0x78a5636f
   414DATA K256<>+0x1d8(SB)/4, $0x84c87814
   415DATA K256<>+0x1dc(SB)/4, $0x8cc70208
   416
   417DATA K256<>+0x1e0(SB)/4, $0x90befffa
   418DATA K256<>+0x1e4(SB)/4, $0xa4506ceb
   419DATA K256<>+0x1e8(SB)/4, $0xbef9a3f7
   420DATA K256<>+0x1ec(SB)/4, $0xc67178f2
   421DATA K256<>+0x1f0(SB)/4, $0x90befffa
   422DATA K256<>+0x1f4(SB)/4, $0xa4506ceb
   423DATA K256<>+0x1f8(SB)/4, $0xbef9a3f7
   424DATA K256<>+0x1fc(SB)/4, $0xc67178f2
   425
   426GLOBL K256<>(SB), (NOPTR + RODATA), $512

View as plain text