main

Imports

Imports #

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

Constants & Variables

BSWAP_SHUFB_CTL_CONSTANTS var #

var BSWAP_SHUFB_CTL_CONSTANTS = [8]uint32{...}

BSWAP_SHUFB_CTL_ptr var #

Pointers for memoizing Data section symbols

var BSWAP_SHUFB_CTL_ptr *Mem

K_XMM_AR_ptr var #

Pointers for memoizing Data section symbols

var K_XMM_AR_ptr *Mem

_K var #

var _K = []uint32{...}

Functions

BSWAP_SHUFB_CTL_DATA function #

func BSWAP_SHUFB_CTL_DATA() Mem

CALC function #

func CALC()

CALC_0 function #

func CALC_0()

CALC_1 function #

func CALC_1()

CALC_10 function #

func CALC_10()

CALC_100 function #

func CALC_100()

CALC_101 function #

func CALC_101()

CALC_102 function #

func CALC_102()

CALC_103 function #

func CALC_103()

CALC_104 function #

func CALC_104()

CALC_105 function #

func CALC_105()

CALC_106 function #

func CALC_106()

CALC_107 function #

func CALC_107()

CALC_108 function #

func CALC_108()

CALC_109 function #

func CALC_109()

CALC_11 function #

func CALC_11()

CALC_110 function #

func CALC_110()

CALC_111 function #

func CALC_111()

CALC_112 function #

func CALC_112()

CALC_113 function #

func CALC_113()

CALC_114 function #

func CALC_114()

CALC_115 function #

func CALC_115()

CALC_116 function #

func CALC_116()

CALC_117 function #

func CALC_117()

CALC_118 function #

func CALC_118()

CALC_119 function #

func CALC_119()

CALC_12 function #

func CALC_12()

CALC_120 function #

func CALC_120()

CALC_121 function #

func CALC_121()

CALC_122 function #

func CALC_122()

CALC_123 function #

func CALC_123()

CALC_124 function #

func CALC_124()

CALC_125 function #

func CALC_125()

CALC_126 function #

func CALC_126()

CALC_127 function #

func CALC_127()

CALC_128 function #

func CALC_128()

CALC_129 function #

func CALC_129()

CALC_13 function #

func CALC_13()

CALC_130 function #

func CALC_130()

CALC_131 function #

func CALC_131()

CALC_132 function #

func CALC_132()

CALC_133 function #

func CALC_133()

CALC_134 function #

func CALC_134()

CALC_135 function #

func CALC_135()

CALC_136 function #

func CALC_136()

CALC_137 function #

func CALC_137()

CALC_138 function #

func CALC_138()

CALC_139 function #

func CALC_139()

CALC_14 function #

func CALC_14()

CALC_140 function #

func CALC_140()

CALC_141 function #

func CALC_141()

CALC_142 function #

func CALC_142()

CALC_143 function #

func CALC_143()

CALC_144 function #

func CALC_144()

CALC_145 function #

func CALC_145()

CALC_146 function #

func CALC_146()

CALC_147 function #

func CALC_147()

CALC_148 function #

func CALC_148()

CALC_149 function #

func CALC_149()

CALC_15 function #

func CALC_15()

CALC_150 function #

func CALC_150()

CALC_151 function #

func CALC_151()

CALC_152 function #

func CALC_152()

CALC_153 function #

func CALC_153()

CALC_154 function #

func CALC_154()

CALC_155 function #

func CALC_155()

CALC_156 function #

func CALC_156()

CALC_157 function #

func CALC_157()

CALC_158 function #

func CALC_158()

CALC_159 function #

func CALC_159()

CALC_16 function #

func CALC_16()

CALC_17 function #

func CALC_17()

CALC_18 function #

func CALC_18()

CALC_19 function #

func CALC_19()

CALC_2 function #

func CALC_2()

CALC_20 function #

func CALC_20()

CALC_21 function #

func CALC_21()

CALC_22 function #

func CALC_22()

CALC_23 function #

func CALC_23()

CALC_24 function #

func CALC_24()

CALC_25 function #

func CALC_25()

CALC_26 function #

func CALC_26()

CALC_27 function #

func CALC_27()

CALC_28 function #

func CALC_28()

CALC_29 function #

func CALC_29()

CALC_3 function #

func CALC_3()

CALC_30 function #

func CALC_30()

CALC_31 function #

func CALC_31()

CALC_32 function #

func CALC_32()

