main

Imports

Imports #

"os"
. "github.com/mmcloughlin/avo/build"
. "github.com/mmcloughlin/avo/operand"
. "github.com/mmcloughlin/avo/reg"

Constants & Variables

INP_SIZE var #

Line 289

var INP_SIZE = *ast.ParenExpr

MASK_YMM_LO_ptr var #

Pointers for memoizing Data section symbols

var MASK_YMM_LO_ptr *Mem

PSHUFFLE_BYTE_FLIP_MASK_DATA_ptr var #

Pointers for memoizing Data section symbols

var PSHUFFLE_BYTE_FLIP_MASK_DATA_ptr *Mem

SRND_SIZE var #

Line 289

var SRND_SIZE = *ast.ParenExpr

ThatPeskyUnicodeDot const #

const ThatPeskyUnicodeDot = "\u00b7"

YFER_SIZE var #

Line 289

var YFER_SIZE int = *ast.ParenExpr

_K var #

var _K = []uint64{...}

frame_INP var #

Line 289

var frame_INP = *ast.ParenExpr

frame_INPEND var #

Line 289

var frame_INPEND = *ast.ParenExpr

frame_SRND var #

Line 289

var frame_SRND = *ast.ParenExpr

frame_YFER var #

Line 289

var frame_YFER = *ast.ParenExpr

Functions

COPY_YMM_AND_BSWAP function #

Line 302

func COPY_YMM_AND_BSWAP(p1 VecPhysical, p2 Mem, p3 VecPhysical)

MASK_YMM_LO_DATA function #

Line 317

func MASK_YMM_LO_DATA() Mem

MSGSCHEDULE0 function #

Wt = Mt; for 0 <= t <= 15 Line 50

func MSGSCHEDULE0(index int)

MSGSCHEDULE1 function #

Wt = SIGMA1(Wt-2) + Wt-7 + SIGMA0(Wt-15) + Wt-16; for 16 <= t <= 79 SIGMA0(x) = ROTR(1,x) XOR ROTR(8,x) XOR SHR(7,x) SIGMA1(x) = ROTR(19,x) XOR ROTR(61,x) XOR SHR(6,x) Line 58

func MSGSCHEDULE1(index int)

MY_VPALIGNR function #

Line 306

func MY_VPALIGNR(YDST VecPhysical, YSRC1 VecPhysical, YSRC2 VecPhysical, RVAL int)

PSHUFFLE_BYTE_FLIP_MASK_DATA function #

Line 310

func PSHUFFLE_BYTE_FLIP_MASK_DATA() Mem

SHA512ROUND function #

Calculate T1 and T2, then e = d + T1 and a = T1 + T2. The values for e and a are stored in d and h, ready for rotation. Line 131

func SHA512ROUND(index int, konst uint64, a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, f GPPhysical, g GPPhysical, h GPPhysical)

SHA512ROUND0 function #

Line 169

func SHA512ROUND0(index int, konst uint64, a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, f GPPhysical, g GPPhysical, h GPPhysical)

SHA512ROUND1 function #

Line 142

func SHA512ROUND1(index int, konst uint64, a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, f GPPhysical, g GPPhysical, h GPPhysical)

SHA512T1 function #

Calculate T1 in AX - uses AX, CX and DX registers. h is also used as an accumulator. Wt is passed in AX. T1 = h + BIGSIGMA1(e) + Ch(e, f, g) + Kt + Wt BIGSIGMA1(x) = ROTR(14,x) XOR ROTR(18,x) XOR ROTR(41,x) Ch(x, y, z) = (x AND y) XOR (NOT x AND z) Line 85

func SHA512T1(konst uint64, e GPPhysical, f GPPhysical, g GPPhysical, h GPPhysical)

SHA512T2 function #

Calculate T2 in BX - uses BX, CX, DX and DI registers. T2 = BIGSIGMA0(a) + Maj(a, b, c) BIGSIGMA0(x) = ROTR(28,x) XOR ROTR(34,x) XOR ROTR(39,x) Maj(x, y, z) = (x AND y) XOR (x AND z) XOR (y AND z) Line 110

func SHA512T2(a GPPhysical, b GPPhysical, c GPPhysical)

addm function #

Line 298

func addm(p1 Mem, p2 GPPhysical)

blockAMD64 function #

Line 146

func blockAMD64()

blockAVX2 function #

Line 324

func blockAVX2()

done_hash function #

Line 1468

func done_hash()

end function #

Line 274

func end()

loop function #

Line 167

func loop()

loop0 function #

Line 347

func loop0()

loop1 function #

Line 361

func loop1()

loop2 function #

Line 1164

func loop2()

main function #

func main()

rotateRight function #

func rotateRight(slice *[]GPPhysical) []GPPhysical

Generated with Arrow