main

Imports

Imports #

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

Constants & Variables

ThatPeskyUnicodeDot const #

const ThatPeskyUnicodeDot = "\u00b7"

acc0_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc0_v1 GPPhysical = R8

acc0_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc0_v2 = RBX

acc1_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc1_v1 = R9

acc1_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc1_v2 = RCX

acc2_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc2_v1 = R10

acc2_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc2_v2 = R8

acc3_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc3_v1 = R11

acc3_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc3_v2 = R9

acc4_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc4_v1 = R12

acc4_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc4_v2 = R10

acc5_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc5_v1 = R13

acc5_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc5_v2 = R11

acc6_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc6_v2 = R12

acc7_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var acc7_v2 = R13

hlp_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var hlp_v2 = RBP

mul0_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var mul0_v2 = RAX

mul1_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var mul1_v2 = RDX

p256const0_ptr var #

Pointers for memoizing Data section symbols

var p256const0_ptr *Mem

p256const1_ptr var #

Pointers for memoizing Data section symbols

var p256const1_ptr *Mem

p256oneConstants var #

var p256oneConstants = [4]uint64{...}

p256one_ptr var #

Pointers for memoizing Data section symbols

var p256one_ptr *Mem

p256ordConstants var #

var p256ordConstants = [4]uint64{...}

p256ordK0_ptr var #

Pointers for memoizing Data section symbols

var p256ordK0_ptr *Mem

p256ord_ptr var #

Pointers for memoizing Data section symbols

var p256ord_ptr *Mem

points_eq_v2 var #

var points_eq_v2 = *ast.CallExpr

res_ptr var #

var res_ptr GPPhysical = RDI

rptr_v1 var #

var rptr_v1 Mem = *ast.CallExpr

rptr_v2 var #

var rptr_v2 Mem = *ast.CallExpr

rptr_v3 var #

var rptr_v3 = *ast.CallExpr

sel_save_v1 var #

var sel_save_v1 = *ast.CallExpr

t0_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t0_v1 = R14

t0_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t0_v2 = R14

t1_v1 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t1_v1 = R15

t1_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t1_v2 = R15

t2_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t2_v2 = RDI

t3_v2 var #

These variables have been versioned as they get redfined in the reference implementation. This is done to produce a minimal semantic diff.

var t3_v2 = RSI

x_ptr var #

var x_ptr = RSI

y_ptr var #

var y_ptr = RCX

zero_save_v1 var #

var zero_save_v1 = *ast.CallExpr

Type Aliases

MemFunc type #

type MemFunc func(off int) Mem

Functions

LDacc function #

func LDacc(src MemFunc)

LDt function #

func LDt(src MemFunc)

ST function #

func ST(dst MemFunc)

STt function #

func STt(dst MemFunc)

acc2t function #

func acc2t()

h_v1 function #

func h_v1(off int) Mem

h_v2 function #

func h_v2(off int) Mem

hcub_v1 function #

func hcub_v1(off int) Mem

hcub_v2 function #

func hcub_v2(off int) Mem

hsqr_v1 function #

func hsqr_v1(off int) Mem

hsqr_v2 function #

func hsqr_v2(off int) Mem

m function #

func m(off int) Mem

main function #

func main()

p256AddInline function #

func p256AddInline()

p256FromMont function #

Implements: func p256FromMont(res, in *p256Element)

func p256FromMont()

p256IsZero function #

p256IsZero returns 1 in AX if [acc4..acc7] represents zero and zero otherwise. It writes to [acc4..acc7], t0 and t1.

func p256IsZero()

p256MovCond function #

Implements: func p256MovCond(res, a, b *P256Point, cond int)

func p256MovCond()

p256Mul function #

Implements: func p256Mul(res, in1, in2 *p256Element)

func p256Mul()

p256MulBy2Inline function #

func p256MulBy2Inline()

p256MulInternal function #

func p256MulInternal()

p256NegCond function #

Implements: func p256NegCond(val *p256Element, cond int)

func p256NegCond()

p256OrdMul function #

Implements: func p256OrdMul(res, in1, in2 *p256OrdElement)

func p256OrdMul()

p256OrdSqr function #

