aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/internal/atomic
diff options
context:
space:
mode:
authorMichael Munday <munday@ca.ibm.com>2016-10-23 16:11:13 -0400
committerMichael Munday <munday@ca.ibm.com>2016-10-25 12:36:06 +0000
commit3ef07c412f068144554648c0d209bef444a2ee27 (patch)
treeb277c5769249e71e75b3e9bb902c87f81f8d88ca /src/runtime/internal/atomic
parent517a44d57e6a0834e98b763045fab9be8f4673d0 (diff)
downloadgo-3ef07c412f068144554648c0d209bef444a2ee27.tar.xz
cmd, runtime: remove s390x 3 operand immediate logical ops
These are emulated by the assembler and we don't need them. Change-Id: I2b07c5315a5b642fdb5e50b468453260ae121164 Reviewed-on: https://go-review.googlesource.com/31758 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/runtime/internal/atomic')
-rw-r--r--src/runtime/internal/atomic/asm_s390x.s6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/runtime/internal/atomic/asm_s390x.s b/src/runtime/internal/atomic/asm_s390x.s
index c84718cb8f..4884d1c620 100644
--- a/src/runtime/internal/atomic/asm_s390x.s
+++ b/src/runtime/internal/atomic/asm_s390x.s
@@ -141,7 +141,8 @@ TEXT ·Or8(SB), NOSPLIT, $0-9
MOVD ptr+0(FP), R3
MOVBZ val+8(FP), R4
// Calculate shift.
- AND $3, R3, R5
+ MOVD R3, R5
+ AND $3, R5
XOR $3, R5 // big endian - flip direction
SLD $3, R5 // MUL $8, R5
SLD R5, R4
@@ -159,7 +160,8 @@ TEXT ·And8(SB), NOSPLIT, $0-9
MOVD ptr+0(FP), R3
MOVBZ val+8(FP), R4
// Calculate shift.
- AND $3, R3, R5
+ MOVD R3, R5
+ AND $3, R5
XOR $3, R5 // big endian - flip direction
SLD $3, R5 // MUL $8, R5
OR $-256, R4 // create 0xffffffffffffffxx