Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: src/trusted/cpu_features/arch/x86/cpu_x86.c

Issue 11864002: Move CPU features into its own static library. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Another go at Windows x64, with help from Noel. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/trusted/cpu_features/arch/x86/cpu_x86.c
diff --git a/src/trusted/validator/x86/nacl_cpuid.c b/src/trusted/cpu_features/arch/x86/cpu_x86.c
similarity index 97%
rename from src/trusted/validator/x86/nacl_cpuid.c
rename to src/trusted/cpu_features/arch/x86/cpu_x86.c
index bcb83ffc9d2c427121d89e4b083353b761f92779..37f478ae887e64d97a9ae4d06f6c44dbdedab2c0 100644
--- a/src/trusted/validator/x86/nacl_cpuid.c
+++ b/src/trusted/cpu_features/arch/x86/cpu_x86.c
@@ -4,10 +4,10 @@
* found in the LICENSE file.
*/
-#include "native_client/src/trusted/validator/x86/nacl_cpuid.h"
+#include "native_client/src/trusted/cpu_features/arch/x86/cpu_x86.h"
/*
- * nacl_cpuid.c
+ * cpu_x86.c
* Retrieve and decode CPU model specific feature mask.
*/
#if NACL_WINDOWS
@@ -244,6 +244,7 @@ static const char NSC_CPUID0[kVendorIDLength] = "Geode by NSC";
#endif
static int asm_HasCPUID(void) {
+#if NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86
volatile int before, after, result;
#if NACL_BUILD_SUBARCH == 64
/* Note: If we are running in x86-64, then cpuid must be defined,
@@ -285,9 +286,13 @@ static int asm_HasCPUID(void) {
#endif
result = (before ^ after) & 0x0200000;
return result;
+#else /* NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 */
+ return 0;
+#endif
}
static void asm_CPUID(uint32_t op, volatile uint32_t reg[4]) {
+#if NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86
#if defined(__GNUC__)
#if NACL_BUILD_SUBARCH == 64
__asm__ volatile("push %%rbx \n\t" /* save %ebx */
@@ -310,6 +315,14 @@ static void asm_CPUID(uint32_t op, volatile uint32_t reg[4]) {
#else
# error Unsupported platform
#endif
+#else /* NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 */
+ UNREFERENCED_PARAMETER(op);
+ reg[0] = 0;
+ reg[1] = 0;
+ reg[2] = 0;
+ reg[3] = 0;
+ return;
+#endif
}
/*
@@ -331,6 +344,7 @@ static void asm_CPUID(uint32_t op, volatile uint32_t reg[4]) {
* __cpuidex for MSVC 2008 unconditionally.
*/
static void asm_CPUIDx(uint32_t op, volatile uint32_t reg[4], uint32_t ecx) {
+#if NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86
#if defined(__GNUC__)
#if NACL_BUILD_SUBARCH == 64
__asm__ volatile("push %%rbx \n\t" /* save %ebx */
@@ -365,6 +379,15 @@ static void asm_CPUIDx(uint32_t op, volatile uint32_t reg[4], uint32_t ecx) {
#else
# error Unsupported platform
#endif
+#else /* NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 */
+ UNREFERENCED_PARAMETER(op);
+ UNREFERENCED_PARAMETER(ecx);
+ reg[0] = 0;
+ reg[1] = 0;
+ reg[2] = 0;
+ reg[3] = 0;
+ return;
+#endif
}
static void CacheCPUVersionID(NaClCPUData* data) {

Powered by Google App Engine
This is Rietveld 408576698