diff --git a/libs.mk b/libs.mk
index 45cf9bf..4beaa50 100644
--- a/libs.mk
+++ b/libs.mk
@@ -91,6 +91,7 @@
 CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/emms.asm
 CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/x86.h
 CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/x86_abi_support.asm
+CODEC_SRCS-$(BUILD_LIBVPX) += vpx_ports/x86_cpuid.c
 endif
 CODEC_SRCS-$(ARCH_ARM) += $(BUILD_PFX)vpx_config.asm
 CODEC_EXPORTS-$(BUILD_LIBVPX) += vpx/exports_com
diff --git a/vpx_ports/x86.h b/vpx_ports/x86.h
index 05a4591..feffc3e 100644
--- a/vpx_ports/x86.h
+++ b/vpx_ports/x86.h
@@ -14,6 +14,26 @@
 #include <stdlib.h>
 #include "config.h"
 
+typedef enum
+{
+    VPX_CPU_UNKNOWN = -1,
+    VPX_CPU_AMD,
+    VPX_CPU_AMD_OLD,
+    VPX_CPU_CENTAUR,
+    VPX_CPU_CYRIX,
+    VPX_CPU_INTEL,
+    VPX_CPU_NEXGEN,
+    VPX_CPU_NSC,
+    VPX_CPU_RISE,
+    VPX_CPU_SIS,
+    VPX_CPU_TRANSMETA,
+    VPX_CPU_TRANSMETA_OLD,
+    VPX_CPU_UMC,
+    VPX_CPU_VIA,
+
+    VPX_CPU_LAST
+}  vpx_cpu_t;
+
 #if defined(__GNUC__) && __GNUC__
 #if ARCH_X86_64
 #define cpuid(func,ax,bx,cx,dx)\
@@ -100,6 +120,7 @@
     return flags & mask;
 }
 
+vpx_cpu_t vpx_x86_vendor(void);
 
 #if ARCH_X86_64 && defined(_MSC_VER)
 unsigned __int64 __rdtsc(void);
diff --git a/vpx_ports/x86_cpuid.c b/vpx_ports/x86_cpuid.c
new file mode 100644
index 0000000..ce64033
--- /dev/null
+++ b/vpx_ports/x86_cpuid.c
@@ -0,0 +1,53 @@
+/*
+ *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include <string.h>
+#include "x86.h"
+
+struct cpuid_vendors
+{
+    char vendor_string[12];
+    vpx_cpu_t vendor_id;
+};
+
+static struct cpuid_vendors cpuid_vendor_list[VPX_CPU_LAST] =
+{
+    { "AuthenticAMD", VPX_CPU_AMD           },
+    { "AMDisbetter!", VPX_CPU_AMD_OLD       },
+    { "CentaurHauls", VPX_CPU_CENTAUR       },
+    { "CyrixInstead", VPX_CPU_CYRIX         },
+    { "GenuineIntel", VPX_CPU_INTEL         },
+    { "NexGenDriven", VPX_CPU_NEXGEN        },
+    { "Geode by NSC", VPX_CPU_NSC           },
+    { "RiseRiseRise", VPX_CPU_RISE          },
+    { "SiS SiS SiS ", VPX_CPU_SIS           },
+    { "GenuineTMx86", VPX_CPU_TRANSMETA     },
+    { "TransmetaCPU", VPX_CPU_TRANSMETA_OLD },
+    { "UMC UMC UMC ", VPX_CPU_UMC           },
+    { "VIA VIA VIA ", VPX_CPU_VIA           },
+};
+
+vpx_cpu_t vpx_x86_vendor(void)
+{
+    unsigned int reg_eax;
+    unsigned int vs[3];
+    int i;
+
+    /* Get the Vendor String from the CPU */
+    cpuid(0, reg_eax, vs[0], vs[2], vs[1]);
+
+    for (i = 0; i < VPX_CPU_LAST; i++)
+    {
+        if (strncmp ((const char *)vs, cpuid_vendor_list[i].vendor_string, 12) == 0)
+           return (cpuid_vendor_list[i].vendor_id);
+    }
+
+    return VPX_CPU_UNKNOWN;
+}
