keccakf_amd64.s (14537B)
1 // Copyright 2015 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 amd64 && !purego && gc 6 // +build amd64,!purego,gc 7 8 // This code was translated into a form compatible with 6a from the public 9 // domain sources at https://github.com/gvanas/KeccakCodePackage 10 11 // Offsets in state 12 #define _ba (0*8) 13 #define _be (1*8) 14 #define _bi (2*8) 15 #define _bo (3*8) 16 #define _bu (4*8) 17 #define _ga (5*8) 18 #define _ge (6*8) 19 #define _gi (7*8) 20 #define _go (8*8) 21 #define _gu (9*8) 22 #define _ka (10*8) 23 #define _ke (11*8) 24 #define _ki (12*8) 25 #define _ko (13*8) 26 #define _ku (14*8) 27 #define _ma (15*8) 28 #define _me (16*8) 29 #define _mi (17*8) 30 #define _mo (18*8) 31 #define _mu (19*8) 32 #define _sa (20*8) 33 #define _se (21*8) 34 #define _si (22*8) 35 #define _so (23*8) 36 #define _su (24*8) 37 38 // Temporary registers 39 #define rT1 AX 40 41 // Round vars 42 #define rpState DI 43 #define rpStack SP 44 45 #define rDa BX 46 #define rDe CX 47 #define rDi DX 48 #define rDo R8 49 #define rDu R9 50 51 #define rBa R10 52 #define rBe R11 53 #define rBi R12 54 #define rBo R13 55 #define rBu R14 56 57 #define rCa SI 58 #define rCe BP 59 #define rCi rBi 60 #define rCo rBo 61 #define rCu R15 62 63 #define MOVQ_RBI_RCE MOVQ rBi, rCe 64 #define XORQ_RT1_RCA XORQ rT1, rCa 65 #define XORQ_RT1_RCE XORQ rT1, rCe 66 #define XORQ_RBA_RCU XORQ rBa, rCu 67 #define XORQ_RBE_RCU XORQ rBe, rCu 68 #define XORQ_RDU_RCU XORQ rDu, rCu 69 #define XORQ_RDA_RCA XORQ rDa, rCa 70 #define XORQ_RDE_RCE XORQ rDe, rCe 71 72 #define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ 73 /* Prepare round */ \ 74 MOVQ rCe, rDa; \ 75 ROLQ $1, rDa; \ 76 \ 77 MOVQ _bi(iState), rCi; \ 78 XORQ _gi(iState), rDi; \ 79 XORQ rCu, rDa; \ 80 XORQ _ki(iState), rCi; \ 81 XORQ _mi(iState), rDi; \ 82 XORQ rDi, rCi; \ 83 \ 84 MOVQ rCi, rDe; \ 85 ROLQ $1, rDe; \ 86 \ 87 MOVQ _bo(iState), rCo; \ 88 XORQ _go(iState), rDo; \ 89 XORQ rCa, rDe; \ 90 XORQ _ko(iState), rCo; \ 91 XORQ _mo(iState), rDo; \ 92 XORQ rDo, rCo; \ 93 \ 94 MOVQ rCo, rDi; \ 95 ROLQ $1, rDi; \ 96 \ 97 MOVQ rCu, rDo; \ 98 XORQ rCe, rDi; \ 99 ROLQ $1, rDo; \ 100 \ 101 MOVQ rCa, rDu; \ 102 XORQ rCi, rDo; \ 103 ROLQ $1, rDu; \ 104 \ 105 /* Result b */ \ 106 MOVQ _ba(iState), rBa; \ 107 MOVQ _ge(iState), rBe; \ 108 XORQ rCo, rDu; \ 109 MOVQ _ki(iState), rBi; \ 110 MOVQ _mo(iState), rBo; \ 111 MOVQ _su(iState), rBu; \ 112 XORQ rDe, rBe; \ 113 ROLQ $44, rBe; \ 114 XORQ rDi, rBi; \ 115 XORQ rDa, rBa; \ 116 ROLQ $43, rBi; \ 117 \ 118 MOVQ rBe, rCa; \ 119 MOVQ rc, rT1; \ 120 ORQ rBi, rCa; \ 121 XORQ rBa, rT1; \ 122 XORQ rT1, rCa; \ 123 MOVQ rCa, _ba(oState); \ 124 \ 125 XORQ rDu, rBu; \ 126 ROLQ $14, rBu; \ 127 MOVQ rBa, rCu; \ 128 ANDQ rBe, rCu; \ 129 XORQ rBu, rCu; \ 130 MOVQ rCu, _bu(oState); \ 131 \ 132 XORQ rDo, rBo; \ 133 ROLQ $21, rBo; \ 134 MOVQ rBo, rT1; \ 135 ANDQ rBu, rT1; \ 136 XORQ rBi, rT1; \ 137 MOVQ rT1, _bi(oState); \ 138 \ 139 NOTQ rBi; \ 140 ORQ rBa, rBu; \ 141 ORQ rBo, rBi; \ 142 XORQ rBo, rBu; \ 143 XORQ rBe, rBi; \ 144 MOVQ rBu, _bo(oState); \ 145 MOVQ rBi, _be(oState); \ 146 B_RBI_RCE; \ 147 \ 148 /* Result g */ \ 149 MOVQ _gu(iState), rBe; \ 150 XORQ rDu, rBe; \ 151 MOVQ _ka(iState), rBi; \ 152 ROLQ $20, rBe; \ 153 XORQ rDa, rBi; \ 154 ROLQ $3, rBi; \ 155 MOVQ _bo(iState), rBa; \ 156 MOVQ rBe, rT1; \ 157 ORQ rBi, rT1; \ 158 XORQ rDo, rBa; \ 159 MOVQ _me(iState), rBo; \ 160 MOVQ _si(iState), rBu; \ 161 ROLQ $28, rBa; \ 162 XORQ rBa, rT1; \ 163 MOVQ rT1, _ga(oState); \ 164 G_RT1_RCA; \ 165 \ 166 XORQ rDe, rBo; \ 167 ROLQ $45, rBo; \ 168 MOVQ rBi, rT1; \ 169 ANDQ rBo, rT1; \ 170 XORQ rBe, rT1; \ 171 MOVQ rT1, _ge(oState); \ 172 G_RT1_RCE; \ 173 \ 174 XORQ rDi, rBu; \ 175 ROLQ $61, rBu; \ 176 MOVQ rBu, rT1; \ 177 ORQ rBa, rT1; \ 178 XORQ rBo, rT1; \ 179 MOVQ rT1, _go(oState); \ 180 \ 181 ANDQ rBe, rBa; \ 182 XORQ rBu, rBa; \ 183 MOVQ rBa, _gu(oState); \ 184 NOTQ rBu; \ 185 G_RBA_RCU; \ 186 \ 187 ORQ rBu, rBo; \ 188 XORQ rBi, rBo; \ 189 MOVQ rBo, _gi(oState); \ 190 \ 191 /* Result k */ \ 192 MOVQ _be(iState), rBa; \ 193 MOVQ _gi(iState), rBe; \ 194 MOVQ _ko(iState), rBi; \ 195 MOVQ _mu(iState), rBo; \ 196 MOVQ _sa(iState), rBu; \ 197 XORQ rDi, rBe; \ 198 ROLQ $6, rBe; \ 199 XORQ rDo, rBi; \ 200 ROLQ $25, rBi; \ 201 MOVQ rBe, rT1; \ 202 ORQ rBi, rT1; \ 203 XORQ rDe, rBa; \ 204 ROLQ $1, rBa; \ 205 XORQ rBa, rT1; \ 206 MOVQ rT1, _ka(oState); \ 207 K_RT1_RCA; \ 208 \ 209 XORQ rDu, rBo; \ 210 ROLQ $8, rBo; \ 211 MOVQ rBi, rT1; \ 212 ANDQ rBo, rT1; \ 213 XORQ rBe, rT1; \ 214 MOVQ rT1, _ke(oState); \ 215 K_RT1_RCE; \ 216 \ 217 XORQ rDa, rBu; \ 218 ROLQ $18, rBu; \ 219 NOTQ rBo; \ 220 MOVQ rBo, rT1; \ 221 ANDQ rBu, rT1; \ 222 XORQ rBi, rT1; \ 223 MOVQ rT1, _ki(oState); \ 224 \ 225 MOVQ rBu, rT1; \ 226 ORQ rBa, rT1; \ 227 XORQ rBo, rT1; \ 228 MOVQ rT1, _ko(oState); \ 229 \ 230 ANDQ rBe, rBa; \ 231 XORQ rBu, rBa; \ 232 MOVQ rBa, _ku(oState); \ 233 K_RBA_RCU; \ 234 \ 235 /* Result m */ \ 236 MOVQ _ga(iState), rBe; \ 237 XORQ rDa, rBe; \ 238 MOVQ _ke(iState), rBi; \ 239 ROLQ $36, rBe; \ 240 XORQ rDe, rBi; \ 241 MOVQ _bu(iState), rBa; \ 242 ROLQ $10, rBi; \ 243 MOVQ rBe, rT1; \ 244 MOVQ _mi(iState), rBo; \ 245 ANDQ rBi, rT1; \ 246 XORQ rDu, rBa; \ 247 MOVQ _so(iState), rBu; \ 248 ROLQ $27, rBa; \ 249 XORQ rBa, rT1; \ 250 MOVQ rT1, _ma(oState); \ 251 M_RT1_RCA; \ 252 \ 253 XORQ rDi, rBo; \ 254 ROLQ $15, rBo; \ 255 MOVQ rBi, rT1; \ 256 ORQ rBo, rT1; \ 257 XORQ rBe, rT1; \ 258 MOVQ rT1, _me(oState); \ 259 M_RT1_RCE; \ 260 \ 261 XORQ rDo, rBu; \ 262 ROLQ $56, rBu; \ 263 NOTQ rBo; \ 264 MOVQ rBo, rT1; \ 265 ORQ rBu, rT1; \ 266 XORQ rBi, rT1; \ 267 MOVQ rT1, _mi(oState); \ 268 \ 269 ORQ rBa, rBe; \ 270 XORQ rBu, rBe; \ 271 MOVQ rBe, _mu(oState); \ 272 \ 273 ANDQ rBa, rBu; \ 274 XORQ rBo, rBu; \ 275 MOVQ rBu, _mo(oState); \ 276 M_RBE_RCU; \ 277 \ 278 /* Result s */ \ 279 MOVQ _bi(iState), rBa; \ 280 MOVQ _go(iState), rBe; \ 281 MOVQ _ku(iState), rBi; \ 282 XORQ rDi, rBa; \ 283 MOVQ _ma(iState), rBo; \ 284 ROLQ $62, rBa; \ 285 XORQ rDo, rBe; \ 286 MOVQ _se(iState), rBu; \ 287 ROLQ $55, rBe; \ 288 \ 289 XORQ rDu, rBi; \ 290 MOVQ rBa, rDu; \ 291 XORQ rDe, rBu; \ 292 ROLQ $2, rBu; \ 293 ANDQ rBe, rDu; \ 294 XORQ rBu, rDu; \ 295 MOVQ rDu, _su(oState); \ 296 \ 297 ROLQ $39, rBi; \ 298 S_RDU_RCU; \ 299 NOTQ rBe; \ 300 XORQ rDa, rBo; \ 301 MOVQ rBe, rDa; \ 302 ANDQ rBi, rDa; \ 303 XORQ rBa, rDa; \ 304 MOVQ rDa, _sa(oState); \ 305 S_RDA_RCA; \ 306 \ 307 ROLQ $41, rBo; \ 308 MOVQ rBi, rDe; \ 309 ORQ rBo, rDe; \ 310 XORQ rBe, rDe; \ 311 MOVQ rDe, _se(oState); \ 312 S_RDE_RCE; \ 313 \ 314 MOVQ rBo, rDi; \ 315 MOVQ rBu, rDo; \ 316 ANDQ rBu, rDi; \ 317 ORQ rBa, rDo; \ 318 XORQ rBi, rDi; \ 319 XORQ rBo, rDo; \ 320 MOVQ rDi, _si(oState); \ 321 MOVQ rDo, _so(oState) \ 322 323 // func keccakF1600(state *[25]uint64) 324 TEXT ·keccakF1600(SB), 0, $200-8 325 MOVQ state+0(FP), rpState 326 327 // Convert the user state into an internal state 328 NOTQ _be(rpState) 329 NOTQ _bi(rpState) 330 NOTQ _go(rpState) 331 NOTQ _ki(rpState) 332 NOTQ _mi(rpState) 333 NOTQ _sa(rpState) 334 335 // Execute the KeccakF permutation 336 MOVQ _ba(rpState), rCa 337 MOVQ _be(rpState), rCe 338 MOVQ _bu(rpState), rCu 339 340 XORQ _ga(rpState), rCa 341 XORQ _ge(rpState), rCe 342 XORQ _gu(rpState), rCu 343 344 XORQ _ka(rpState), rCa 345 XORQ _ke(rpState), rCe 346 XORQ _ku(rpState), rCu 347 348 XORQ _ma(rpState), rCa 349 XORQ _me(rpState), rCe 350 XORQ _mu(rpState), rCu 351 352 XORQ _sa(rpState), rCa 353 XORQ _se(rpState), rCe 354 MOVQ _si(rpState), rDi 355 MOVQ _so(rpState), rDo 356 XORQ _su(rpState), rCu 357 358 mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 359 mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 360 mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 361 mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 362 mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 363 mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 364 mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 365 mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 366 mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 367 mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 368 mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 369 mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 370 mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 371 mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 372 mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 373 mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 374 mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 375 mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 376 mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 377 mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 378 mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 379 mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 380 mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) 381 mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) 382 383 // Revert the internal state to the user state 384 NOTQ _be(rpState) 385 NOTQ _bi(rpState) 386 NOTQ _go(rpState) 387 NOTQ _ki(rpState) 388 NOTQ _mi(rpState) 389 NOTQ _sa(rpState) 390 391 RET