diff --git a/libcpuid/Makefile.am b/libcpuid/Makefile.am
index fc789c3..43f142a 100644
--- a/libcpuid/Makefile.am
+++ b/libcpuid/Makefile.am
@@ -15,6 +15,7 @@ libcpuid_la_SOURCES = \
rdtsc.c \
asm-bits.c \
libcpuid_util.c \
+ rdcpuid.c \
rdmsr.c
if WINDOWS
@@ -35,6 +36,7 @@ noinst_HEADERS = \
asm-bits.h \
centaur_code_t.h \
intel_code_t.h \
+ libcpuid_arm_driver.h \
libcpuid_ctype.h \
libcpuid_internal.h \
libcpuid_util.h \
@@ -42,6 +44,7 @@ noinst_HEADERS = \
recog_arm.h \
recog_centaur.h \
recog_intel.h \
+ rdcpuid.h \
rdtsc.h
EXTRA_DIST += libcpuid.sym libcpuid_vc71.vcproj libcpuid_vc10.vcxproj libcpuid_vc10.vcxproj.filters
diff --git a/libcpuid/Makefile.x64 b/libcpuid/Makefile.x64
index 2ce5eb7..3aa6f1e 100644
--- a/libcpuid/Makefile.x64
+++ b/libcpuid/Makefile.x64
@@ -6,7 +6,7 @@ ASM = ml64 /nologo
CC = cl.exe /nologo /TC
OPTFLAGS = /MT
DEFINES = /D "VERSION=\"0.6.5\""
-OBJECTS = masm-x64.obj asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_arm.obj recog_centaur.obj recog_intel.obj rdtsc.obj
+OBJECTS = masm-x64.obj asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_arm.obj recog_centaur.obj recog_intel.obj rdcpuid.obj rdtsc.obj
libcpuid.lib: $(OBJECTS)
lib /nologo /MACHINE:AMD64 /out:libcpuid.lib $(OBJECTS) bufferoverflowU.lib
@@ -35,6 +35,9 @@ recog_centaur.obj: recog_centaur.c
recog_intel.obj: recog_intel.c
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
+rdcpuid.obj: rdcpuid.c
+ $(CC) $(OPTFLAGS) $(DEFINES) /c rdcpuid.c
+
rdtsc.obj: rdtsc.c
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
diff --git a/libcpuid/Makefile.x86 b/libcpuid/Makefile.x86
index 63eb980..d59fe23 100644
--- a/libcpuid/Makefile.x86
+++ b/libcpuid/Makefile.x86
@@ -13,7 +13,7 @@ all: libcpuid.lib
CC = cl.exe /nologo /TC
OPTFLAGS = /MT
DEFINES = /D "VERSION=\"0.6.5\""
-OBJECTS = asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_arm.obj recog_centaur.obj recog_intel.obj rdtsc.obj
+OBJECTS = asm-bits.obj cpuid_main.obj libcpuid_util.obj recog_amd.obj recog_arm.obj recog_centaur.obj recog_intel.obj rdcpuid.obj rdtsc.obj
libcpuid.lib: $(OBJECTS)
lib /nologo /out:libcpuid.lib $(OBJECTS)
@@ -39,6 +39,9 @@ recog_centaur.obj: recog_centaur.c
recog_intel.obj: recog_intel.c
$(CC) $(OPTFLAGS) $(DEFINES) /c recog_intel.c
+rdcpuid.obj: rdcpuid.c
+ $(CC) $(OPTFLAGS) $(DEFINES) /c rdcpuid.c
+
rdtsc.obj: rdtsc.c
$(CC) $(OPTFLAGS) $(DEFINES) /c rdtsc.c
diff --git a/libcpuid/libcpuid.dsp b/libcpuid/libcpuid.dsp
index 3f1fedc..add44a9 100644
--- a/libcpuid/libcpuid.dsp
+++ b/libcpuid/libcpuid.dsp
@@ -101,6 +101,10 @@ SOURCE=.\msrdriver.c
# End Source File
# Begin Source File
+SOURCE=.\rdcpuid.c
+# End Source File
+# Begin Source File
+
SOURCE=.\rdmsr.c
# End Source File
# Begin Source File
@@ -137,10 +141,22 @@ SOURCE=.\libcpuid.h
# End Source File
# Begin Source File
+SOURCE=.\libcpuid_arm_driver.h
+# End Source File
+# Begin Source File
+
SOURCE=.\libcpuid_constants.h
# End Source File
# Begin Source File
+SOURCE=.\libcpuid_ctype.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\libcpuid_internal.h
+# End Source File
+# Begin Source File
+
SOURCE=.\libcpuid_types.h
# End Source File
# Begin Source File
@@ -149,6 +165,10 @@ SOURCE=.\libcpuid_util.h
# End Source File
# Begin Source File
+SOURCE=.\rdcpuid.h
+# End Source File
+# Begin Source File
+
SOURCE=.\rdtsc.h
# End Source File
# Begin Source File
diff --git a/libcpuid/libcpuid_vc10.vcxproj b/libcpuid/libcpuid_vc10.vcxproj
index 8b18ed7..df54914 100644
--- a/libcpuid/libcpuid_vc10.vcxproj
+++ b/libcpuid/libcpuid_vc10.vcxproj
@@ -187,6 +187,7 @@
+
@@ -197,13 +198,17 @@
+
+
+
+
diff --git a/libcpuid/libcpuid_vc10.vcxproj.filters b/libcpuid/libcpuid_vc10.vcxproj.filters
index 831c159..d183a79 100644
--- a/libcpuid/libcpuid_vc10.vcxproj.filters
+++ b/libcpuid/libcpuid_vc10.vcxproj.filters
@@ -42,6 +42,9 @@
Source Files
+
+ Source Files
+
Source Files
@@ -53,9 +56,18 @@
Header Files
+
+ Header Files
+
Header Files
+
+ Header Files
+
+
+ Header Files
+
Header Files
@@ -74,6 +86,9 @@
Header Files
+
+ Header Files
+
Header Files
diff --git a/libcpuid/libcpuid_vc71.vcproj b/libcpuid/libcpuid_vc71.vcproj
index c2fb0b3..e9cad0d 100644
--- a/libcpuid/libcpuid_vc71.vcproj
+++ b/libcpuid/libcpuid_vc71.vcproj
@@ -161,6 +161,9 @@
+
+
@@ -199,6 +202,9 @@
+
+
@@ -214,6 +220,9 @@
+
+