• Keith Randall's avatar
    cmd/compile: don't eliminate all registers when restricting to desired ones · 8a317ebc
    Keith Randall authored
    We shouldn't mask to desired registers if we haven't masked out all the
    forbidden registers yet.  In this path we haven't masked out the nospill
    registers yet. If the resulting mask contains only nospill registers, then
    allocReg fails.
    
    This can only happen on resultNotInArgs-marked instructions, which exist
    only on the ARM64, MIPS, MIPS64, and PPC64 ports.
    
    Maybe there's a better way to handle resultNotInArgs instructions.
    But for 1.13, this is a low-risk fix.
    
    Fixes #33355
    
    Change-Id: I1082f78f798d1371bde65c58cc265540480e4fa4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/188178
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    8a317ebc
issue33355.go 2.53 KB