diff options
| author | Michael Munday <munday@ca.ibm.com> | 2016-09-26 00:45:01 -0400 |
|---|---|---|
| committer | Michael Munday <munday@ca.ibm.com> | 2016-09-27 16:00:51 +0000 |
| commit | 17a8ec2c4f702039652a4bc9630d233b454cfae8 (patch) | |
| tree | 8d557ec93b60fba26f0be7a3430820efbf3e3f64 /src/cmd/asm | |
| parent | 3436f0776f4f373b5ba1aacf9f66689c833168b0 (diff) | |
| download | go-17a8ec2c4f702039652a4bc9630d233b454cfae8.tar.xz | |
cmd/asm, cmd/internal/obj/s390x: improve add/multiply-immediate codegen
Use the A{,G}HI instructions where possible (4 bytes instead of 6 bytes
for A{,G}FI). Also, use 32-bit operations where appropriate for
multiplication.
Change-Id: I4041781cda26be52b54e4804a9e71552310762d0
Reviewed-on: https://go-review.googlesource.com/29733
Run-TryBot: Michael Munday <munday@ca.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bill O'Farrell <billotosyr@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/asm')
| -rw-r--r-- | src/cmd/asm/internal/asm/testdata/s390x.s | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/s390x.s b/src/cmd/asm/internal/asm/testdata/s390x.s index 3a01f29419..4b1d573064 100644 --- a/src/cmd/asm/internal/asm/testdata/s390x.s +++ b/src/cmd/asm/internal/asm/testdata/s390x.s @@ -52,21 +52,23 @@ TEXT main·foo(SB),7,$16-0 // TEXT main.foo(SB), 7, $16-0 ADD R1, R2 // b9e81022 ADD R1, R2, R3 // b9e81032 - ADD $8192, R1 // c21800002000 + ADD $8192, R1 // a71b2000 ADD $8192, R1, R2 // ec21200000d9 + ADD $32768, R1 // c21800008000 + ADD $32768, R1, R2 // b9040021c22800008000 ADDC R1, R2 // b9ea1022 - ADDC $1, R1, R2 // b9040021c22a00000001 + ADDC $1, R1, R2 // ec21000100db ADDC R1, R2, R3 // b9ea1032 ADDW R1, R2 // 1a21 ADDW R1, R2, R3 // b9f81032 - ADDW $8192, R1 // c21900002000 + ADDW $8192, R1 // a71a2000 ADDW $8192, R1, R2 // ec21200000d8 SUB R3, R4 // b9090043 SUB R3, R4, R5 // b9e93054 - SUB $8192, R3 // c238ffffe000 + SUB $8192, R3 // a73be000 SUB $8192, R3, R4 // ec43e00000d9 SUBC R1, R2 // b90b0021 - SUBC $1, R1, R2 // b9040021c22affffffff + SUBC $1, R1, R2 // ec21ffff00db SUBC R2, R3, R4 // b9eb2043 SUBW R3, R4 // 1b43 SUBW R3, R4, R5 // b9f93054 @@ -74,10 +76,10 @@ TEXT main·foo(SB),7,$16-0 // TEXT main.foo(SB), 7, $16-0 SUBW $8192, R1, R2 // 1821c22500002000 MULLW R6, R7 // b91c0076 MULLW R6, R7, R8 // b9040087b91c0086 - MULLW $8192, R6 // a76d2000 - MULLW $8192, R6, R7 // b9040076a77d2000 - MULLW $-65537, R8 // c280fffeffff - MULLW $-65537, R8, R9 // b9040098c290fffeffff + MULLW $8192, R6 // a76c2000 + MULLW $8192, R6, R7 // 1876a77c2000 + MULLW $-32769, R8 // c281ffff7fff + MULLW $-32769, R8, R9 // 1898c291ffff7fff MULLD $-2147483648, R1 // c21080000000 MULLD $-2147483648, R1, R2 // b9040021c22080000000 MULHD R9, R8 // b90400b8b98600a9ebb9003f000ab98000b8b90900abebb8003f000ab98000b9b9e9b08a |
