From 5a5e31c38b97dc76e3683727ff8106e79da73c76 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 2 Feb 2024 05:58:54 +0530 Subject: [PATCH] Also zero upper at start of function --- tools/simdstring/generate.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/simdstring/generate.go b/tools/simdstring/generate.go index 07e4f96b7..fdbd2bf80 100644 --- a/tools/simdstring/generate.go +++ b/tools/simdstring/generate.go @@ -1048,6 +1048,10 @@ func (s *Function) OutputASM(w io.Writer) { s.print_signature(w) fmt.Fprintf(w, "\nTEXT ยท%s(SB), NOSPLIT, $0-%d\n", s.Name, s.Size) + if s.Used256BitReg { + fmt.Fprintln(w, "\tVZEROUPPER // zero upper bits of AVX registers to avoid dependencies when switching between SSE and AVX code") + } + s.Return() for _, i := range s.Instructions { fmt.Fprintln(w, i)