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