Commit 64dc4ba7 authored by Michael Munday's avatar Michael Munday Committed by Brad Fitzpatrick

math: use new mnemonics for 'rotate then insert' on s390x

Mnemonics for these instructions were added to the assembler in
CL 159357.

Change-Id: Ie11c45ecc9cead9a8850fcc929b0211cfd980fe5
Reviewed-on: https://go-review.googlesource.com/c/go/+/160157
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent c4953a62
...@@ -90,17 +90,11 @@ L2: ...@@ -90,17 +90,11 @@ L2:
MOVH $0x0, R1 MOVH $0x0, R1
SUBW R5, R3 SUBW R5, R3
FMOVD $0, F10 FMOVD $0, F10
WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 RISBGZ $32, $47, $0, R3, R4
BYTE $0x00 RISBGZ $57, $60, $51, R3, R3
BYTE $0x55
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13
BYTE $0x33
BYTE $0x55
BYTE $0x18 //lr %r2,%r4 BYTE $0x18 //lr %r2,%r4
BYTE $0x24 BYTE $0x24
WORD $0xEC14001F //risbgn %r1,%r4,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R4, R1
BYTE $0x20
BYTE $0x59
SUBW $0x100000, R2 SUBW $0x100000, R2
SRAW $8, R2, R2 SRAW $8, R2, R2
ORW $0x45000000, R2 ORW $0x45000000, R2
...@@ -119,9 +113,7 @@ L5: ...@@ -119,9 +113,7 @@ L5:
FMOVD 64(R9), F2 FMOVD 64(R9), F2
WFMADB V6, V4, V1, V6 WFMADB V6, V4, V1, V6
FMOVD 56(R9), F1 FMOVD 56(R9), F1
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,0 RISBGZ $57, $60, $0, R3, R3
BYTE $0x00
BYTE $0x55
WFMADB V0, V2, V1, V2 WFMADB V0, V2, V1, V2
FMOVD 48(R9), F1 FMOVD 48(R9), F1
WFMADB V4, V6, V2, V6 WFMADB V4, V6, V2, V6
...@@ -158,15 +150,9 @@ L4: ...@@ -158,15 +150,9 @@ L4:
MOVH $0x0, R1 MOVH $0x0, R1
SUBW R5, R3 SUBW R5, R3
SRAW $8, R3, R2 SRAW $8, R3, R2
WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 RISBGZ $32, $47, $0, R3, R4
BYTE $0x00
BYTE $0x55
ANDW $0xFFFFFF00, R2 ANDW $0xFFFFFF00, R2
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 RISBGZ $57, $60, $51, R3, R3
BYTE $0x33
BYTE $0x55
ORW $0x45000000, R2 ORW $0x45000000, R2
WORD $0xEC14001F //risbgn %r1,%r4,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R4, R1
BYTE $0x20
BYTE $0x59
BR L5 BR L5
...@@ -98,14 +98,10 @@ L9: ...@@ -98,14 +98,10 @@ L9:
MOVH $0x0, R2 MOVH $0x0, R2
SUBW R5, R3 SUBW R5, R3
FMOVD $0, F8 FMOVD $0, F8
WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 RISBGZ $32, $47, $0, R3, R4
BYTE $0x00
BYTE $0x55
BYTE $0x18 //lr %r1,%r4 BYTE $0x18 //lr %r1,%r4
BYTE $0x14 BYTE $0x14
WORD $0xEC24001F //risbgn %r2,%r4,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R4, R2
BYTE $0x20
BYTE $0x59
SUBW $0x100000, R1 SUBW $0x100000, R1
SRAW $8, R1, R1 SRAW $8, R1, R1
ORW $0x45000000, R1 ORW $0x45000000, R1
...@@ -137,13 +133,9 @@ L5: ...@@ -137,13 +133,9 @@ L5:
SRAD $32, R5 SRAD $32, R5
MOVH $0x0, R2 MOVH $0x0, R2
SUBW R5, R3 SUBW R5, R3
WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 RISBGZ $32, $47, $0, R3, R4
BYTE $0x00
BYTE $0x55
SRAW $8, R4, R1 SRAW $8, R4, R1
WORD $0xEC24001F //risbgn %r2,%r4,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R4, R2
BYTE $0x20
BYTE $0x59
ORW $0x45000000, R1 ORW $0x45000000, R1
L6: L6:
LDGR R2, F2 LDGR R2, F2
...@@ -160,9 +152,7 @@ L6: ...@@ -160,9 +152,7 @@ L6:
FMOVD 144(R9), F0 FMOVD 144(R9), F0
WFMADB V6, V4, V1, V6 WFMADB V6, V4, V1, V6
FMOVD 136(R9), F1 FMOVD 136(R9), F1
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 RISBGZ $57, $60, $51, R3, R3
BYTE $0x33
BYTE $0x55
WFMADB V2, V0, V1, V0 WFMADB V2, V0, V1, V0
FMOVD 128(R9), F1 FMOVD 128(R9), F1
WFMADB V4, V6, V0, V6 WFMADB V4, V6, V0, V6
......
...@@ -144,16 +144,10 @@ Normal: ...@@ -144,16 +144,10 @@ Normal:
MOVD atan2rodataL25<>+0(SB), R9 MOVD atan2rodataL25<>+0(SB), R9
LGDR F0, R2 LGDR F0, R2
LGDR F2, R1 LGDR F2, R1
WORD $0xEC2220BF //risbgn %r2,%r2,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R2, R2
BYTE $0x60 RISBGNZ $32, $63, $32, R1, R1
BYTE $0x59
WORD $0xEC1120BF //risbgn %r1,%r1,64-32,128+63,64+0+32
BYTE $0x60
BYTE $0x59
WORD $0xB9170032 //llgtr %r3,%r2 WORD $0xB9170032 //llgtr %r3,%r2
WORD $0xEC523FBF //risbg %r5,%r2,64-1,128+63,64+32+1 RISBGZ $63, $63, $33, R2, R5
BYTE $0x61
BYTE $0x55
WORD $0xB9170041 //llgtr %r4,%r1 WORD $0xB9170041 //llgtr %r4,%r1
WFLCDB V0, V20 WFLCDB V0, V20
MOVW R4, R6 MOVW R4, R6
...@@ -224,9 +218,7 @@ L7: ...@@ -224,9 +218,7 @@ L7:
MOVW R1, R6 MOVW R1, R6
CMPBGE R6, $0, L1 CMPBGE R6, $0, L1
L18: L18:
WORD $0xEC223ABC //risbg %r2,%r2,58,128+60,3 RISBGZ $58, $60, $3, R2, R2
BYTE $0x03
BYTE $0x55
MOVD atan2xpi2h<>+0(SB), R1 MOVD atan2xpi2h<>+0(SB), R1
MOVD ·atan2xpim<>+0(SB), R3 MOVD ·atan2xpim<>+0(SB), R3
LDGR R3, F0 LDGR R3, F0
......
...@@ -55,9 +55,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16 ...@@ -55,9 +55,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16
MOVD atanrodataL8<>+0(SB), R5 MOVD atanrodataL8<>+0(SB), R5
MOVH $0x3FE0, R3 MOVH $0x3FE0, R3
LGDR F0, R1 LGDR F0, R1
WORD $0xEC1120BF //risbgn %r1,%r1,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R1, R1
BYTE $0x60
BYTE $0x59
RLL $16, R1, R2 RLL $16, R1, R2
ANDW $0x7FF0, R2 ANDW $0x7FF0, R2
MOVW R2, R6 MOVW R2, R6
...@@ -66,9 +64,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16 ...@@ -66,9 +64,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16
MOVD atanxmone<>+0(SB), R3 MOVD atanxmone<>+0(SB), R3
FMOVD 0(R3), F2 FMOVD 0(R3), F2
WFDDB V0, V2, V0 WFDDB V0, V2, V0
WORD $0xEC113FBF //risbg %r1,%r1,64-1,128+63,64+32+1 RISBGZ $63, $63, $33, R1, R1
BYTE $0x61
BYTE $0x55
MOVD atanxpi2h<>+0(SB), R3 MOVD atanxpi2h<>+0(SB), R3
MOVWZ R1, R1 MOVWZ R1, R1
SLD $3, R1, R1 SLD $3, R1, R1
......
...@@ -136,9 +136,7 @@ L9: ...@@ -136,9 +136,7 @@ L9:
BYTE $0x1B BYTE $0x1B
SUBW R4, R2 SUBW R4, R2
WFSDB V3, V2, V3 WFSDB V3, V2, V3
WORD $0xEC1220AF //risbg %r1,%r2,32,128+47,0 RISBGZ $32, $47, $0, R2, R1
BYTE $0x00
BYTE $0x55
SLD $32, R1, R1 SLD $32, R1, R1
LDGR R1, F2 LDGR R1, F2
WFMADB V4, V2, V16, V4 WFMADB V4, V2, V16, V4
...@@ -162,9 +160,7 @@ L9: ...@@ -162,9 +160,7 @@ L9:
WFMADB V2, V6, V3, V6 WFMADB V2, V6, V3, V6
VLVGF $0, R1, V4 VLVGF $0, R1, V4
LDEBR F4, F4 LDEBR F4, F4
WORD $0xEC2239BC //risbg %r2,%r2,57,128+60,64-13 RISBGZ $57, $60, $51, R2, R2
BYTE $0x33
BYTE $0x55
MOVD atanhtab2076<>+0(SB), R1 MOVD atanhtab2076<>+0(SB), R1
FMOVD 16(R5), F3 FMOVD 16(R5), F3
WORD $0x68521000 //ld %f5,0(%r2,%r1) WORD $0x68521000 //ld %f5,0(%r2,%r1)
......
...@@ -106,18 +106,12 @@ L2: ...@@ -106,18 +106,12 @@ L2:
LGDR F2, R2 LGDR F2, R2
SRAD $32, R2 SRAD $32, R2
L4: L4:
WORD $0xEC3239BE //risbg %r3,%r2,57,128+62,64-25 RISBGZ $57, $62, $39, R2, R3
BYTE $0x27
BYTE $0x55
MOVD cbrttab12067<>+0(SB), R1 MOVD cbrttab12067<>+0(SB), R1
WORD $0x48131000 //lh %r1,0(%r3,%r1) WORD $0x48131000 //lh %r1,0(%r3,%r1)
WORD $0xEC3239BE //risbg %r3,%r2,57,128+62,64-19 RISBGZ $57, $62, $45, R2, R3
BYTE $0x2D
BYTE $0x55
MOVD cbrttab22068<>+0(SB), R5 MOVD cbrttab22068<>+0(SB), R5
WORD $0xEC223CBF //risbgn %r2,%r2,64-4,128+63,64+44+4 RISBGNZ $60, $63, $48, R2, R2
BYTE $0x70
BYTE $0x59
WORD $0x4A135000 //ah %r1,0(%r3,%r5) WORD $0x4A135000 //ah %r1,0(%r3,%r5)
BYTE $0x18 //lr %r3,%r1 BYTE $0x18 //lr %r3,%r1
BYTE $0x31 BYTE $0x31
......
...@@ -116,14 +116,10 @@ L14: ...@@ -116,14 +116,10 @@ L14:
MOVD $coshe1<>+0(SB), R3 MOVD $coshe1<>+0(SB), R3
WFMADB V1, V6, V5, V6 WFMADB V1, V6, V5, V6
FMOVD 0(R3), F5 FMOVD 0(R3), F5
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
WFMADB V1, V7, V5, V1 WFMADB V1, V7, V5, V1
BVS L22 BVS L22
WORD $0xEC4139BC //risbg %r4,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R4
BYTE $0x03
BYTE $0x55
MOVD $coshtab<>+0(SB), R3 MOVD $coshtab<>+0(SB), R3
WFMADB V3, V6, V1, V6 WFMADB V3, V6, V1, V6
WORD $0x68043000 //ld %f0,0(%r4,%r3) WORD $0x68043000 //ld %f0,0(%r4,%r3)
...@@ -131,9 +127,7 @@ L14: ...@@ -131,9 +127,7 @@ L14:
WORD $0xA71AF000 //ahi %r1,-4096 WORD $0xA71AF000 //ahi %r1,-4096
WFMADB V2, V6, V0, V6 WFMADB V2, V6, V0, V6
L17: L17:
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
LDGR R2, F2 LDGR R2, F2
FMADD F2, F6, F2 FMADD F2, F6, F2
MOVD $coshx4ff<>+0(SB), R1 MOVD $coshx4ff<>+0(SB), R1
...@@ -176,27 +170,19 @@ L20: ...@@ -176,27 +170,19 @@ L20:
LGDR F3, R1 LGDR F3, R1
MOVD $coshtab<>+0(SB), R5 MOVD $coshtab<>+0(SB), R5
WFMADB V4, V6, V1, V3 WFMADB V4, V6, V1, V3
WORD $0xEC4139BC //risbg %r4,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R4
BYTE $0x03
BYTE $0x55
WFMSDB V4, V6, V1, V6 WFMSDB V4, V6, V1, V6
WORD $0x68145000 //ld %f1,0(%r4,%r5) WORD $0x68145000 //ld %f1,0(%r4,%r5)
WFMSDB V4, V1, V0, V2 WFMSDB V4, V1, V0, V2
WORD $0xA7487FBE //lhi %r4,32702 WORD $0xA7487FBE //lhi %r4,32702
FMADD F3, F2, F1 FMADD F3, F2, F1
SUBW R1, R4 SUBW R1, R4
WORD $0xECC439BC //risbg %r12,%r4,57,128+60,3 RISBGZ $57, $60, $3, R4, R12
BYTE $0x03
BYTE $0x55
WORD $0x682C5000 //ld %f2,0(%r12,%r5) WORD $0x682C5000 //ld %f2,0(%r12,%r5)
FMSUB F2, F4, F0 FMSUB F2, F4, F0
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
WFMADB V0, V6, V2, V6 WFMADB V0, V6, V2, V6
WORD $0xEC34000F //risbgn %r3,%r4,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R4, R3
BYTE $0x30
BYTE $0x59
LDGR R2, F2 LDGR R2, F2
LDGR R3, F0 LDGR R3, F0
FMADD F2, F1, F2 FMADD F2, F1, F2
...@@ -210,9 +196,7 @@ L22: ...@@ -210,9 +196,7 @@ L22:
MOVD $coshtab<>+0(SB), R4 MOVD $coshtab<>+0(SB), R4
SUBW R1, R3 SUBW R1, R3
WFMSDB V3, V6, V1, V6 WFMSDB V3, V6, V1, V6
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,3 RISBGZ $57, $60, $3, R3, R3
BYTE $0x03
BYTE $0x55
WORD $0x68034000 //ld %f0,0(%r3,%r4) WORD $0x68034000 //ld %f0,0(%r3,%r4)
FMSUB F0, F3, F2 FMSUB F0, F3, F2
WORD $0xA7386FBE //lhi %r3,28606 WORD $0xA7386FBE //lhi %r3,28606
......
...@@ -104,9 +104,7 @@ TEXT ·erfAsm(SB), NOSPLIT, $0-16 ...@@ -104,9 +104,7 @@ TEXT ·erfAsm(SB), NOSPLIT, $0-16
FMOVD F0, F6 FMOVD F0, F6
SRAD $48, R1 SRAD $48, R1
MOVH $16383, R3 MOVH $16383, R3
WORD $0xEC2131BF //risbg %r2,%r1,49,128+63,0 RISBGZ $49, $63, $0, R1, R2
BYTE $0x00
BYTE $0x55
MOVW R2, R6 MOVW R2, R6
MOVW R3, R7 MOVW R3, R7
CMPBGT R6, R7, L2 CMPBGT R6, R7, L2
...@@ -221,13 +219,9 @@ L9: ...@@ -221,13 +219,9 @@ L9:
FMOVD 200(R5), F3 FMOVD 200(R5), F3
MOVH R1,R1 MOVH R1,R1
WFMADB V4, V3, V5, V3 WFMADB V4, V3, V5, V3
WORD $0xEC2139BC //risbg %r2,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R2
BYTE $0x03
BYTE $0x55
WFMADB V1, V6, V3, V6 WFMADB V1, V6, V3, V6
WORD $0xEC31000F //risbgn %r3,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R3
BYTE $0x30
BYTE $0x59
MOVD erftab2066<>+0(SB), R1 MOVD erftab2066<>+0(SB), R1
FMOVD 192(R5), F1 FMOVD 192(R5), F1
LDGR R3, F3 LDGR R3, F3
......
...@@ -242,16 +242,12 @@ L11: ...@@ -242,16 +242,12 @@ L11:
WFMADB V0, V2, V3, V0 WFMADB V0, V2, V3, V0
FMOVD 584(R9), F3 FMOVD 584(R9), F3
WFMADB V4, V6, V3, V6 WFMADB V4, V6, V3, V6
WORD $0xECC339BC //risbg %r12,%r3,57,128+60,3 RISBGZ $57, $60, $3, R3, R12
BYTE $0x03
BYTE $0x55
WFMADB V2, V0, V6, V0 WFMADB V2, V0, V6, V0
MOVD erfctab2069<>+0(SB), R5 MOVD erfctab2069<>+0(SB), R5
WORD $0x682C5000 //ld %f2,0(%r12,%r5) WORD $0x682C5000 //ld %f2,0(%r12,%r5)
FMADD F2, F4, F4 FMADD F2, F4, F4
WORD $0xEC43000F //risbgn %r4,%r3,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R3, R4
BYTE $0x30
BYTE $0x59
WFMADB V4, V0, V2, V4 WFMADB V4, V0, V2, V4
LDGR R4, F2 LDGR R4, F2
FMADD F4, F2, F2 FMADD F4, F2, F2
......
...@@ -91,9 +91,7 @@ L2: ...@@ -91,9 +91,7 @@ L2:
WFMADB V0, V4, V3, V4 WFMADB V0, V4, V3, V4
FMOVD 8(R5), F3 FMOVD 8(R5), F3
WFMADB V2, V1, V3, V1 WFMADB V2, V1, V3, V1
WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R3
BYTE $0x03
BYTE $0x55
WFMADB V0, V4, V1, V0 WFMADB V0, V4, V1, V0
MOVD exptexp<>+0(SB), R2 MOVD exptexp<>+0(SB), R2
WORD $0x68432000 //ld %f4,0(%r3,%r2) WORD $0x68432000 //ld %f4,0(%r3,%r2)
...@@ -142,9 +140,7 @@ L6: ...@@ -142,9 +140,7 @@ L6:
WFMADB V6, V1, V7, V1 WFMADB V6, V1, V7, V1
FMOVD 8(R5), F7 FMOVD 8(R5), F7
WFMADB V4, V5, V7, V5 WFMADB V4, V5, V7, V5
WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R3
BYTE $0x03
BYTE $0x55
WFMADB V6, V1, V5, V6 WFMADB V6, V1, V5, V6
MOVD exptexp<>+0(SB), R2 MOVD exptexp<>+0(SB), R2
WFCHDBS V2, V0, V0 WFCHDBS V2, V0, V0
...@@ -154,9 +150,7 @@ L6: ...@@ -154,9 +150,7 @@ L6:
WFMADB V4, V6, V1, V4 WFMADB V4, V6, V1, V4
BEQ L21 BEQ L21
ADDW $0xF000, R1 ADDW $0xF000, R1
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
LDGR R2, F0 LDGR R2, F0
FMADD F0, F4, F0 FMADD F0, F4, F0
MOVD expx4ff<>+0(SB), R3 MOVD expx4ff<>+0(SB), R3
...@@ -170,9 +164,7 @@ L13: ...@@ -170,9 +164,7 @@ L13:
RET RET
L21: L21:
ADDW $0x1000, R1 ADDW $0x1000, R1
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
LDGR R2, F0 LDGR R2, F0
FMADD F0, F4, F0 FMADD F0, F4, F0
MOVD expx2ff<>+0(SB), R3 MOVD expx2ff<>+0(SB), R3
......
...@@ -99,9 +99,7 @@ L2: ...@@ -99,9 +99,7 @@ L2:
FMADD F5, F4, F0 FMADD F5, F4, F0
FMOVD 16(R5), F6 FMOVD 16(R5), F6
WFMADB V0, V2, V6, V2 WFMADB V0, V2, V6, V2
WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R3
BYTE $0x03
BYTE $0x55
WORD $0xB3130022 //lcdbr %f2,%f2 WORD $0xB3130022 //lcdbr %f2,%f2
MOVD expm1tab<>+0(SB), R2 MOVD expm1tab<>+0(SB), R2
WORD $0x68432000 //ld %f4,0(%r3,%r2) WORD $0x68432000 //ld %f4,0(%r3,%r2)
...@@ -157,9 +155,7 @@ L6: ...@@ -157,9 +155,7 @@ L6:
FMADD F4, F1, F6 FMADD F4, F1, F6
LGDR F5, R1 LGDR F5, R1
WORD $0xB3130066 //lcdbr %f6,%f6 WORD $0xB3130066 //lcdbr %f6,%f6
WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R3
BYTE $0x03
BYTE $0x55
WORD $0x68432000 //ld %f4,0(%r3,%r2) WORD $0x68432000 //ld %f4,0(%r3,%r2)
FMADD F4, F1, F1 FMADD F4, F1, F1
MOVD $0x4086000000000000, R2 MOVD $0x4086000000000000, R2
...@@ -168,9 +164,7 @@ L6: ...@@ -168,9 +164,7 @@ L6:
WFCHDBS V2, V0, V0 WFCHDBS V2, V0, V0
BEQ L21 BEQ L21
ADDW $0xF000, R1 ADDW $0xF000, R1
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
LDGR R2, F0 LDGR R2, F0
FMADD F0, F4, F0 FMADD F0, F4, F0
MOVD expm1x4ff<>+0(SB), R3 MOVD expm1x4ff<>+0(SB), R3
...@@ -186,9 +180,7 @@ L7: ...@@ -186,9 +180,7 @@ L7:
RET RET
L21: L21:
ADDW $0x1000, R1 ADDW $0x1000, R1
WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R1, R2
BYTE $0x30
BYTE $0x59
LDGR R2, F0 LDGR R2, F0
FMADD F0, F4, F0 FMADD F0, F4, F0
MOVD expm1x2ff<>+0(SB), R3 MOVD expm1x2ff<>+0(SB), R3
......
...@@ -62,13 +62,9 @@ TEXT ·log10Asm(SB),NOSPLIT,$8-16 ...@@ -62,13 +62,9 @@ TEXT ·log10Asm(SB),NOSPLIT,$8-16
BYTE $0xFF BYTE $0xFF
WORD $0x5840F008 //l %r4, 8(%r15) WORD $0x5840F008 //l %r4, 8(%r15)
SUBW R4, R2, R3 SUBW R4, R2, R3
WORD $0xEC5320AF //risbg %r5,%r3,32,128+47,0 RISBGZ $32, $47, $0, R3, R5
BYTE $0x00
BYTE $0x55
MOVH $0x0, R1 MOVH $0x0, R1
WORD $0xEC15001F //risbgn %r1,%r5,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R5, R1
BYTE $0x20
BYTE $0x59
WORD $0xC0590016 //iilf %r5,1507327 WORD $0xC0590016 //iilf %r5,1507327
BYTE $0xFF BYTE $0xFF
BYTE $0xFF BYTE $0xFF
...@@ -94,13 +90,9 @@ L2: ...@@ -94,13 +90,9 @@ L2:
BYTE $0x1C BYTE $0x1C
FMOVD F0, x-8(SP) FMOVD F0, x-8(SP)
WORD $0x5B20F008 //s %r2, 8(%r15) WORD $0x5B20F008 //s %r2, 8(%r15)
WORD $0xEC3239BC //risbg %r3,%r2,57,128+60,64-13 RISBGZ $57, $60, $51, R2, R3
BYTE $0x33
BYTE $0x55
ANDW $0xFFFF0000, R2 ANDW $0xFFFF0000, R2
WORD $0xEC12001F //risbgn %r1,%r2,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R2, R1
BYTE $0x20
BYTE $0x59
ADDW $0x4000000, R2 ADDW $0x4000000, R2
BLEU L17 BLEU L17
L8: L8:
...@@ -122,9 +114,7 @@ L4: ...@@ -122,9 +114,7 @@ L4:
FMOVD log10rodataL19<>+72(SB), F1 FMOVD log10rodataL19<>+72(SB), F1
WFMADB V0, V2, V1, V2 WFMADB V0, V2, V1, V2
FMOVD log10rodataL19<>+64(SB), F1 FMOVD log10rodataL19<>+64(SB), F1
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,0 RISBGZ $57, $60, $0, R3, R3
BYTE $0x00
BYTE $0x55
WFMADB V4, V6, V2, V6 WFMADB V4, V6, V2, V6
FMOVD log10rodataL19<>+56(SB), F2 FMOVD log10rodataL19<>+56(SB), F2
WFMADB V0, V1, V2, V1 WFMADB V0, V1, V2, V1
...@@ -145,12 +135,8 @@ L4: ...@@ -145,12 +135,8 @@ L4:
RET RET
L16: L16:
WORD $0xEC2328B7 //risbg %r2,%r3,40,128+55,64-8 RISBGZ $40, $55, $56, R3, R2
BYTE $0x38 RISBGZ $57, $60, $51, R3, R3
BYTE $0x55
WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13
BYTE $0x33
BYTE $0x55
ORW $0x45000000, R2 ORW $0x45000000, R2
BR L4 BR L4
L13: L13:
......
...@@ -105,12 +105,8 @@ TEXT ·log1pAsm(SB), NOSPLIT, $0-16 ...@@ -105,12 +105,8 @@ TEXT ·log1pAsm(SB), NOSPLIT, $0-16
SRW $16, R1, R1 SRW $16, R1, R1
BYTE $0x18 //lr %r4,%r1 BYTE $0x18 //lr %r4,%r1
BYTE $0x41 BYTE $0x41
WORD $0xEC24000F //risbgn %r2,%r4,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R4, R2
BYTE $0x30 RISBGN $16, $31, $32, R4, R5
BYTE $0x59
WORD $0xEC54101F //risbgn %r5,%r4,64-64+16,64-64+16+16-1,64-16-16
BYTE $0x20
BYTE $0x59
MOVW R0, R6 MOVW R0, R6
MOVW R3, R7 MOVW R3, R7
CMPBGT R6, R7, L8 CMPBGT R6, R7, L8
...@@ -155,9 +151,7 @@ L8: ...@@ -155,9 +151,7 @@ L8:
WFMADB V6, V5, V2, V6 WFMADB V6, V5, V2, V6
FMOVD 0(R2), F4 FMOVD 0(R2), F4
WFMADB V0, V6, V4, V6 WFMADB V0, V6, V4, V6
WORD $0xEC1139BC //risbg %r1,%r1,57,128+60,3 RISBGZ $57, $60, $3, R1, R1
BYTE $0x03
BYTE $0x55
MOVD log1ptab<>+0(SB), R2 MOVD log1ptab<>+0(SB), R2
MOVD log1pxl1<>+0(SB), R3 MOVD log1pxl1<>+0(SB), R3
WORD $0x68112000 //ld %f1,0(%r1,%r2) WORD $0x68112000 //ld %f1,0(%r1,%r2)
......
...@@ -68,15 +68,9 @@ TEXT ·logAsm(SB), NOSPLIT, $0-16 ...@@ -68,15 +68,9 @@ TEXT ·logAsm(SB), NOSPLIT, $0-16
SRAD $48, R1, R1 SRAD $48, R1, R1
MOVD $0x40F03E8000000000, R8 MOVD $0x40F03E8000000000, R8
SUBW R1, R4 SUBW R1, R4
WORD $0xEC2420BB //risbg %r2,%r4,32,128+59,0 RISBGZ $32, $59, $0, R4, R2
BYTE $0x00 RISBGN $0, $15, $48, R2, R6
BYTE $0x55 RISBGN $16, $31, $32, R2, R8
WORD $0xEC62000F //risbgn %r6,%r2,64-64+0,64-64+0+16-1,64-0-16
BYTE $0x30
BYTE $0x59
WORD $0xEC82101F //risbgn %r8,%r2,64-64+16,64-64+16+16-1,64-16-16
BYTE $0x20
BYTE $0x59
MOVW R1, R7 MOVW R1, R7
CMPBGT R7, $22, L17 CMPBGT R7, $22, L17
LTDBR F0, F0 LTDBR F0, F0
...@@ -103,12 +97,8 @@ L15: ...@@ -103,12 +97,8 @@ L15:
BYTE $0x51 BYTE $0x51
MOVW R1, R7 MOVW R1, R7
CMPBLE R7, $22, L7 CMPBLE R7, $22, L7
WORD $0xEC63000F //risbgn %r6,%r3,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R3, R6
BYTE $0x30 RISBGN $16, $31, $32, R2, R8
BYTE $0x59
WORD $0xEC82101F //risbgn %r8,%r2,64-64+16,64-64+16+16-1,64-16-16
BYTE $0x20
BYTE $0x59
L2: L2:
MOVH R5, R5 MOVH R5, R5
MOVH $0x7FEF, R1 MOVH $0x7FEF, R1
...@@ -116,9 +106,7 @@ L2: ...@@ -116,9 +106,7 @@ L2:
BGT L1 BGT L1
LDGR R6, F2 LDGR R6, F2
FMUL F2, F0 FMUL F2, F0
WORD $0xEC4439BB //risbg %r4,%r4,57,128+59,3 RISBGZ $57, $59, $3, R4, R4
BYTE $0x03
BYTE $0x55
FMOVD 80(R9), F2 FMOVD 80(R9), F2
MOVD logxm<>+0(SB), R7 MOVD logxm<>+0(SB), R7
ADD R7, R4 ADD R7, R4
......
...@@ -301,13 +301,9 @@ Normal: ...@@ -301,13 +301,9 @@ Normal:
WORD $0xC0298009 //iilf %r2,2148095317 WORD $0xC0298009 //iilf %r2,2148095317
BYTE $0x55 BYTE $0x55
BYTE $0x55 BYTE $0x55
WORD $0xEC1320BF //risbgn %r1,%r3,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R3, R1
BYTE $0x60
BYTE $0x59
SUBW R1, R2 SUBW R1, R2
WORD $0xEC323ABF //risbgn %r3,%r2,64-6,128+63,64+44+6 RISBGNZ $58, $63, $50, R2, R3
BYTE $0x72
BYTE $0x59
BYTE $0x18 //lr %r5,%r1 BYTE $0x18 //lr %r5,%r1
BYTE $0x51 BYTE $0x51
MOVD powtabi<>+0(SB), R12 MOVD powtabi<>+0(SB), R12
...@@ -322,12 +318,8 @@ Normal: ...@@ -322,12 +318,8 @@ Normal:
ORW R5, R1 ORW R5, R1
WORD $0x5A234000 //a %r2,0(%r3,%r4) WORD $0x5A234000 //a %r2,0(%r3,%r4)
MOVD $0x3FF0000000000000, R5 MOVD $0x3FF0000000000000, R5
WORD $0xEC3228BF //risbg %r3,%r2,64-24,128+63,64+32+24 RISBGZ $40, $63, $56, R2, R3
BYTE $0x78 RISBGN $0, $31, $32, R2, R8
BYTE $0x55
WORD $0xEC82001F //risbgn %r8,%r2,64-64+0,64-64+0+32-1,64-0-32
BYTE $0x20
BYTE $0x59
ORW $0x45000000, R3 ORW $0x45000000, R3
MOVW R1, R6 MOVW R1, R6
CMPBLT R6, $0, L42 CMPBLT R6, $0, L42
...@@ -399,16 +391,12 @@ L2: ...@@ -399,16 +391,12 @@ L2:
WFMADB V1, V3, V7, V1 WFMADB V1, V3, V7, V1
FMOVD 16(R9), F5 FMOVD 16(R9), F5
WFMADB V4, V5, V16, V5 WFMADB V4, V5, V16, V5
WORD $0xEC4239BC //risbg %r4,%r2,57,128+60,3 RISBGZ $57, $60, $3, R2, R4
BYTE $0x03
BYTE $0x55
WFMADB V3, V1, V5, V1 WFMADB V3, V1, V5, V1
MOVD powtexp<>+0(SB), R3 MOVD powtexp<>+0(SB), R3
WORD $0x68343000 //ld %f3,0(%r4,%r3) WORD $0x68343000 //ld %f3,0(%r4,%r3)
FMADD F3, F4, F4 FMADD F3, F4, F4
WORD $0xEC52000F //risbgn %r5,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R5
BYTE $0x30
BYTE $0x59
WFMADB V4, V1, V3, V4 WFMADB V4, V1, V3, V4
LGDR F6, R2 LGDR F6, R2
LDGR R5, F1 LDGR R5, F1
...@@ -449,18 +437,12 @@ L11: ...@@ -449,18 +437,12 @@ L11:
MOVW R2, R7 MOVW R2, R7
MOVW R1, R6 MOVW R1, R6
CMPBLE R7, R6, L34 CMPBLE R7, R6, L34
WORD $0xEC1520BF //risbgn %r1,%r5,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R5, R1
BYTE $0x60
BYTE $0x59
LGDR F6, R2 LGDR F6, R2
MOVD $powiadd<>+0(SB), R3 MOVD $powiadd<>+0(SB), R3
WORD $0xEC223CBC //risbg %r2,%r2,60,128+60,64-60 RISBGZ $60, $60, $4, R2, R2
BYTE $0x04
BYTE $0x55
WORD $0x5A123000 //a %r1,0(%r2,%r3) WORD $0x5A123000 //a %r1,0(%r2,%r3)
WORD $0xEC51001F //risbgn %r5,%r1,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R1, R5
BYTE $0x20
BYTE $0x59
LDGR R5, F1 LDGR R5, F1
FMADD F1, F4, F1 FMADD F1, F4, F1
MOVD $powxscale<>+0(SB), R1 MOVD $powxscale<>+0(SB), R1
...@@ -487,16 +469,10 @@ L3: ...@@ -487,16 +469,10 @@ L3:
BYTE $0x55 BYTE $0x55
BYTE $0x55 BYTE $0x55
LGDR F4, R3 LGDR F4, R3
WORD $0xEC3320BF //risbgn %r3,%r3,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R3, R3
BYTE $0x60
BYTE $0x59
SUBW R3, R2, R3 SUBW R3, R2, R3
WORD $0xEC2321AB //risbg %r2,%r3,33,128+43,0 RISBGZ $33, $43, $0, R3, R2
BYTE $0x00 RISBGNZ $58, $63, $50, R3, R3
BYTE $0x55
WORD $0xEC333ABF //risbgn %r3,%r3,64-6,128+63,64+44+6
BYTE $0x72
BYTE $0x59
WORD $0xE303C000 //llgc %r0,0(%r3,%r12) WORD $0xE303C000 //llgc %r0,0(%r3,%r12)
BYTE $0x00 BYTE $0x00
BYTE $0x90 BYTE $0x90
...@@ -504,14 +480,10 @@ L3: ...@@ -504,14 +480,10 @@ L3:
WORD $0x5A234000 //a %r2,0(%r3,%r4) WORD $0x5A234000 //a %r2,0(%r3,%r4)
BYTE $0x18 //lr %r3,%r2 BYTE $0x18 //lr %r3,%r2
BYTE $0x32 BYTE $0x32
WORD $0xEC83001F //risbgn %r8,%r3,64-64+0,64-64+0+32-1,64-0-32 RISBGN $0, $31, $32, R3, R8
BYTE $0x20
BYTE $0x59
ADDW $0x4000000, R3 ADDW $0x4000000, R3
BLEU L5 BLEU L5
WORD $0xEC3328BF //risbg %r3,%r3,64-24,128+63,64+32+24 RISBGZ $40, $63, $56, R3, R3
BYTE $0x78
BYTE $0x55
ORW $0x45000000, R3 ORW $0x45000000, R3
BR L2 BR L2
L9: L9:
...@@ -540,9 +512,7 @@ L18: ...@@ -540,9 +512,7 @@ L18:
WFMDB V4, V5, V1 WFMDB V4, V5, V1
BR L1 BR L1
L5: L5:
WORD $0xEC3321B2 //risbg %r3,%r3,33,128+50,64-1 RISBGZ $33, $50, $63, R3, R3
BYTE $0x3F
BYTE $0x55
WORD $0xC23B4000 //alfi %r3,1073741824 WORD $0xC23B4000 //alfi %r3,1073741824
BYTE $0x00 BYTE $0x00
BYTE $0x00 BYTE $0x00
...@@ -571,9 +541,7 @@ L16: ...@@ -571,9 +541,7 @@ L16:
BR L1 BR L1
L48: L48:
LGDR F0, R3 LGDR F0, R3
WORD $0xEC1320BF //risbgn %r1,%r3,64-32,128+63,64+0+32 RISBGNZ $32, $63, $32, R3, R1
BYTE $0x60
BYTE $0x59
MOVW R1, R6 MOVW R1, R6
CMPBEQ R6, $0, L29 CMPBEQ R6, $0, L29
LTDBR F2, F2 LTDBR F2, F2
......
...@@ -153,9 +153,7 @@ L6: ...@@ -153,9 +153,7 @@ L6:
VLGVG $0, V16, R2 VLGVG $0, V16, R2
WFMADB V6, V3, V5, V6 WFMADB V6, V3, V5, V6
RLL $3, R2, R2 RLL $3, R2, R2
WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R1
BYTE $0x30
BYTE $0x59
BEQ L9 BEQ L9
WFMSDB V0, V1, V6, V0 WFMSDB V0, V1, V6, V0
MOVD $sinhx4ff<>+0(SB), R3 MOVD $sinhx4ff<>+0(SB), R3
...@@ -165,9 +163,7 @@ L6: ...@@ -165,9 +163,7 @@ L6:
ANDW $0xFFFF, R2 ANDW $0xFFFF, R2
WORD $0xA53FEFB6 //llill %r3,61366 WORD $0xA53FEFB6 //llill %r3,61366
SUBW R2, R3, R2 SUBW R2, R3, R2
WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R1
BYTE $0x30
BYTE $0x59
LDGR R1, F2 LDGR R1, F2
FMUL F2, F0 FMUL F2, F0
FMOVD F0, ret+8(FP) FMOVD F0, ret+8(FP)
...@@ -195,9 +191,7 @@ L20: ...@@ -195,9 +191,7 @@ L20:
FMOVD 0(R2), F5 FMOVD 0(R2), F5
LGDR F6, R2 LGDR F6, R2
RLL $3, R2, R2 RLL $3, R2, R2
WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R1
BYTE $0x30
BYTE $0x59
WFMADB V2, V1, V0, V1 WFMADB V2, V1, V0, V1
LDGR R1, F0 LDGR R1, F0
MOVD $sinhe5<>+0(SB), R1 MOVD $sinhe5<>+0(SB), R1
...@@ -211,9 +205,7 @@ L20: ...@@ -211,9 +205,7 @@ L20:
FNEG F4, F4 FNEG F4, F4
ANDW $0xFFFF, R2 ANDW $0xFFFF, R2
SUBW R2, R4, R2 SUBW R2, R4, R2
WORD $0xEC32000F //risbgn %r3,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R3
BYTE $0x30
BYTE $0x59
LDGR R3, F6 LDGR R3, F6
WFADB V0, V6, V16 WFADB V0, V6, V16
MOVD $sinhe4<>+0(SB), R1 MOVD $sinhe4<>+0(SB), R1
...@@ -242,9 +234,7 @@ L9: ...@@ -242,9 +234,7 @@ L9:
FMOVD 0(R3), F2 FMOVD 0(R3), F2
FMUL F2, F0 FMUL F2, F0
WORD $0xA72AF000 //ahi %r2,-4096 WORD $0xA72AF000 //ahi %r2,-4096
WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R1
BYTE $0x30
BYTE $0x59
LDGR R1, F2 LDGR R1, F2
FMUL F2, F0 FMUL F2, F0
FMOVD F0, ret+8(FP) FMOVD F0, ret+8(FP)
......
...@@ -76,15 +76,11 @@ L2: ...@@ -76,15 +76,11 @@ L2:
WFMSDB V0, V4, V2, V4 WFMSDB V0, V4, V2, V4
MOVD $tanhtab<>+0(SB), R3 MOVD $tanhtab<>+0(SB), R3
LGDR F4, R2 LGDR F4, R2
WORD $0xEC4239BC //risbg %r4,%r2,57,128+60,3 RISBGZ $57, $60, $3, R2, R4
BYTE $0x03
BYTE $0x55
WORD $0xED105058 //cdb %f1,.L19-.L18(%r5) WORD $0xED105058 //cdb %f1,.L19-.L18(%r5)
BYTE $0x00 BYTE $0x00
BYTE $0x19 BYTE $0x19
WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 RISBGN $0, $15, $48, R2, R1
BYTE $0x30
BYTE $0x59
WORD $0x68543000 //ld %f5,0(%r4,%r3) WORD $0x68543000 //ld %f5,0(%r4,%r3)
LDGR R1, F6 LDGR R1, F6
BLT L3 BLT L3
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment