File: point_amd64.s

package info (click to toggle)
golang-github-cloudflare-circl 1.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie, trixie-backports
  • size: 18,064 kB
  • sloc: asm: 20,492; ansic: 1,292; makefile: 68
file content (112 lines) | stat: -rw-r--r-- 2,337 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// +build amd64,!purego

#include "go_asm.h"
#include "fq_amd64.h"
#include "point_amd64.h"

// func doubleAmd64(P *pointR1)
TEXT ·doubleAmd64(SB),0,$0-8
    MOVQ P+0(FP), DI
    #define Px  const__x +0(DI)
    #define Py  const__y +0(DI)
    #define Pz  const__z +0(DI)
    #define Pta const__ta+0(DI)
    #define Ptb const__tb+0(DI)
    #define a Px
    #define b Py
    #define c Pz
    #define d Pta
    #define e Ptb
    #define f b
    #define g a
    CHECK_BMI2(LDOUBLE, doubleLeg, doubleBmi2)
    #undef Px
    #undef Py
    #undef Pz
    #undef Pta
    #undef Ptb
    #undef a
    #undef b
    #undef c
    #undef d
    #undef e
    #undef f
    #undef g

// func addAmd64(P *pointR1, R *pointR2)
TEXT ·addAmd64(SB),0,$32-16
    MOVQ P+0(FP), DI
    MOVQ Q+8(FP), SI
    #define addYX const__addYXR2+0(SI)
    #define subYX const__subYXR2+0(SI)
    #define z2    const__z2R2   +0(SI)
    #define dt2   const__dt2R2  +0(SI)
    #define Px    const__x +0(DI)
    #define Py    const__y +0(DI)
    #define Pz    const__z +0(DI)
    #define Pta   const__ta+0(DI)
    #define Ptb   const__tb+0(DI)
    #define a Px
    #define b Py
    #define c 0(SP)
    #define d b
    #define e Pta
    #define f a
    #define g b
    #define h Ptb
    CHECK_BMI2(LDADD, addLeg, addBmi2)
    #undef addYX
    #undef subYX
    #undef z2
    #undef dt2
    #undef Px
    #undef Py
    #undef Pz
    #undef Pta
    #undef Ptb
    #undef a
    #undef b
    #undef c
    #undef d
    #undef e
    #undef f
    #undef g
    #undef h

// func mixAddAmd64(P *pointR1, Q *pointR3)
TEXT ·mixAddAmd64(SB),0,$32-16
    MOVQ P+0(FP), DI
    MOVQ Q+8(FP), SI
    #define addYX const__addYXR3+0(SI)
    #define subYX const__subYXR3+0(SI)
    #define dt2   const__dt2R3  +0(SI)
    #define Px    const__x +0(DI)
    #define Py    const__y +0(DI)
    #define Pz    const__z +0(DI)
    #define Pta   const__ta+0(DI)
    #define Ptb   const__tb+0(DI)
    #define a Px
    #define b Py
    #define c 0(SP)
    #define d b
    #define e Pta
    #define f a
    #define g b
    #define h Ptb
    CHECK_BMI2(LDMIXADD, mixAddLeg, mixAddBmi2)
    #undef addYX
    #undef subYX
    #undef dt2
    #undef Px
    #undef Py
    #undef Pz
    #undef Pta
    #undef Ptb
    #undef a
    #undef b
    #undef c
    #undef d
    #undef e
    #undef f
    #undef g
    #undef h