CALC_33 function #

func CALC_33()

CALC_34 function #

func CALC_34()

CALC_35 function #

func CALC_35()

CALC_36 function #

func CALC_36()

CALC_37 function #

func CALC_37()

CALC_38 function #

func CALC_38()

CALC_39 function #

func CALC_39()

CALC_4 function #

func CALC_4()

CALC_40 function #

func CALC_40()

CALC_41 function #

func CALC_41()

CALC_42 function #

func CALC_42()

CALC_43 function #

func CALC_43()

CALC_44 function #

func CALC_44()

CALC_45 function #

func CALC_45()

CALC_46 function #

func CALC_46()

CALC_47 function #

func CALC_47()

CALC_48 function #

func CALC_48()

CALC_49 function #

func CALC_49()

CALC_5 function #

func CALC_5()

CALC_50 function #

func CALC_50()

CALC_51 function #

func CALC_51()

CALC_52 function #

func CALC_52()

CALC_53 function #

func CALC_53()

CALC_54 function #

func CALC_54()

CALC_55 function #

func CALC_55()

CALC_56 function #

func CALC_56()

CALC_57 function #

func CALC_57()

CALC_58 function #

func CALC_58()

CALC_59 function #

func CALC_59()

CALC_6 function #

func CALC_6()

CALC_60 function #

func CALC_60()

CALC_61 function #

func CALC_61()

CALC_62 function #

func CALC_62()

CALC_63 function #

func CALC_63()

CALC_64 function #

func CALC_64()

CALC_65 function #

func CALC_65()

CALC_66 function #

func CALC_66()

CALC_67 function #

func CALC_67()

CALC_68 function #

func CALC_68()

CALC_69 function #

func CALC_69()

CALC_7 function #

func CALC_7()

CALC_70 function #

func CALC_70()

CALC_71 function #

func CALC_71()

CALC_72 function #

func CALC_72()

CALC_73 function #

func CALC_73()

CALC_74 function #

func CALC_74()

CALC_75 function #

func CALC_75()

CALC_76 function #

func CALC_76()

CALC_77 function #

func CALC_77()

CALC_78 function #

func CALC_78()

CALC_79 function #

func CALC_79()

CALC_8 function #

func CALC_8()

CALC_80 function #

Similar to CALC_0

func CALC_80()

CALC_81 function #

func CALC_81()

CALC_82 function #

func CALC_82()

CALC_83 function #

func CALC_83()

CALC_84 function #

func CALC_84()

CALC_85 function #

func CALC_85()

CALC_86 function #

func CALC_86()

CALC_87 function #

func CALC_87()

CALC_88 function #

func CALC_88()

CALC_89 function #

func CALC_89()

CALC_9 function #

func CALC_9()

CALC_90 function #

func CALC_90()

CALC_91 function #

func CALC_91()

CALC_92 function #

func CALC_92()

CALC_93 function #

func CALC_93()

CALC_94 function #

func CALC_94()

CALC_95 function #

func CALC_95()

CALC_96 function #

func CALC_96()

CALC_97 function #

func CALC_97()

CALC_98 function #

func CALC_98()

CALC_99 function #

func CALC_99()

CALC_F1_POST function #

func CALC_F1_POST(REG_A GPPhysical, REG_B GPPhysical, REG_E GPPhysical)

CALC_F1_PRE function #

func CALC_F1_PRE(OFFSET int, REG_A GPPhysical, REG_B GPPhysical, REG_C GPPhysical, REG_E GPPhysical)

CALC_F2_POST function #

func CALC_F2_POST(REG_A GPPhysical, REG_B GPPhysical, REG_C GPPhysical, REG_E GPPhysical)

CALC_F2_PRE function #

func CALC_F2_PRE(OFFSET int, REG_A GPPhysical, REG_B GPPhysical, REG_E GPPhysical)

CALC_F3_POST function #

func CALC_F3_POST(REG_A GPPhysical, REG_B GPPhysical, REG_C GPPhysical, REG_E GPPhysical, REG_TB GPPhysical)

CALC_F3_PRE function #

func CALC_F3_PRE(OFFSET int, REG_E GPPhysical)

FUNC1 function #

func FUNC1(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical)

FUNC2 function #

func FUNC2(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical)

FUNC3 function #

func FUNC3(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical)

FUNC4 function #

func FUNC4(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical)

K_XMM_AR_DATA function #

func K_XMM_AR_DATA() Mem

