Imports #
"os"
"strings"
. "github.com/mmcloughlin/avo/build"
"github.com/mmcloughlin/avo/ir"
. "github.com/mmcloughlin/avo/operand"
. "github.com/mmcloughlin/avo/reg"
"os"
"strings"
. "github.com/mmcloughlin/avo/build"
"github.com/mmcloughlin/avo/ir"
. "github.com/mmcloughlin/avo/operand"
. "github.com/mmcloughlin/avo/reg"
const ThatPeskyUnicodeDot = "\u00b7"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Pointers for memoizing Data section symbols
var p256const0_ptr *Mem
Pointers for memoizing Data section symbols
var p256const1_ptr *Mem
var p256oneConstants = [4]uint64{...}
Pointers for memoizing Data section symbols
var p256one_ptr *Mem
var p256ordConstants = [4]uint64{...}
Pointers for memoizing Data section symbols
var p256ordK0_ptr *Mem
Pointers for memoizing Data section symbols
var p256ord_ptr *Mem
var points_eq_v2 = *ast.CallExpr
var res_ptr GPPhysical = RDI
var rptr_v1 Mem = *ast.CallExpr
var rptr_v2 Mem = *ast.CallExpr
var rptr_v3 = *ast.CallExpr
var sel_save_v1 = *ast.CallExpr
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
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
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
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
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
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
var x_ptr = RSI
var y_ptr = RCX
var zero_save_v1 = *ast.CallExpr
type MemFunc func(off int) Mem
func LDacc(src MemFunc)
func LDt(src MemFunc)
func ST(dst MemFunc)
func STt(dst MemFunc)
func acc2t()
func h_v1(off int) Mem
func h_v2(off int) Mem
func hcub_v1(off int) Mem
func hcub_v2(off int) Mem
func hsqr_v1(off int) Mem
func hsqr_v2(off int) Mem
func m(off int) Mem
func main()
func p256AddInline()
Implements: func p256FromMont(res, in *p256Element)
func p256FromMont()
p256IsZero returns 1 in AX if [acc4..acc7] represents zero and zero otherwise. It writes to [acc4..acc7], t0 and t1.
func p256IsZero()
Implements: func p256MovCond(res, a, b *P256Point, cond int)
func p256MovCond()
Implements: func p256Mul(res, in1, in2 *p256Element)
func p256Mul()
func p256MulBy2Inline()
func p256MulInternal()
Implements: func p256NegCond(val *p256Element, cond int)
func p256NegCond()
Implements: func p256OrdMul(res, in1, in2 *p256OrdElement)
func p256OrdMul()
Implements: func p256OrdSqr(res, in *p256OrdElement, n int)
func p256OrdSqr()
Implements: func p256PointAddAffineAsm(res, in1 *P256Point, in2 *p256AffinePoint, sign, sel, zero int)
func p256PointAddAffineAsm()
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()
Implements: func p256PointDoubleAsm(res, in *P256Point)
func p256PointDoubleAsm()
Implements: func p256Select(res *P256Point, table *p256Table, idx int)
func p256Select()
Implements: func p256SelectAffine(res *p256AffinePoint, table *p256AffineTable, idx int)
func p256SelectAffine()
Implements: func p256Sqr(res, in *p256Element, n int)
func p256Sqr()
func p256SqrInternal()
func p256SubInternal()
func p256const0_DATA() Mem
func p256const1_DATA() Mem
func p256one_DATA() Mem
func p256ordK0_DATA() Mem
func p256ord_DATA() Mem
func r_v1(off int) Mem
func r_v2(off int) Mem
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)
func rsqr_v1(off int) Mem
func rsqr_v2(off int) Mem
func s(off int) Mem
func s1_v2(off int) Mem
func s2_v1(off int) Mem
func s2_v2(off int) Mem
func t2acc()
func tmp(off int) Mem
func u1_v2(off int) Mem
func u2_v2(off int) Mem
func x(off int) Mem
func x1in_v1(off int) Mem
func x1in_v2(off int) Mem
func x2in_v1(off int) Mem
func x2in_v2(off int) Mem
func xout_v1(off int) Mem
func xout_v2(off int) Mem
func y(off int) Mem
func y1in_v1(off int) Mem
func y1in_v2(off int) Mem
func y2in_v1(off int) Mem
func y2in_v2(off int) Mem
func yout_v1(off int) Mem
func yout_v2(off int) Mem
func z(off int) Mem
func z1in_v1(off int) Mem
func z1in_v2(off int) Mem
func z1sqr_v1(off int) Mem
func z1sqr_v2(off int) Mem
func z2in_v2(off int) Mem
func z2sqr_v2(off int) Mem
func zout_v1(off int) Mem
func zout_v2(off int) Mem
func zsqr(off int) Mem
Generated with Arrow