16df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 26df3ef80SGreg Tucker; Copyright(c) 2011-2016 Intel Corporation All rights reserved. 36df3ef80SGreg Tucker; 46df3ef80SGreg Tucker; Redistribution and use in source and binary forms, with or without 56df3ef80SGreg Tucker; modification, are permitted provided that the following conditions 66df3ef80SGreg Tucker; are met: 76df3ef80SGreg Tucker; * Redistributions of source code must retain the above copyright 86df3ef80SGreg Tucker; notice, this list of conditions and the following disclaimer. 96df3ef80SGreg Tucker; * Redistributions in binary form must reproduce the above copyright 106df3ef80SGreg Tucker; notice, this list of conditions and the following disclaimer in 116df3ef80SGreg Tucker; the documentation and/or other materials provided with the 126df3ef80SGreg Tucker; distribution. 136df3ef80SGreg Tucker; * Neither the name of Intel Corporation nor the names of its 146df3ef80SGreg Tucker; contributors may be used to endorse or promote products derived 156df3ef80SGreg Tucker; from this software without specific prior written permission. 166df3ef80SGreg Tucker; 176df3ef80SGreg Tucker; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 186df3ef80SGreg Tucker; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 196df3ef80SGreg Tucker; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 206df3ef80SGreg Tucker; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 216df3ef80SGreg Tucker; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 226df3ef80SGreg Tucker; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 236df3ef80SGreg Tucker; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 246df3ef80SGreg Tucker; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 256df3ef80SGreg Tucker; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 266df3ef80SGreg Tucker; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 276df3ef80SGreg Tucker; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 286df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 296df3ef80SGreg Tucker 306df3ef80SGreg Tucker%include "datastruct.asm" 316df3ef80SGreg Tucker 326df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 336df3ef80SGreg Tucker;;;; Define SHA256 Out Of Order Data Structures 346df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 356df3ef80SGreg Tucker 366df3ef80SGreg TuckerSTART_FIELDS ; LANE_DATA 376df3ef80SGreg Tucker;;; name size align 386df3ef80SGreg TuckerFIELD _job_in_lane, 8, 8 ; pointer to job object 396df3ef80SGreg TuckerEND_FIELDS 406df3ef80SGreg Tucker 416df3ef80SGreg Tucker%assign _LANE_DATA_size _FIELD_OFFSET 426df3ef80SGreg Tucker%assign _LANE_DATA_align _STRUCT_ALIGN 436df3ef80SGreg Tucker 446df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 456df3ef80SGreg Tucker 466df3ef80SGreg TuckerSTART_FIELDS ; SHA256_ARGS_X16 476df3ef80SGreg Tucker;;; name size align 486df3ef80SGreg TuckerFIELD _digest, 4*8*16, 4 ; transposed digest 496df3ef80SGreg TuckerFIELD _data_ptr, 8*16, 8 ; array of pointers to data 506df3ef80SGreg TuckerEND_FIELDS 516df3ef80SGreg Tucker 526df3ef80SGreg Tucker%assign _SHA256_ARGS_X4_size _FIELD_OFFSET 536df3ef80SGreg Tucker%assign _SHA256_ARGS_X4_align _STRUCT_ALIGN 546df3ef80SGreg Tucker%assign _SHA256_ARGS_X8_size _FIELD_OFFSET 556df3ef80SGreg Tucker%assign _SHA256_ARGS_X8_align _STRUCT_ALIGN 566df3ef80SGreg Tucker%assign _SHA256_ARGS_X16_size _FIELD_OFFSET 576df3ef80SGreg Tucker%assign _SHA256_ARGS_X16_align _STRUCT_ALIGN 586df3ef80SGreg Tucker 596df3ef80SGreg Tucker;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 606df3ef80SGreg Tucker 616df3ef80SGreg TuckerSTART_FIELDS ; MB_MGR 626df3ef80SGreg Tucker;;; name size align 636df3ef80SGreg TuckerFIELD _args, _SHA256_ARGS_X4_size, _SHA256_ARGS_X4_align 64*46a0dff7SPablo de LaraFIELD _lens, 4*16, 16 656df3ef80SGreg TuckerFIELD _unused_lanes, 8, 8 666df3ef80SGreg TuckerFIELD _ldata, _LANE_DATA_size*16, _LANE_DATA_align 676df3ef80SGreg TuckerFIELD _num_lanes_inuse, 4, 4 686df3ef80SGreg TuckerEND_FIELDS 696df3ef80SGreg Tucker 706df3ef80SGreg Tucker%assign _MB_MGR_size _FIELD_OFFSET 716df3ef80SGreg Tucker%assign _MB_MGR_align _STRUCT_ALIGN 726df3ef80SGreg Tucker 736df3ef80SGreg Tucker_args_digest equ _args + _digest 746df3ef80SGreg Tucker_args_data_ptr equ _args + _data_ptr 75