pass,printer: display required ISA features (#120)

Fixes #119
This commit is contained in:
Michael McLoughlin
2020-01-19 16:45:09 -08:00
committed by GitHub
parent b0ac74488c
commit cde7e9483b
14 changed files with 2042 additions and 0 deletions

View File

@@ -63,12 +63,14 @@ TEXT ·FieldUint64(SB), NOSPLIT, $0-184
RET
// func FieldFloat32(s Struct) float32
// Requires: SSE
TEXT ·FieldFloat32(SB), NOSPLIT, $0-180
MOVSS s_Float32+16(FP), X0
MOVSS X0, ret+176(FP)
RET
// func FieldFloat64(s Struct) float64
// Requires: SSE2
TEXT ·FieldFloat64(SB), NOSPLIT, $0-184
MOVSD s_Float64+24(FP), X0
MOVSD X0, ret+176(FP)
@@ -99,18 +101,21 @@ TEXT ·FieldArrayOneC(SB), NOSPLIT, $0-178
RET
// func FieldComplex64Imag(s Struct) float32
// Requires: SSE
TEXT ·FieldComplex64Imag(SB), NOSPLIT, $0-180
MOVSS s_Complex64_imag+156(FP), X0
MOVSS X0, ret+176(FP)
RET
// func FieldComplex128Real(s Struct) float64
// Requires: SSE2
TEXT ·FieldComplex128Real(SB), NOSPLIT, $0-184
MOVSD s_Complex128_real+160(FP), X0
MOVSD X0, ret+176(FP)
RET
// func DereferenceFloat32(s *Struct) float32
// Requires: SSE
TEXT ·DereferenceFloat32(SB), NOSPLIT, $0-12
MOVQ s+0(FP), AX
MOVSS 16(AX), X0

View File

@@ -24,6 +24,7 @@ Generated assembly:
[embedmd]:# (complex.s s /.*func Norm/ /RET/)
```s
// func Norm(z complex128) float64
// Requires: SSE2
TEXT ·Norm(SB), NOSPLIT, $0-24
MOVSD z_real+0(FP), X0
MOVSD z_imag+8(FP), X1

View File

@@ -3,18 +3,21 @@
#include "textflag.h"
// func Real(z complex128) float64
// Requires: SSE2
TEXT ·Real(SB), NOSPLIT, $0-24
MOVSD z_real+0(FP), X0
MOVSD X0, ret+16(FP)
RET
// func Imag(z complex128) float64
// Requires: SSE2
TEXT ·Imag(SB), NOSPLIT, $0-24
MOVSD z_imag+8(FP), X0
MOVSD X0, ret+16(FP)
RET
// func Norm(z complex128) float64
// Requires: SSE2
TEXT ·Norm(SB), NOSPLIT, $0-24
MOVSD z_real+0(FP), X0
MOVSD z_imag+8(FP), X1

View File

@@ -3,6 +3,7 @@
#include "textflag.h"
// func Dot(x []float32, y []float32) float32
// Requires: AVX, FMA3, SSE
TEXT ·Dot(SB), NOSPLIT, $0-52
MOVQ x_base+0(FP), AX
MOVQ y_base+24(FP), CX

View File

@@ -3,6 +3,7 @@
#include "textflag.h"
// func EncodeInt(lat float64, lng float64) uint64
// Requires: BMI2, SSE2
TEXT ·EncodeInt(SB), NOSPLIT, $0-24
MOVSD lat+0(FP), X0
MOVSD lng+8(FP), X1

View File

@@ -12,6 +12,7 @@ TEXT ·Interval(SB), NOSPLIT, $0-32
RET
// func Butterfly(x0 float64, x1 float64) (y0 float64, y1 float64)
// Requires: SSE2
TEXT ·Butterfly(SB), NOSPLIT, $0-32
MOVSD x0+0(FP), X0
MOVSD x1+8(FP), X1
@@ -36,6 +37,7 @@ TEXT ·Septuple(SB), NOSPLIT, $0-15
RET
// func CriticalLine(t float64) complex128
// Requires: SSE2
TEXT ·CriticalLine(SB), NOSPLIT, $0-24
MOVSD t+0(FP), X0
MOVSD half<>+0(SB), X1
@@ -47,6 +49,7 @@ DATA half<>+0(SB)/8, $(0.5)
GLOBL half<>(SB), RODATA|NOPTR, $8
// func NewStruct(w uint16, p [2]float64, q uint64) Struct
// Requires: SSE2
TEXT ·NewStruct(SB), NOSPLIT, $0-64
MOVW w+0(FP), AX
MOVSD p_0+8(FP), X0