Overview
Comment: | OFSystemInfo.h: Use OF_X86 rather than OF_X86_ASM
The availability of the interface should not depend on whether inline In case no inline assembly is available, false is returned for |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
952af5f0aae13d43c777fda5259af278 |
User & Date: | js on 2015-10-24 20:53:32 |
Other Links: | manifest | tags |
Context
2015-11-02
| ||
13:53 | OFHTTP{Client,Server}: Concatenate repeated fields check-in: b73d25b8c6 user: js tags: trunk | |
2015-10-24
| ||
20:53 | OFSystemInfo.h: Use OF_X86 rather than OF_X86_ASM check-in: 952af5f0aa user: js tags: trunk | |
2015-10-19
| ||
22:15 | Add platform.h & make platform defines consistent check-in: 1ba08eebc5 user: js tags: trunk | |
Changes
Modified src/OFSystemInfo.h from [b1b706eed5] to [cb7463de6c].
︙ | ︙ | |||
82 83 84 85 86 87 88 | * * If the vendor could not be determined, nil is returned instead. * * @return The vendor of the CPU */ + (nullable OFString*)CPUVendor; | | | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | * * If the vendor could not be determined, nil is returned instead. * * @return The vendor of the CPU */ + (nullable OFString*)CPUVendor; #if defined(OF_X86_64) || defined(OF_X86) || defined(DOXYGEN) /*! * @brief Returns whether the CPU supports MMX. * * @note This method is only available on x86 and x86_64. * * @return Whether the CPU supports MMX */ |
︙ | ︙ |
Modified src/OFSystemInfo.m from [016d812c99] to [db62f84bfb].
︙ | ︙ | |||
43 44 45 46 47 48 49 | #ifdef OF_HAIKU # include <FindDirectory.h> #endif #ifdef OF_QNX # include <sys/syspage.h> #endif | | | > < < < | < < < < < > > > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #ifdef OF_HAIKU # include <FindDirectory.h> #endif #ifdef OF_QNX # include <sys/syspage.h> #endif #if defined(OF_X86_64) || defined(OF_X86) struct x86_regs { uint32_t eax, ebx, ecx, edx; }; #endif static size_t pageSize; static size_t numberOfCPUs; #if defined(OF_X86_64) || defined(OF_X86) static OF_INLINE struct x86_regs OF_CONST_FUNC x86_cpuid(uint32_t eax, uint32_t ecx) { struct x86_regs regs; # if defined(OF_X86_64_ASM) __asm__( "cpuid" : "=a"(regs.eax), "=b"(regs.ebx), "=c"(regs.ecx), "=d"(regs.edx) : "a"(eax), "c"(ecx) ); # elif deifned(OF_X86_ASM) /* * This workaround is required by GCC when using -fPIC, as ebx is a * special register in PIC code. Yes, GCC is indeed not able to just * push a register onto the stack before the __asm__ block and to pop * it afterwards. */ __asm__( "pushl %%ebx\n\t" "cpuid\n\t" "movl %%ebx, %1\n\t" "popl %%ebx" : "=a"(regs.eax), "=r"(regs.ebx), "=c"(regs.ecx), "=d"(regs.edx) : "a"(eax), "c"(ecx) ); # else memset(®s, 0, sizeof(regs)); # endif return regs; } #endif @implementation OFSystemInfo + (void)initialize |
︙ | ︙ | |||
321 322 323 324 325 326 327 | encoding: OF_STRING_ENCODING_ASCII length: 12]; #else return nil; #endif } | | | 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | encoding: OF_STRING_ENCODING_ASCII length: 12]; #else return nil; #endif } #if defined(OF_X86_64) || defined(OF_X86) + (bool)supportsMMX { return (x86_cpuid(1, 0).edx & (1 << 23)); } + (bool)supportsSSE { |
︙ | ︙ |
Modified src/resolver.m from [b2c14c203d] to [1cedbc2973].
︙ | ︙ | |||
19 20 21 22 23 24 25 | #define _WIN32_WINNT 0x0501 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> | < > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #define _WIN32_WINNT 0x0501 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> #import "resolver.h" #import "macros.h" #if !defined(HAVE_THREADSAFE_GETADDRINFO) && defined(OF_HAVE_THREADS) # include "threading.h" #endif #import "OFAddressTranslationFailedException.h" #import "OFInitializationFailedException.h" |
︙ | ︙ |