xref: /aosp_15_r20/external/toolchain-utils/compiler_wrapper/x64_flags.go (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li// Copyright 2019 The ChromiumOS Authors
2*760c253cSXin Li// Use of this source code is governed by a BSD-style license that can be
3*760c253cSXin Li// found in the LICENSE file.
4*760c253cSXin Li
5*760c253cSXin Lipackage main
6*760c253cSXin Li
7*760c253cSXin Liimport (
8*760c253cSXin Li	"strings"
9*760c253cSXin Li)
10*760c253cSXin Li
11*760c253cSXin Lifunc processX86Flags(builder *commandBuilder) {
12*760c253cSXin Li	arch := builder.target.arch
13*760c253cSXin Li	if strings.HasPrefix(arch, "x86_64") || startswithI86(arch) {
14*760c253cSXin Li		builder.addPostUserArgs("-mno-movbe")
15*760c253cSXin Li	}
16*760c253cSXin Li}
17*760c253cSXin Li
18*760c253cSXin Li// Returns true if s starts with i.86.
19*760c253cSXin Lifunc startswithI86(s string) bool {
20*760c253cSXin Li	return len(s) >= 4 && s[0] == 'i' && s[2:4] == "86"
21*760c253cSXin Li}
22