From 64dc4ba73f9086709cd0cbcdc80dc116511d9081 Mon Sep 17 00:00:00 2001 From: Michael Munday Date: Tue, 29 Jan 2019 15:58:57 +0000 Subject: [PATCH] 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 TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/math/acosh_s390x.s | 28 +++++------------- src/math/asinh_s390x.s | 20 ++++--------- src/math/atan2_s390x.s | 16 +++-------- src/math/atan_s390x.s | 8 ++---- src/math/atanh_s390x.s | 8 ++---- src/math/cbrt_s390x.s | 12 ++------ src/math/cosh_s390x.s | 32 ++++++--------------- src/math/erf_s390x.s | 12 ++------ src/math/erfc_s390x.s | 8 ++---- src/math/exp_s390x.s | 16 +++-------- src/math/expm1_s390x.s | 16 +++-------- src/math/log10_s390x.s | 28 +++++------------- src/math/log1p_s390x.s | 12 ++------ src/math/log_s390x.s | 24 ++++------------ src/math/pow_s390x.s | 64 +++++++++++------------------------------- src/math/sinh_s390x.s | 20 ++++--------- src/math/tanh_s390x.s | 8 ++---- 17 files changed, 83 insertions(+), 249 deletions(-) diff --git a/src/math/acosh_s390x.s b/src/math/acosh_s390x.s index 87a5d00154..9294c48e6b 100644 --- a/src/math/acosh_s390x.s +++ b/src/math/acosh_s390x.s @@ -90,17 +90,11 @@ L2: MOVH $0x0, R1 SUBW R5, R3 FMOVD $0, F10 - WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 - BYTE $0x00 - BYTE $0x55 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $32, $47, $0, R3, R4 + RISBGZ $57, $60, $51, R3, R3 BYTE $0x18 //lr %r2,%r4 BYTE $0x24 - WORD $0xEC14001F //risbgn %r1,%r4,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R4, R1 SUBW $0x100000, R2 SRAW $8, R2, R2 ORW $0x45000000, R2 @@ -119,9 +113,7 @@ L5: FMOVD 64(R9), F2 WFMADB V6, V4, V1, V6 FMOVD 56(R9), F1 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $57, $60, $0, R3, R3 WFMADB V0, V2, V1, V2 FMOVD 48(R9), F1 WFMADB V4, V6, V2, V6 @@ -158,15 +150,9 @@ L4: MOVH $0x0, R1 SUBW R5, R3 SRAW $8, R3, R2 - WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $32, $47, $0, R3, R4 ANDW $0xFFFFFF00, R2 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $57, $60, $51, R3, R3 ORW $0x45000000, R2 - WORD $0xEC14001F //risbgn %r1,%r4,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R4, R1 BR L5 diff --git a/src/math/asinh_s390x.s b/src/math/asinh_s390x.s index a3680c661f..1bcf2954c4 100644 --- a/src/math/asinh_s390x.s +++ b/src/math/asinh_s390x.s @@ -98,14 +98,10 @@ L9: MOVH $0x0, R2 SUBW R5, R3 FMOVD $0, F8 - WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $32, $47, $0, R3, R4 BYTE $0x18 //lr %r1,%r4 BYTE $0x14 - WORD $0xEC24001F //risbgn %r2,%r4,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R4, R2 SUBW $0x100000, R1 SRAW $8, R1, R1 ORW $0x45000000, R1 @@ -137,13 +133,9 @@ L5: SRAD $32, R5 MOVH $0x0, R2 SUBW R5, R3 - WORD $0xEC4320AF //risbg %r4,%r3,32,128+47,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $32, $47, $0, R3, R4 SRAW $8, R4, R1 - WORD $0xEC24001F //risbgn %r2,%r4,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R4, R2 ORW $0x45000000, R1 L6: LDGR R2, F2 @@ -160,9 +152,7 @@ L6: FMOVD 144(R9), F0 WFMADB V6, V4, V1, V6 FMOVD 136(R9), F1 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $57, $60, $51, R3, R3 WFMADB V2, V0, V1, V0 FMOVD 128(R9), F1 WFMADB V4, V6, V0, V6 diff --git a/src/math/atan2_s390x.s b/src/math/atan2_s390x.s index c7a8a09d05..6b9af252e2 100644 --- a/src/math/atan2_s390x.s +++ b/src/math/atan2_s390x.s @@ -144,16 +144,10 @@ Normal: MOVD $·atan2rodataL25<>+0(SB), R9 LGDR F0, R2 LGDR F2, R1 - WORD $0xEC2220BF //risbgn %r2,%r2,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 - WORD $0xEC1120BF //risbgn %r1,%r1,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R2, R2 + RISBGNZ $32, $63, $32, R1, R1 WORD $0xB9170032 //llgtr %r3,%r2 - WORD $0xEC523FBF //risbg %r5,%r2,64-1,128+63,64+32+1 - BYTE $0x61 - BYTE $0x55 + RISBGZ $63, $63, $33, R2, R5 WORD $0xB9170041 //llgtr %r4,%r1 WFLCDB V0, V20 MOVW R4, R6 @@ -224,9 +218,7 @@ L7: MOVW R1, R6 CMPBGE R6, $0, L1 L18: - WORD $0xEC223ABC //risbg %r2,%r2,58,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $58, $60, $3, R2, R2 MOVD $·atan2xpi2h<>+0(SB), R1 MOVD ·atan2xpim<>+0(SB), R3 LDGR R3, F0 diff --git a/src/math/atan_s390x.s b/src/math/atan_s390x.s index 713727ddbf..3a7e59bb1a 100644 --- a/src/math/atan_s390x.s +++ b/src/math/atan_s390x.s @@ -55,9 +55,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16 MOVD $·atanrodataL8<>+0(SB), R5 MOVH $0x3FE0, R3 LGDR F0, R1 - WORD $0xEC1120BF //risbgn %r1,%r1,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R1, R1 RLL $16, R1, R2 ANDW $0x7FF0, R2 MOVW R2, R6 @@ -66,9 +64,7 @@ TEXT ·atanAsm(SB), NOSPLIT, $0-16 MOVD $·atanxmone<>+0(SB), R3 FMOVD 0(R3), F2 WFDDB V0, V2, V0 - WORD $0xEC113FBF //risbg %r1,%r1,64-1,128+63,64+32+1 - BYTE $0x61 - BYTE $0x55 + RISBGZ $63, $63, $33, R1, R1 MOVD $·atanxpi2h<>+0(SB), R3 MOVWZ R1, R1 SLD $3, R1, R1 diff --git a/src/math/atanh_s390x.s b/src/math/atanh_s390x.s index e7c6359704..c4ec2b2648 100644 --- a/src/math/atanh_s390x.s +++ b/src/math/atanh_s390x.s @@ -136,9 +136,7 @@ L9: BYTE $0x1B SUBW R4, R2 WFSDB V3, V2, V3 - WORD $0xEC1220AF //risbg %r1,%r2,32,128+47,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $32, $47, $0, R2, R1 SLD $32, R1, R1 LDGR R1, F2 WFMADB V4, V2, V16, V4 @@ -162,9 +160,7 @@ L9: WFMADB V2, V6, V3, V6 VLVGF $0, R1, V4 LDEBR F4, F4 - WORD $0xEC2239BC //risbg %r2,%r2,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $57, $60, $51, R2, R2 MOVD $·atanhtab2076<>+0(SB), R1 FMOVD 16(R5), F3 WORD $0x68521000 //ld %f5,0(%r2,%r1) diff --git a/src/math/cbrt_s390x.s b/src/math/cbrt_s390x.s index d79b48fc79..87bba531b8 100644 --- a/src/math/cbrt_s390x.s +++ b/src/math/cbrt_s390x.s @@ -106,18 +106,12 @@ L2: LGDR F2, R2 SRAD $32, R2 L4: - WORD $0xEC3239BE //risbg %r3,%r2,57,128+62,64-25 - BYTE $0x27 - BYTE $0x55 + RISBGZ $57, $62, $39, R2, R3 MOVD $·cbrttab12067<>+0(SB), R1 WORD $0x48131000 //lh %r1,0(%r3,%r1) - WORD $0xEC3239BE //risbg %r3,%r2,57,128+62,64-19 - BYTE $0x2D - BYTE $0x55 + RISBGZ $57, $62, $45, R2, R3 MOVD $·cbrttab22068<>+0(SB), R5 - WORD $0xEC223CBF //risbgn %r2,%r2,64-4,128+63,64+44+4 - BYTE $0x70 - BYTE $0x59 + RISBGNZ $60, $63, $48, R2, R2 WORD $0x4A135000 //ah %r1,0(%r3,%r5) BYTE $0x18 //lr %r3,%r1 BYTE $0x31 diff --git a/src/math/cosh_s390x.s b/src/math/cosh_s390x.s index 5e7a8d88cc..ca1d86e803 100644 --- a/src/math/cosh_s390x.s +++ b/src/math/cosh_s390x.s @@ -116,14 +116,10 @@ L14: MOVD $coshe1<>+0(SB), R3 WFMADB V1, V6, V5, V6 FMOVD 0(R3), F5 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 WFMADB V1, V7, V5, V1 BVS L22 - WORD $0xEC4139BC //risbg %r4,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R4 MOVD $coshtab<>+0(SB), R3 WFMADB V3, V6, V1, V6 WORD $0x68043000 //ld %f0,0(%r4,%r3) @@ -131,9 +127,7 @@ L14: WORD $0xA71AF000 //ahi %r1,-4096 WFMADB V2, V6, V0, V6 L17: - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 LDGR R2, F2 FMADD F2, F6, F2 MOVD $coshx4ff<>+0(SB), R1 @@ -176,27 +170,19 @@ L20: LGDR F3, R1 MOVD $coshtab<>+0(SB), R5 WFMADB V4, V6, V1, V3 - WORD $0xEC4139BC //risbg %r4,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R4 WFMSDB V4, V6, V1, V6 WORD $0x68145000 //ld %f1,0(%r4,%r5) WFMSDB V4, V1, V0, V2 WORD $0xA7487FBE //lhi %r4,32702 FMADD F3, F2, F1 SUBW R1, R4 - WORD $0xECC439BC //risbg %r12,%r4,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R4, R12 WORD $0x682C5000 //ld %f2,0(%r12,%r5) FMSUB F2, F4, F0 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 WFMADB V0, V6, V2, V6 - WORD $0xEC34000F //risbgn %r3,%r4,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R4, R3 LDGR R2, F2 LDGR R3, F0 FMADD F2, F1, F2 @@ -210,9 +196,7 @@ L22: MOVD $coshtab<>+0(SB), R4 SUBW R1, R3 WFMSDB V3, V6, V1, V6 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R3, R3 WORD $0x68034000 //ld %f0,0(%r3,%r4) FMSUB F0, F3, F2 WORD $0xA7386FBE //lhi %r3,28606 diff --git a/src/math/erf_s390x.s b/src/math/erf_s390x.s index 5be5d4de16..99ab436e09 100644 --- a/src/math/erf_s390x.s +++ b/src/math/erf_s390x.s @@ -104,9 +104,7 @@ TEXT ·erfAsm(SB), NOSPLIT, $0-16 FMOVD F0, F6 SRAD $48, R1 MOVH $16383, R3 - WORD $0xEC2131BF //risbg %r2,%r1,49,128+63,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $49, $63, $0, R1, R2 MOVW R2, R6 MOVW R3, R7 CMPBGT R6, R7, L2 @@ -221,13 +219,9 @@ L9: FMOVD 200(R5), F3 MOVH R1,R1 WFMADB V4, V3, V5, V3 - WORD $0xEC2139BC //risbg %r2,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R2 WFMADB V1, V6, V3, V6 - WORD $0xEC31000F //risbgn %r3,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R3 MOVD $·erftab2066<>+0(SB), R1 FMOVD 192(R5), F1 LDGR R3, F3 diff --git a/src/math/erfc_s390x.s b/src/math/erfc_s390x.s index 0cb606d6de..7e9d469cc6 100644 --- a/src/math/erfc_s390x.s +++ b/src/math/erfc_s390x.s @@ -242,16 +242,12 @@ L11: WFMADB V0, V2, V3, V0 FMOVD 584(R9), F3 WFMADB V4, V6, V3, V6 - WORD $0xECC339BC //risbg %r12,%r3,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R3, R12 WFMADB V2, V0, V6, V0 MOVD $·erfctab2069<>+0(SB), R5 WORD $0x682C5000 //ld %f2,0(%r12,%r5) FMADD F2, F4, F4 - WORD $0xEC43000F //risbgn %r4,%r3,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R3, R4 WFMADB V4, V0, V2, V4 LDGR R4, F2 FMADD F4, F2, F2 diff --git a/src/math/exp_s390x.s b/src/math/exp_s390x.s index cef1ce7684..e0ec823073 100644 --- a/src/math/exp_s390x.s +++ b/src/math/exp_s390x.s @@ -91,9 +91,7 @@ L2: WFMADB V0, V4, V3, V4 FMOVD 8(R5), F3 WFMADB V2, V1, V3, V1 - WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R3 WFMADB V0, V4, V1, V0 MOVD $·exptexp<>+0(SB), R2 WORD $0x68432000 //ld %f4,0(%r3,%r2) @@ -142,9 +140,7 @@ L6: WFMADB V6, V1, V7, V1 FMOVD 8(R5), F7 WFMADB V4, V5, V7, V5 - WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R3 WFMADB V6, V1, V5, V6 MOVD $·exptexp<>+0(SB), R2 WFCHDBS V2, V0, V0 @@ -154,9 +150,7 @@ L6: WFMADB V4, V6, V1, V4 BEQ L21 ADDW $0xF000, R1 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 LDGR R2, F0 FMADD F0, F4, F0 MOVD $·expx4ff<>+0(SB), R3 @@ -170,9 +164,7 @@ L13: RET L21: ADDW $0x1000, R1 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 LDGR R2, F0 FMADD F0, F4, F0 MOVD $·expx2ff<>+0(SB), R3 diff --git a/src/math/expm1_s390x.s b/src/math/expm1_s390x.s index c7c793b982..16c861bb18 100644 --- a/src/math/expm1_s390x.s +++ b/src/math/expm1_s390x.s @@ -99,9 +99,7 @@ L2: FMADD F5, F4, F0 FMOVD 16(R5), F6 WFMADB V0, V2, V6, V2 - WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R3 WORD $0xB3130022 //lcdbr %f2,%f2 MOVD $·expm1tab<>+0(SB), R2 WORD $0x68432000 //ld %f4,0(%r3,%r2) @@ -157,9 +155,7 @@ L6: FMADD F4, F1, F6 LGDR F5, R1 WORD $0xB3130066 //lcdbr %f6,%f6 - WORD $0xEC3139BC //risbg %r3,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R3 WORD $0x68432000 //ld %f4,0(%r3,%r2) FMADD F4, F1, F1 MOVD $0x4086000000000000, R2 @@ -168,9 +164,7 @@ L6: WFCHDBS V2, V0, V0 BEQ L21 ADDW $0xF000, R1 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 LDGR R2, F0 FMADD F0, F4, F0 MOVD $·expm1x4ff<>+0(SB), R3 @@ -186,9 +180,7 @@ L7: RET L21: ADDW $0x1000, R1 - WORD $0xEC21000F //risbgn %r2,%r1,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R1, R2 LDGR R2, F0 FMADD F0, F4, F0 MOVD $·expm1x2ff<>+0(SB), R3 diff --git a/src/math/log10_s390x.s b/src/math/log10_s390x.s index d6b750065b..3638afe700 100644 --- a/src/math/log10_s390x.s +++ b/src/math/log10_s390x.s @@ -62,13 +62,9 @@ TEXT ·log10Asm(SB),NOSPLIT,$8-16 BYTE $0xFF WORD $0x5840F008 //l %r4, 8(%r15) SUBW R4, R2, R3 - WORD $0xEC5320AF //risbg %r5,%r3,32,128+47,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $32, $47, $0, R3, R5 MOVH $0x0, R1 - WORD $0xEC15001F //risbgn %r1,%r5,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R5, R1 WORD $0xC0590016 //iilf %r5,1507327 BYTE $0xFF BYTE $0xFF @@ -94,13 +90,9 @@ L2: BYTE $0x1C FMOVD F0, x-8(SP) WORD $0x5B20F008 //s %r2, 8(%r15) - WORD $0xEC3239BC //risbg %r3,%r2,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $57, $60, $51, R2, R3 ANDW $0xFFFF0000, R2 - WORD $0xEC12001F //risbgn %r1,%r2,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R2, R1 ADDW $0x4000000, R2 BLEU L17 L8: @@ -122,9 +114,7 @@ L4: FMOVD log10rodataL19<>+72(SB), F1 WFMADB V0, V2, V1, V2 FMOVD log10rodataL19<>+64(SB), F1 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,0 - BYTE $0x00 - BYTE $0x55 + RISBGZ $57, $60, $0, R3, R3 WFMADB V4, V6, V2, V6 FMOVD log10rodataL19<>+56(SB), F2 WFMADB V0, V1, V2, V1 @@ -145,12 +135,8 @@ L4: RET L16: - WORD $0xEC2328B7 //risbg %r2,%r3,40,128+55,64-8 - BYTE $0x38 - BYTE $0x55 - WORD $0xEC3339BC //risbg %r3,%r3,57,128+60,64-13 - BYTE $0x33 - BYTE $0x55 + RISBGZ $40, $55, $56, R3, R2 + RISBGZ $57, $60, $51, R3, R3 ORW $0x45000000, R2 BR L4 L13: diff --git a/src/math/log1p_s390x.s b/src/math/log1p_s390x.s index ba4933d5b0..00eb374996 100644 --- a/src/math/log1p_s390x.s +++ b/src/math/log1p_s390x.s @@ -105,12 +105,8 @@ TEXT ·log1pAsm(SB), NOSPLIT, $0-16 SRW $16, R1, R1 BYTE $0x18 //lr %r4,%r1 BYTE $0x41 - WORD $0xEC24000F //risbgn %r2,%r4,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 - WORD $0xEC54101F //risbgn %r5,%r4,64-64+16,64-64+16+16-1,64-16-16 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $15, $48, R4, R2 + RISBGN $16, $31, $32, R4, R5 MOVW R0, R6 MOVW R3, R7 CMPBGT R6, R7, L8 @@ -155,9 +151,7 @@ L8: WFMADB V6, V5, V2, V6 FMOVD 0(R2), F4 WFMADB V0, V6, V4, V6 - WORD $0xEC1139BC //risbg %r1,%r1,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R1, R1 MOVD $·log1ptab<>+0(SB), R2 MOVD $·log1pxl1<>+0(SB), R3 WORD $0x68112000 //ld %f1,0(%r1,%r2) diff --git a/src/math/log_s390x.s b/src/math/log_s390x.s index 7bcfdfcffa..4b514f3dd4 100644 --- a/src/math/log_s390x.s +++ b/src/math/log_s390x.s @@ -68,15 +68,9 @@ TEXT ·logAsm(SB), NOSPLIT, $0-16 SRAD $48, R1, R1 MOVD $0x40F03E8000000000, R8 SUBW R1, R4 - WORD $0xEC2420BB //risbg %r2,%r4,32,128+59,0 - BYTE $0x00 - BYTE $0x55 - 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 + RISBGZ $32, $59, $0, R4, R2 + RISBGN $0, $15, $48, R2, R6 + RISBGN $16, $31, $32, R2, R8 MOVW R1, R7 CMPBGT R7, $22, L17 LTDBR F0, F0 @@ -103,12 +97,8 @@ L15: BYTE $0x51 MOVW R1, R7 CMPBLE R7, $22, L7 - WORD $0xEC63000F //risbgn %r6,%r3,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 + RISBGN $0, $15, $48, R3, R6 + RISBGN $16, $31, $32, R2, R8 L2: MOVH R5, R5 MOVH $0x7FEF, R1 @@ -116,9 +106,7 @@ L2: BGT L1 LDGR R6, F2 FMUL F2, F0 - WORD $0xEC4439BB //risbg %r4,%r4,57,128+59,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $59, $3, R4, R4 FMOVD 80(R9), F2 MOVD $·logxm<>+0(SB), R7 ADD R7, R4 diff --git a/src/math/pow_s390x.s b/src/math/pow_s390x.s index 754b119e24..9a0fff334b 100644 --- a/src/math/pow_s390x.s +++ b/src/math/pow_s390x.s @@ -301,13 +301,9 @@ Normal: WORD $0xC0298009 //iilf %r2,2148095317 BYTE $0x55 BYTE $0x55 - WORD $0xEC1320BF //risbgn %r1,%r3,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R3, R1 SUBW R1, R2 - WORD $0xEC323ABF //risbgn %r3,%r2,64-6,128+63,64+44+6 - BYTE $0x72 - BYTE $0x59 + RISBGNZ $58, $63, $50, R2, R3 BYTE $0x18 //lr %r5,%r1 BYTE $0x51 MOVD $·powtabi<>+0(SB), R12 @@ -322,12 +318,8 @@ Normal: ORW R5, R1 WORD $0x5A234000 //a %r2,0(%r3,%r4) MOVD $0x3FF0000000000000, R5 - WORD $0xEC3228BF //risbg %r3,%r2,64-24,128+63,64+32+24 - BYTE $0x78 - BYTE $0x55 - WORD $0xEC82001F //risbgn %r8,%r2,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGZ $40, $63, $56, R2, R3 + RISBGN $0, $31, $32, R2, R8 ORW $0x45000000, R3 MOVW R1, R6 CMPBLT R6, $0, L42 @@ -399,16 +391,12 @@ L2: WFMADB V1, V3, V7, V1 FMOVD 16(R9), F5 WFMADB V4, V5, V16, V5 - WORD $0xEC4239BC //risbg %r4,%r2,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R2, R4 WFMADB V3, V1, V5, V1 MOVD $·powtexp<>+0(SB), R3 WORD $0x68343000 //ld %f3,0(%r4,%r3) FMADD F3, F4, F4 - WORD $0xEC52000F //risbgn %r5,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R5 WFMADB V4, V1, V3, V4 LGDR F6, R2 LDGR R5, F1 @@ -449,18 +437,12 @@ L11: MOVW R2, R7 MOVW R1, R6 CMPBLE R7, R6, L34 - WORD $0xEC1520BF //risbgn %r1,%r5,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R5, R1 LGDR F6, R2 MOVD $powiadd<>+0(SB), R3 - WORD $0xEC223CBC //risbg %r2,%r2,60,128+60,64-60 - BYTE $0x04 - BYTE $0x55 + RISBGZ $60, $60, $4, R2, R2 WORD $0x5A123000 //a %r1,0(%r2,%r3) - WORD $0xEC51001F //risbgn %r5,%r1,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R1, R5 LDGR R5, F1 FMADD F1, F4, F1 MOVD $powxscale<>+0(SB), R1 @@ -487,16 +469,10 @@ L3: BYTE $0x55 BYTE $0x55 LGDR F4, R3 - WORD $0xEC3320BF //risbgn %r3,%r3,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R3, R3 SUBW R3, R2, R3 - WORD $0xEC2321AB //risbg %r2,%r3,33,128+43,0 - BYTE $0x00 - BYTE $0x55 - WORD $0xEC333ABF //risbgn %r3,%r3,64-6,128+63,64+44+6 - BYTE $0x72 - BYTE $0x59 + RISBGZ $33, $43, $0, R3, R2 + RISBGNZ $58, $63, $50, R3, R3 WORD $0xE303C000 //llgc %r0,0(%r3,%r12) BYTE $0x00 BYTE $0x90 @@ -504,14 +480,10 @@ L3: WORD $0x5A234000 //a %r2,0(%r3,%r4) BYTE $0x18 //lr %r3,%r2 BYTE $0x32 - WORD $0xEC83001F //risbgn %r8,%r3,64-64+0,64-64+0+32-1,64-0-32 - BYTE $0x20 - BYTE $0x59 + RISBGN $0, $31, $32, R3, R8 ADDW $0x4000000, R3 BLEU L5 - WORD $0xEC3328BF //risbg %r3,%r3,64-24,128+63,64+32+24 - BYTE $0x78 - BYTE $0x55 + RISBGZ $40, $63, $56, R3, R3 ORW $0x45000000, R3 BR L2 L9: @@ -540,9 +512,7 @@ L18: WFMDB V4, V5, V1 BR L1 L5: - WORD $0xEC3321B2 //risbg %r3,%r3,33,128+50,64-1 - BYTE $0x3F - BYTE $0x55 + RISBGZ $33, $50, $63, R3, R3 WORD $0xC23B4000 //alfi %r3,1073741824 BYTE $0x00 BYTE $0x00 @@ -571,9 +541,7 @@ L16: BR L1 L48: LGDR F0, R3 - WORD $0xEC1320BF //risbgn %r1,%r3,64-32,128+63,64+0+32 - BYTE $0x60 - BYTE $0x59 + RISBGNZ $32, $63, $32, R3, R1 MOVW R1, R6 CMPBEQ R6, $0, L29 LTDBR F2, F2 diff --git a/src/math/sinh_s390x.s b/src/math/sinh_s390x.s index bad2e218f8..73701f24f1 100644 --- a/src/math/sinh_s390x.s +++ b/src/math/sinh_s390x.s @@ -153,9 +153,7 @@ L6: VLGVG $0, V16, R2 WFMADB V6, V3, V5, V6 RLL $3, R2, R2 - WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R1 BEQ L9 WFMSDB V0, V1, V6, V0 MOVD $sinhx4ff<>+0(SB), R3 @@ -165,9 +163,7 @@ L6: ANDW $0xFFFF, R2 WORD $0xA53FEFB6 //llill %r3,61366 SUBW R2, R3, R2 - WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R1 LDGR R1, F2 FMUL F2, F0 FMOVD F0, ret+8(FP) @@ -195,9 +191,7 @@ L20: FMOVD 0(R2), F5 LGDR F6, R2 RLL $3, R2, R2 - WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R1 WFMADB V2, V1, V0, V1 LDGR R1, F0 MOVD $sinhe5<>+0(SB), R1 @@ -211,9 +205,7 @@ L20: FNEG F4, F4 ANDW $0xFFFF, R2 SUBW R2, R4, R2 - WORD $0xEC32000F //risbgn %r3,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R3 LDGR R3, F6 WFADB V0, V6, V16 MOVD $sinhe4<>+0(SB), R1 @@ -242,9 +234,7 @@ L9: FMOVD 0(R3), F2 FMUL F2, F0 WORD $0xA72AF000 //ahi %r2,-4096 - WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R1 LDGR R1, F2 FMUL F2, F0 FMOVD F0, ret+8(FP) diff --git a/src/math/tanh_s390x.s b/src/math/tanh_s390x.s index 456ed623ee..7e2d4dd797 100644 --- a/src/math/tanh_s390x.s +++ b/src/math/tanh_s390x.s @@ -76,15 +76,11 @@ L2: WFMSDB V0, V4, V2, V4 MOVD $tanhtab<>+0(SB), R3 LGDR F4, R2 - WORD $0xEC4239BC //risbg %r4,%r2,57,128+60,3 - BYTE $0x03 - BYTE $0x55 + RISBGZ $57, $60, $3, R2, R4 WORD $0xED105058 //cdb %f1,.L19-.L18(%r5) BYTE $0x00 BYTE $0x19 - WORD $0xEC12000F //risbgn %r1,%r2,64-64+0,64-64+0+16-1,64-0-16 - BYTE $0x30 - BYTE $0x59 + RISBGN $0, $15, $48, R2, R1 WORD $0x68543000 //ld %f5,0(%r4,%r3) LDGR R1, F6 BLT L3 -- 2.48.1