• Michael Munday's avatar
    cmd/{asm,compile}: avoid zeroAuto clobbering flags on s390x · 35cf3843
    Michael Munday authored
    This CL modifies how MOV[DWHB] instructions that store a constant to
    memory are assembled to avoid them clobbering the condition code
    (flags). It also modifies zeroAuto to use MOVD instructions instead of
    CLEAR (which is assembled as XC).
    
    MOV[DWHB]storeconst ops also no longer clobbers flags.
    
    Note: this CL modifies the assembler so that it can no longer handle
    immediates outside the range of an int16 or offsets from SB, which
    reflects what the machine instructions support. The compiler doesn't
    need this capability any more and I don't think this affects any existing
    assembly, but it is easy to workaround if it does.
    
    Fixes #20187.
    
    Change-Id: Ie54947ff38367bd6a19962bf1a6d0296a4accffb
    Reviewed-on: https://go-review.googlesource.com/42179Reviewed-by: 's avatarDavid Chase <drchase@google.com>
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    35cf3843
ggen.go 3.01 KB