Implements: func p256OrdSqr(res, in *p256OrdElement, n int)

func p256OrdSqr()

p256PointAddAffineAsm function #

Implements: func p256PointAddAffineAsm(res, in1 *P256Point, in2 *p256AffinePoint, sign, sel, zero int)

func p256PointAddAffineAsm()

p256PointAddAsm function #

Implements: func p256PointAddAsm(res, in1, in2 *P256Point) int See https://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#addition-add-2007-bl

func p256PointAddAsm()

p256PointDoubleAsm function #

Implements: func p256PointDoubleAsm(res, in *P256Point)

func p256PointDoubleAsm()

p256Select function #

Implements: func p256Select(res *P256Point, table *p256Table, idx int)

func p256Select()

p256SelectAffine function #

Implements: func p256SelectAffine(res *p256AffinePoint, table *p256AffineTable, idx int)

func p256SelectAffine()

p256Sqr function #

Implements: func p256Sqr(res, in *p256Element, n int)

func p256Sqr()

p256SqrInternal function #

func p256SqrInternal()

p256SubInternal function #

func p256SubInternal()

p256const0_DATA function #

func p256const0_DATA() Mem

p256const1_DATA function #

func p256const1_DATA() Mem

p256one_DATA function #

func p256one_DATA() Mem

p256ordK0_DATA function #

func p256ordK0_DATA() Mem

p256ord_DATA function #

func p256ord_DATA() Mem

r_v1 function #

func r_v1(off int) Mem

r_v2 function #

func r_v2(off int) Mem

removePeskyUnicodeDot function #

removePeskyUnicodeDot strips the dot from the relevant TEXT directives such that they can exist as internal assembly functions Avo v0.6.0 does not support the generation of internal assembly functions. Go's unicode dot tells the compiler to link a TEXT symbol to a function in the current Go package (or another package if specified). Avo unconditionally prepends the unicode dot to all TEXT symbols, making it impossible to emit an internal function without this hack. There is a pending PR to add internal functions to Avo: https://github.com/mmcloughlin/avo/pull/443 If merged it should allow the usage of InternalFunction("NAME") for the specified functions

func removePeskyUnicodeDot(internalFunctions []string, target string)

rsqr_v1 function #

func rsqr_v1(off int) Mem

rsqr_v2 function #

func rsqr_v2(off int) Mem

s function #

func s(off int) Mem

s1_v2 function #

func s1_v2(off int) Mem

s2_v1 function #

func s2_v1(off int) Mem

s2_v2 function #

func s2_v2(off int) Mem

t2acc function #

func t2acc()

tmp function #

func tmp(off int) Mem

u1_v2 function #

func u1_v2(off int) Mem

u2_v2 function #

func u2_v2(off int) Mem

x function #

func x(off int) Mem

x1in_v1 function #

func x1in_v1(off int) Mem

x1in_v2 function #

func x1in_v2(off int) Mem

x2in_v1 function #

func x2in_v1(off int) Mem

x2in_v2 function #

func x2in_v2(off int) Mem

xout_v1 function #

func xout_v1(off int) Mem

xout_v2 function #

func xout_v2(off int) Mem

y function #

func y(off int) Mem

y1in_v1 function #

func y1in_v1(off int) Mem

y1in_v2 function #

func y1in_v2(off int) Mem

y2in_v1 function #

func y2in_v1(off int) Mem

y2in_v2 function #

func y2in_v2(off int) Mem

yout_v1 function #

func yout_v1(off int) Mem

yout_v2 function #

func yout_v2(off int) Mem

z function #

func z(off int) Mem

z1in_v1 function #

func z1in_v1(off int) Mem

z1in_v2 function #

func z1in_v2(off int) Mem

z1sqr_v1 function #

func z1sqr_v1(off int) Mem

z1sqr_v2 function #

func z1sqr_v2(off int) Mem

z2in_v2 function #

func z2in_v2(off int) Mem

z2sqr_v2 function #

func z2sqr_v2(off int) Mem

zout_v1 function #

func zout_v1(off int) Mem

zout_v2 function #

func zout_v2(off int) Mem

zsqr function #

func zsqr(off int) Mem

Generated with Arrow