Commit abd1dde1 authored by Keith Randall's avatar Keith Randall Committed by Keith Randall

cmd/compile: fix no-op instruction used by s390x

CL 152537 introduced a new use for ginsnop, the arch-dependent
routine that generates nops. The previous s390x nop clobbered flags.
It turns out the previous uses of this nop did not require flags
to be preserved, but the new use does.

Use a real nop: the 4-byte preferred nop.

Fixes #29453

Change-Id: I95310dfdd831932e26f5d5b6608324687f4c3162
Reviewed-on: https://go-review.googlesource.com/c/155926Reviewed-by: 's avatarMichael Munday <mike.munday@ibm.com>
parent 0175064e
......@@ -105,10 +105,8 @@ func zeroAuto(pp *gc.Progs, n *gc.Node) {
}
func ginsnop(pp *gc.Progs) *obj.Prog {
p := pp.Prog(s390x.AOR)
p.From.Type = obj.TYPE_REG
p.From.Reg = int16(s390x.REG_R0)
p.To.Type = obj.TYPE_REG
p.To.Reg = int16(s390x.REG_R0)
p := pp.Prog(s390x.AWORD)
p.From.Type = obj.TYPE_CONST
p.From.Offset = 0x47000000 // nop 0
return p
}
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