LOAD function #

func LOAD(index int)

MIX function #

func MIX(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, konst int)

PRECALC function #

func PRECALC()

PRECALC_0 function #

func PRECALC_0(OFFSET int)

PRECALC_00_15 function #

Message scheduling pre-compute for rounds 0-15 - R13 is a pointer to even 64-byte block - R10 is a pointer to odd 64-byte block - R14 is a pointer to temp buffer - X0 is used as temp register - YREG is clobbered as part of computation - OFFSET chooses 16 byte chunk within a block - R8 is a pointer to constants block - K_OFFSET chooses K constants relevant to this round - X10 holds swap mask

func PRECALC_00_15(OFFSET int, YREG VecPhysical)

PRECALC_1 function #

func PRECALC_1(OFFSET int)

PRECALC_16 function #

func PRECALC_16(REG_SUB_16 VecPhysical, REG_SUB_12 VecPhysical, REG_SUB_4 VecPhysical, REG VecPhysical)

PRECALC_16_31 function #

Message scheduling pre-compute for rounds 16-31 - calculating last 32 w[i] values in 8 XMM registers - pre-calculate K+w[i] values and store to mem - for later load by ALU add instruction. - "brute force" vectorization for rounds 16-31 only - due to w[i]->w[i-3] dependency. - clobbers 5 input ymm registers REG_SUB* - uses X0 and X9 as temp registers - As always, R8 is a pointer to constants block - and R14 is a pointer to temp buffer

func PRECALC_16_31(REG VecPhysical, REG_SUB_4 VecPhysical, REG_SUB_8 VecPhysical, REG_SUB_12 VecPhysical, REG_SUB_16 VecPhysical, K_OFFSET int, OFFSET int)

PRECALC_17 function #

func PRECALC_17(REG_SUB_16 VecPhysical, REG_SUB_8 VecPhysical, REG VecPhysical)

PRECALC_18 function #

func PRECALC_18(REG VecPhysical)

PRECALC_19 function #

func PRECALC_19(REG VecPhysical)

PRECALC_2 function #

func PRECALC_2(YREG VecPhysical)

PRECALC_20 function #

func PRECALC_20(REG VecPhysical)

PRECALC_21 function #

func PRECALC_21(REG VecPhysical)

PRECALC_23 function #

func PRECALC_23(REG VecPhysical, K_OFFSET int, OFFSET int)

PRECALC_32 function #

func PRECALC_32(REG_SUB_8 VecPhysical, REG_SUB_4 VecPhysical)

PRECALC_32_79 function #

func PRECALC_32_79(REG VecPhysical, REG_SUB_4 VecPhysical, REG_SUB_8 VecPhysical, REG_SUB_16 VecPhysical, REG_SUB_28 VecPhysical, K_OFFSET int, OFFSET int)

PRECALC_33 function #

func PRECALC_33(REG_SUB_28 VecPhysical, REG VecPhysical)

PRECALC_34 function #

func PRECALC_34(REG_SUB_16 VecPhysical)

PRECALC_35 function #

func PRECALC_35(REG VecPhysical)

PRECALC_36 function #

func PRECALC_36(REG VecPhysical)

PRECALC_37 function #

func PRECALC_37(REG VecPhysical)

PRECALC_39 function #

func PRECALC_39(REG VecPhysical, K_OFFSET int, OFFSET int)

PRECALC_4 function #

func PRECALC_4(YREG VecPhysical, K_OFFSET int)

PRECALC_7 function #

func PRECALC_7(OFFSET int)

ROUND1 function #

func ROUND1(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, index int)

ROUND1x function #

func ROUND1x(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, index int)

ROUND2 function #

func ROUND2(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, index int)

ROUND3 function #

func ROUND3(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, index int)

ROUND4 function #

func ROUND4(a GPPhysical, b GPPhysical, c GPPhysical, d GPPhysical, e GPPhysical, index int)

SHUFFLE function #

func SHUFFLE(index int)

UPDATE_HASH function #

func UPDATE_HASH(A GPPhysical, TB GPPhysical, C GPPhysical, D GPPhysical, E GPPhysical)

begin function #

func begin()

blockAMD64 function #

func blockAMD64()

blockAVX2 function #

func blockAVX2()

end function #

func end()

loop_amd64 function #

func loop_amd64()

loop_avx2 function #

this loops is unrolled

func loop_avx2()

main function #

func main()

Generated with Arrow