• Anthony Martin's avatar
    runtime: do not use memmove in the Plan 9 signal handler · 274a8e3f
    Anthony Martin authored
    Fixes a regression introduced in revision 4cb93e2900d0.
    
    That revision changed runtime·memmove to use SSE MOVOU
    instructions for sizes between 17 and 256 bytes. We were
    using memmove to save a copy of the note string during
    the note handler. The Plan 9 kernel does not allow the
    use of floating point in note handlers (which includes
    MOVOU since it touches the XMM registers).
    
    Arguably, runtime·memmove should not be using MOVOU when
    GO386=387 but that wouldn't help us on amd64. It's very
    important that we guard against any future changes so we
    use a simple copy loop instead.
    
    This change is extracted from CL 9796043 (since that CL
    is still being ironed out).
    
    R=rsc
    CC=golang-dev
    https://golang.org/cl/34640045
    274a8e3f
os_plan9_386.c 2.93 KB