Support .asm files for assembly

Test: mmma -j external/libjpeg-turbo
Change-Id: Id192dae5d74ecbf500fc668931c37f9b91d25ca4
diff --git a/cc/config/toolchain.go b/cc/config/toolchain.go
index 020a0dd..995c8c6 100644
--- a/cc/config/toolchain.go
+++ b/cc/config/toolchain.go
@@ -66,6 +66,8 @@
 	ClangLdflags() string
 	ClangInstructionSetFlags(string) (string, error)
 
+	YasmFlags() string
+
 	Is64Bit() bool
 
 	ShlibSuffix() string
@@ -127,6 +129,10 @@
 	return ""
 }
 
+func (toolchainBase) YasmFlags() string {
+	return ""
+}
+
 func (toolchainBase) SanitizerRuntimeLibraryArch() string {
 	return ""
 }
diff --git a/cc/config/x86_64_device.go b/cc/config/x86_64_device.go
index 918ddf7..2a6fe2a 100644
--- a/cc/config/x86_64_device.go
+++ b/cc/config/x86_64_device.go
@@ -166,6 +166,9 @@
 	pctx.StaticVariable("X86_64ClangLdflags", strings.Join(ClangFilterUnknownCflags(x86_64Ldflags), " "))
 	pctx.StaticVariable("X86_64ClangCppflags", strings.Join(ClangFilterUnknownCflags(x86_64Cppflags), " "))
 
+	// Yasm flags
+	pctx.StaticVariable("X86_64YasmFlags", "-f elf64 -m amd64")
+
 	// Extended cflags
 
 	// Architecture variant cflags
@@ -245,6 +248,10 @@
 	return "${config.X86_64Ldflags}"
 }
 
+func (t *toolchainX86_64) YasmFlags() string {
+	return "${config.X86_64YasmFlags}"
+}
+
 func (toolchainX86_64) SanitizerRuntimeLibraryArch() string {
 	return "x86_64"
 }
diff --git a/cc/config/x86_device.go b/cc/config/x86_device.go
index 6b55564..23518b6 100644
--- a/cc/config/x86_device.go
+++ b/cc/config/x86_device.go
@@ -188,6 +188,9 @@
 	pctx.StaticVariable("X86ClangLdflags", strings.Join(ClangFilterUnknownCflags(x86Ldflags), " "))
 	pctx.StaticVariable("X86ClangCppflags", strings.Join(ClangFilterUnknownCflags(x86Cppflags), " "))
 
+	// Yasm flags
+	pctx.StaticVariable("X86YasmFlags", "-f elf32 -m x86")
+
 	// Extended cflags
 
 	// Architecture variant cflags
@@ -267,6 +270,10 @@
 	return "${config.X86Ldflags}"
 }
 
+func (t *toolchainX86) YasmFlags() string {
+	return "${config.X86YasmFlags}"
+}
+
 func (toolchainX86) SanitizerRuntimeLibraryArch() string {
 	return "i686"
 }