kc3-lang/SDL/src/cpuinfo

Branch :


Log

Author Commit Date CI Message
02daab87 2021-07-29 18:09:38 Fix pointer provenance in SDL_SIMDRealloc This is needed to support CHERI, and thus Arm's experimental Morello prototype, where pointers are implemented using unforgeable capabilities that include bounds and permissions metadata to provide fine-grained spatial and referential memory safety, as well as revocation by sweeping memory to provide heap temporal memory safety. The C standard does not guarantee that if two pointers compare equal they are the same pointer, as C pointers have a notion of provenance, and compilers have been known to exploit this during optimisation. For CHERI, this becomes even more important, as in-place expansion can result in realloc returning a capability to the same address but with increased capability bounds, and so reusing the old capability will trap trying to access outside the bounds of the original allocation. In the case that ptr == mem, memdiff and ptrdiff should still be equal, so the only overhead is a small amount of pointer arithmetic and a store of the new pointer (which is required per the C standard in order to not be undefined behaviour when next loaded). This also fixes the calculation of oldmem to use uintptr_t rather than size_t as casting the pointer to size_t on CHERI will strip the capability metadata, including the validity tag, with the subsequent cast back to void * resulting in a null-derived capability whose validity tag is clear and thus cannot be dereferenced without trapping.
656eb7df 2021-06-23 14:35:36 Vite: return system installed memory
2d64e37e 2020-11-02 18:09:43 Initial rebase of xerpi's port
c1c4f274 2021-03-04 18:27:32 cpuinfo: updated xgetbv call for windows clang-cl. from a patchset by Vladislav Dmitrievich Turbanov: https://github.com/libsdl-org/SDL/pull/4062
61586216 2021-03-02 21:39:38 Update cpuid code for clang-cl The clang-cl compiler defines `__llvm__` but not `__GNUC__`. The `__cpuid` intrinsic doesn't seem to exist with clang-cl, so the code won't link properly. The `__GNUC__` versions of these functions will work properly on Windows with clang-cl.
e561ce3a 2021-02-25 01:40:02 SDL_cpuinfo.c: replaced gcc i386 checks with __i386__ .
98bf79cf 2021-02-16 18:13:15 Minor improvements for CPU detection on ARM
9130f7c3 2021-01-02 10:25:38 Updated copyright for 2021
67f0b9b8 2020-12-28 20:58:47 Fixed bug 5418 - Add system features detection for Elbrus (E2K) Ivan Kuzmenko MCST Elbrus 2000 (E2K, https://en.wikipedia.org/wiki/Elbrus_2000) is a russian processor architecture based on VLIW/EPIC instruction set (like Intel Itanium (IA-64) architecture). Architecture has half native / half software support of most Intel/AMD SIMD (e.g. MMX/SSE/SSE2/SSE3/SSSE3/SSE4.1/SSE4.2/AES/AVX/AVX2 & 3DNow!/SSE4a/XOP/FMA4). It also has built-in x86/x86_64 <-> e2k binary translators (RTC, http://www.mcst.ru/rtc and Lintel, http://www.mcst.ru/lintel) that can run code for x86/x86_64 architecture (Transmeta did something similiar with their Crusoe series) with SIMD extensions support. Attached patch allows SDL2 to detect extensions supported by E2K like MMX, 3dNOW!, AVX etc. (test/testplatform log: https://termbin.com/7qs3).
ee180efd 2020-12-20 12:08:49 Fixed bug 5406 - Upstreaming DragonFlyBSD changes from DeltaPorts (patch from David Carlier)
e91153f2 2020-12-20 03:03:21 fix non-ARM h/w on FreeBSD builds (bug #5405, patch from David Carlier.)
6bd4c717 2020-12-17 21:41:23 Fixed bug 5402 - ARM support little update proposal David Carlier No fix but mostly an update for ARM architecture.
02de8200 2020-11-09 20:36:35 Add Zhaoxin processor support CPU Vendor ID "Shanghai" and "CentaurHauls" belongs to Zhaoxin. Background: Shanghai Zhaoxin Semiconductor Co., Ltd ("Zhaoxin") , established in 2013, headquartered in Zhangjiang, Shanghai, China. Zhaoxin aims at providing general-purpose x86 processors. Related Zhaoxin Linux Kernel patch can be found at https://lore.kernel.org/lkml/01042674b2f741b2aed1f797359bdffb@zhaoxin.com Best regards.
34a82fca 2020-10-10 20:50:02 SDL_cpuinfo.c (OS2): undefine HAVE_SYSCTLBYNAME
4d1c2a18 2020-09-07 19:00:21 Fix false compiler warning: initialize the variable 'memdiff'
49ec6558 2020-07-11 08:10:02 fix bug #5228 -- Add AltiVec detection for FreeBSD. thanks Piotr Kubaj.
c2b85305 2020-06-23 10:09:29 Fixed bug 5209 - cpuinfo recognize OpenBSD ARM Brad Smith OpenBSD/arm only supports ARMv7 and and not any CPUs that do not support NEON.
2aa8974f 2020-06-11 12:03:33 Add SDL_SIMDRealloc
582f5706 2020-02-04 16:46:22 Improved CPU detection on ARM platforms
a8780c6a 2020-01-16 20:49:25 Updated copyright date for 2020
196f6998 2020-01-11 22:03:06 Fixed NEON detection on arm64 CPUs This probably breaks RISCOS, but we need a better fix from Cameron Cawley for this
78ce18f5 2020-01-06 20:26:52 riscos: Add CPU feature detection
df728f85 2019-11-18 10:48:14 Fixed unused function warning on Android
2dab79bc 2019-11-16 22:55:36 Fix crash when detecting SIMD
a63e93a1 2019-11-13 15:46:58 Supported Android and Apple hardware has ARM SIMD capability
463bf5c2 2019-10-27 14:52:09 Android: fix compilation error of SDL_cpuinfo.c on android-r13b (bug 4365)
6dffc5d4 2019-10-25 00:07:30 cpuinfo: Remove incorrect #warning when building for non-ARM architectures.
6a6a0528 2019-10-24 21:12:08 ARM: Create configure option --enable-arm-simd to govern assembly optimizations
9ececeea 2019-10-20 22:17:59 cpuinfo: Use a better default alignment value (thanks, Simon!). Fixes Bugzilla #4835.
8728ce44 2019-06-08 14:54:37 Fixed bug 4557 - SDL_SIMDAlloc and *Free should be in the public interface Martin Gerhardy These functions are really useful and should get exposed imo.
abd1dd66 2019-05-15 19:54:36 Add Hygon Dhyana processor support Background: Chengdu Haiguang IC Design Co., Ltd (Hygon) is a Joint Venture between AMD and Haiguang Information Technology Co.,Ltd., aims at providing high performance x86 processor for China server market. Its first generation processor codename is Dhyana, which originates from AMD technology and shares most of the architecture with AMD's family 17h, but with different CPU Vendor ID("HygonGenuine")/Family series number(Family 18h). Related Hygon kernel patch can be found on: http://lkml.kernel.org/r/5ce86123a7b9dad925ac583d88d2f921040e859b.1538583282.git.puwen@hygon.cn Best regards.
b2e76d86 2019-03-19 16:52:09 Fixed Windows RT build
5e13087b 2019-01-04 22:01:14 Updated copyright for 2019
09b46204 2018-12-04 16:50:31 Windows: NEON detection and intrinsic includes on Visual Studio Visual Studio doesn't define __ARM_ARCH nor _ARM_NEON, but _M_ARM and _M_ARM64, so SDL_HasNEON() was bypassed. PF_ARM_NEON_INSTRUCTIONS_AVAILABLE doesn't see to be defined (but still works when defined as 19).
3323b355 2018-12-01 12:19:11 android: use cpufeatures to support SDL_HasNEON() (thanks, Sylvain!). Fixes Bugzilla #4406.
7df0f4fd 2018-09-27 14:56:29 Fixed bug 4277 - warnings patch Sylvain Patch a few warnings when using: -Wmissing-prototypes -Wdocumentation -Wdocumentation-unknown-command They are automatically enabled with -Wall
4df859c5 2018-05-21 11:35:42 cpuinfo: Added SDL_HasAVX512F(). This checks for the "foundation" AVX-512 instructions (that all AVX-512 compatible CPUs support).
8543ad7d 2018-05-21 11:34:57 cpuinfo: Added some internal SIMD-aligned allocation functions. Fixes Bugzilla #4150 (sort of).
4718791f 2018-05-14 00:03:39 cpuinfo: Make CPU flags easier to read and add to.
e3cc5b2c 2018-01-03 10:03:25 Updated copyright for 2018
20364769 2017-11-11 17:21:47 Fixed typo in comment
b821ded9 2017-08-21 13:00:40 SDL_cpuinfo.c: add os/2 support to SDL_GetCPUCount() and SDL_GetSystemRAM().
adecda50 2017-08-16 21:31:03 cpuinfo: Add SDL_HasNEON() support for ARM-based QNX.
c1802ef6 2017-03-06 21:25:06 Fixed compile error with gcc -std=c99
ca0bf151 2017-03-03 16:38:17 Fix some more compiler warnings on armcc.
45b774e3 2017-01-01 18:33:28 Updated copyright for 2017
a949882a 2016-11-21 20:35:59 cpuinfo: fix SDL_HasNEON() on older iOS devices, fixed C++ comment.
32cb3494 2016-11-17 17:03:43 cpuinfo: patched to compile for getauxval() path.
0b33a118 2016-11-17 16:10:32 cpuinfo: more patching for Android. Legacy platform targets are a pain.
a298e563 2016-11-17 16:04:00 cpuinfo: Patched to compile on Android, Linux.
e8f4b7c4 2016-11-17 16:01:59 cpuinfo: patched to compile. Nothing quite like experimentation via Buildbot! :/
74eb78dc 2016-11-17 15:57:58 cpuinfo: more work on SDL_HasNEON().
db97c3d3 2016-11-17 01:41:56 cpuinfo: silence compiler warnings on non-Intel CPU architectures.
66a36d56 2016-11-17 01:34:18 cpuinfo: disable NEON detection on Android for now. Will fix this properly soon.
5c6b2ebf 2016-11-17 01:26:56 cpuinfo: more robust ARM preprocessor checks.
35430a73 2016-11-17 01:15:16 cpuinfo: first attempt at SDL_HasNEON() implementation.
7592b40b 2016-11-16 22:49:04 cpuinfo: Removed code duplication, cached CPUID details.
42065e78 2016-01-02 10:10:34 Updated copyright to 2016
696cd797 2015-12-29 02:32:47 NetBSD: fixed issues with cpuinfo and pthread_setname_np (thanks, Thomas!). Fixes Bugzilla #3176.
0e45984f 2015-06-21 17:33:46 Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
2c4a6ea0 2015-05-26 06:27:46 Updated the copyright year to 2015
b72938c8 2015-04-20 12:22:44 Windows: Always set the system timer resolution to 1ms by default. An existing hint lets apps that don't need the timer resolution changed avoid this, to save battery, etc, but this fixes several problems in timing, audio callbacks not firing fast enough, etc. Fixes Bugzilla #2944.
fe6c797c 2015-04-10 23:30:31 Fixed an iOS view orientation issue when SDL_GL_CreateContext or SDL_CreateRenderer is called.
b88ca1b4 2015-02-10 16:28:56 the last parameter of XChangeProperty is the number of elements.. and when the element format is 32.. the element is "long" so we have 5 long elements here. Yes this seems confusing as on mac+linux Long is either 32 or 64bits depending on the architecture, but this is how the X11 protocol is defined. Thus 5 is the correct value for the nelts here. Not 5 or 10 depending on the architecture. More info on the confusion https://bugs.freedesktop.org/show_bug.cgi?id=16802
b48e54aa 2015-01-26 22:00:29 Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
16f3cbfc 2014-12-26 23:16:54 Cleaned up some compiler warnings.
fe40a172 2014-12-18 00:19:52 Initial merge of Emscripten port! With this commit, you can compile SDL2 with Emscripten ( http://emscripten.org/ ), and make your SDL-based C/C++ program into a web app. This port was due to the efforts of several people, including: Charlie Birks, Sathyanarayanan Gunasekaran, Jukka Jyl?nki, Alon Zakai, Edward Rudd, Bruce Mitchener, and Martin Gerhardy. (Thanks, everyone!)
70438be2 2014-12-03 10:55:23 WinRT: fixed bug whereby SDL would override an app's default orientation WinRT apps can set a default, preferred orientation via a .appxmanifest file. SDL was overriding this on app startup, and making the app use all possible orientations (landscape and portrait). Thanks to Eric Wing for the heads up on this!
9c398852 2014-11-22 22:20:40 Corrected header file documentation comment.
24c86b55 2014-09-11 19:24:42 [X11] Reconcile logical keyboard state with physical state on FocusIn since the window system doesn't do it for us like other platforms. This prevents sticky keys and missed keys when going in and out of focus, for example Alt would appear to stick if switching away from an SDL app with Alt-Tab and had to be pressed again. CR: Sam
ff5caa17 2014-08-10 22:21:21 WinRT build fix for ARM platforms The _xgetbv intrinsic was being used in ARM builds of SDL/WinRT, which was leading to linker errors. This commit limits _xgetbv use to the platforms on which it is available, x86 and x64.
454c4a01 2014-07-11 22:15:34 Fixed Visual Studio 2010 build
6a1011ae 2014-07-11 22:14:14 Fixed build for arm platforms
eb1c6044 2014-07-11 22:02:50 Fixed bug in AVX detection and added AVX2 detection
3dcb451f 2014-04-09 21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
546cb890 2014-03-19 16:55:38 Static analysis fix: Value stored to '[bcd]' is never read.
9cd5f5ce 2014-02-22 19:10:45 Fixed bug 2404 - CPU detection not working with MSVC on x64 Tiemo Jung All CPU detection functions SDL_Has* will return false, even if it is supported by the CPU, if SDL is compiled with MSVC and the target is x64. The reason for this is that 'CPU_haveCPUID' will return 0 and macro 'cpuid' in SDL_cpuinfo.c is the fallback implementation, which sets all params to zero. It is safe to assume that cpuid is supported on a CPU that runs windows x64, so CPU_haveCPUID can just return 1, and the empty macro can be replaced with a small wrap around the __cpuid intrinsic.
fea87cc9 2014-02-22 18:01:18 Fixed bug 2335 - Fails to build on Debian GNU/kFreeBSD Felix Geyer Starting from version 2.0.1 libsdl fails to build on Debian GNU/kFreeBSD in SDL_cpuinfo.c. GNU/kFreeBSD defines __FreeBSD_kernel__ but not __FreeBSD__. The #ifdef __FreeBSD__ check should be extended for __FreeBSD_kernel__, see the attached patch. Build log: libtool: compile: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -DUSING_GENERATED_CONFIG_H -Iinclude -I/?BUILDDIR?/libsdl2-2.0.1+dfsg1/include -mmmx -m3dnow -msse -msse2 -fvisibility=hidden -D_REENTRANT -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-kfreebsd-gnu/dbus-1.0/include -DHAVE_USBHID_H -DUSBHID_NEW -D_REENTRANT -Wall -c /?BUILDDIR?/libsdl2-2.0.1+dfsg1/src/cpuinfo/SDL_cpuinfo.c -fPIC -DPIC -o build/.libs/SDL_cpuinfo.o /?BUILDDIR?/libsdl2-2.0.1+dfsg1/src/cpuinfo/SDL_cpuinfo.c: In function 'SDL_GetSystemRAM': /?BUILDDIR?/libsdl2-2.0.1+dfsg1/src/cpuinfo/SDL_cpuinfo.c:632:35: error: 'HW_MEMSIZE' undeclared (first use in this function) int mib[2] = {CTL_HW, HW_MEMSIZE}; ^ /?BUILDDIR?/libsdl2-2.0.1+dfsg1/src/cpuinfo/SDL_cpuinfo.c:632:35: note: each undeclared identifier is reported only once for each function it appears in make[2]: *** [build/SDL_cpuinfo.lo] Error 1
58edac3e 2014-02-02 00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
3bd0e900 2014-02-02 00:33:31 Fixed bug 2376 - no SDL_HasAVX Haneef Mubarak AVX is the successor to SSE* and is fairly widely available. As such, it really ought to be detectable. This functionality ought to be trivial to implement, and not having it means being forced to write an ugly workaround to check for AVX (so that normal SSE can be used if AVX is not available). Here is an example on detecting AVX from SO (it actually shows ways to cehck for all of teh fancy instructions): http://stackoverflow.com/questions/6121792/how-to-check-if-a-cpu-supports-the-sse3-instruction-set
f848adff 2013-11-29 10:06:08 Improve Android pause/resume behavior.
7e1289af 2013-11-24 23:56:17 Make internal SDL sources include SDL_internal.h instead of SDL_config.h The new header will include SDL_config.h, but allows for other global stuff.
72de99ae 2013-10-23 19:52:14 Initialize MEMORYSTATUSEX size before GlobalMemoryStatusEx() (thanks, Justin!). Fixes Bugzilla #2177.
08fa8da7 2013-10-20 21:56:15 Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings Andreas Ertelt The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/5486e579872e / https://bugzilla.libsdl.org/show_bug.cgi?id=2121) The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple warning: always_inline function might not be inlinable [-Wattributes] as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
12ca3ce3 2013-10-17 23:02:29 Fixed building using MinGW Our SDL_windows.h needed to be included before anything else so UNICODE is defined.
95dc9940 2013-10-17 20:49:30 Fix to unbreak SDL_GetSystemRAM() on FreeBSD Marcus von Appen Revision eecbcfed77c9 of the SDL hg repo introduces the new SDL_GetSystemRAM() function, which breaks the build on FreeBSD. Find attached a patch, which unbreaks the build and also should (for most cases) properly implement the sysctl support it.
2e6b4b96 2013-10-17 11:56:33 Fixed compiling on Mac OS X, added a system RAM test
8b79cbad 2013-10-17 11:32:56 Added an API to get the amount of system RAM
852004a2 2013-10-17 11:32:14 The _SC_PHYS_PAGES method of calculating RAM works on Linux.
dad42067 2013-08-12 11:13:50 Fixes #2022, do not resume on Android when surfaceChanged If the app is in landscape mode and the user presses the power button, a pause is followed immediately by a surfaceChanged event because the lock screen is shown in portrait mode. This triggers a "false" resume. So, we just pause and resume following the onWindowFocusChanged events. Also, wait for SDL_APP_WILLENTERBACKGROUND and SDL_APP_DIDENTERBACKGROUND before blocking the event pump.
1ad936eb 2013-08-11 19:56:43 Fixed bug 2027 - Full-screen appears to be broken - hang in SDL_DestroyWindow() Rainer Deyke I'm running Linux Mint 15 with the Cinnamon window manager. SDL_DestroyWindow consistently locks up for me when the window if fullscreen.