github.com/undoio/delve@v1.9.0/_fixtures/fputest/fputest_amd64.s (about) 1 TEXT ·fputestsetup(SB),$0-50 2 // setup x87 stack 3 FMOVD f64a+0(FP), F0 4 FMOVD f64b+8(FP), F0 5 FMOVD f64c+16(FP), F0 6 FMOVD f64d+24(FP), F0 7 8 FMOVF f32a+32(FP), F0 9 FMOVF f32b+36(FP), F0 10 FMOVF f32c+40(FP), F0 11 FMOVF f32d+44(FP), F0 12 13 // setup SSE registers 14 // XMM0 = { f64b, f64a } = { 1.2, 1.1 } 15 MOVLPS f64a+0(FP), X0 16 MOVHPS f64b+8(FP), X0 17 18 // XMM1 = { f64d, f64c } = { 1.4, 1.3 } 19 MOVLPS f64c+16(FP), X1 20 MOVHPS f64d+24(FP), X1 21 22 // XMM2 = { f32d, f32c, f32b, f32a } = { 1.8, 1.7, 1.6, 1.5 } 23 MOVQ f32a+32(FP), AX 24 MOVQ AX, X2 25 MOVQ f32c+40(FP), AX 26 MOVQ AX, X3 27 PUNPCKLQDQ X3, X2 28 29 // XMM3 = { f64a, f64b } = { 1.1, 1.2 } 30 MOVLPS f64b+8(FP), X3 31 MOVHPS f64a+0(FP), X3 32 33 // XMM4 = { f64c, f64d } = { 1.3, 1.4 } 34 MOVLPS f64d+24(FP), X4 35 MOVHPS f64c+16(FP), X4 36 37 // XMM5 = { f32b, f32a, f32d, f32c } = { 1.6, 1.5, 1.8, 1.7 } 38 MOVQ f32c+40(FP), AX 39 MOVQ AX, X5 40 MOVQ f32a+32(FP), AX 41 MOVQ AX, X6 42 PUNPCKLQDQ X6, X5 43 44 // XMM6 = XMM0 + XMM1 = { f64b+f64d, f64a+f64c } = { 2.6, 2.4 } 45 MOVAPS X0,X6 46 ADDPD X1, X6 47 48 // XMM7 = XMM0 + XMM3 = { f64b+f64a, f64a+f64b } = { 2.3, 2.3 } 49 MOVAPS X0, X7 50 ADDPD X3, X7 51 52 // XMM8 = XMM2 + XMM5 = { f32d+f32b, f32c+f32a, f32b+f32d, f32a+f32c } = { 3.4, 3.2, 3.4, 3.2 } 53 MOVAPS X2, X8 54 ADDPS X5, X8 55 56 MOVAPS X1, X9 57 MOVAPS X2, X10 58 59 MOVQ $42, AX 60 61 CMPB avx2+48(FP), $0x0 62 JE done 63 //copy XMM1 to both halves of YMM11 64 VPERMQ $0x44, Y1, Y11 65 66 CMPB avx512+49(FP), $0x0 67 JE done 68 //copy YMM11 to both halves of ZMM12 69 VSHUFF64X2 $0x44, Z11, Z11, Z12 70 71 done: 72 CMPB dobreak+50(FP), $0x0 73 JE return 74 BYTE $0xcc // INT 3 75 76 return: 77 RET 78 79 TEXT ·getCPUID70(SB),$0 80 MOVQ $7, AX 81 MOVQ $0, CX 82 CPUID 83 MOVD BX, ret+0(FP) 84 MOVD CX, ret+4(FP) 85 RET