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
|