We dont actually need vzeroupper at start of function

GCC emits vzeroupper automatically when compiling with native
optimizations but we still need it otherwise
This commit is contained in:
Kovid Goyal 2024-02-12 13:11:10 +05:30
parent 16d36c46fe
commit a7c06b38e6
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 0 additions and 5 deletions

View file

@ -297,7 +297,6 @@ FUNC(zero_last_n_bytes)(integer_t vec, const integer_t index, char n) {
}
#define find_match(haystack, sz, get_test_vec) { \
/* zero_upper(); this is disabled as some buggy compilers re-order instructions causing the test result vec to be zero after the test */\
const uint8_t* limit = haystack + sz; \
integer_t chunk; int n; \
\

View file

@ -1153,10 +1153,6 @@ 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")
}
has_trailing_return := false
for _, i := range s.Instructions {
if len(i) == 0 {