Ozkan Sezer
9343246616
SDL_endian.h: don't add _m_prefetch hack for clang-cl if available as a builtin
...
Fixes: https://github.com/libsdl-org/SDL/issues/13952 .
(backport from SDL3 commit 81f2f44843
)
2025-09-15 20:10:50 +03:00
Sam Lantinga
2b5b8fdbd5
Updated copyright for 2025
2025-01-01 07:47:53 -08:00
Ryan C. Gordon
14183f8eca
SDL_endian.h: Fix byte order detection on Solaris (and some SPARC compilers).
...
Fixes #10093 .
2024-06-28 00:11:23 -04:00
SDL Wiki Bot
143d5d779c
Sync SDL2 wiki -> header
2024-06-14 06:11:54 +00:00
Ryan C. Gordon
1c3a1e1139
wikiheaders: Updated to latest, cleaned up category documentation a little.
...
This documentation needs a LOT of work--maybe someday--but it's definitely not
_broken_ right now, which is good enough for now.
2024-05-16 11:49:21 -04:00
Ryan C. Gordon
e03ad30a57
docs: heavy editing to make this happy with latest wikibridge.
...
The public headers saw lots of cleanups, backporting from SDL3 docs, and
merging with the wiki.
The markdown files in docs/README-*.md were converted to Unix endlines.
2024-04-23 14:21:54 -04:00
Sam Lantinga
0fc3574464
Updated copyright for 2024
2024-01-01 13:19:49 -08:00
Anonymous Maarten
ae3a34a388
byteswap: Don't use intrinsic byteswap functions with Intel C compiler
...
It reroutes intrinsic _byteswap_u(short|long|int64) call to libc function.
2023-03-27 06:13:28 +00:00
Sam Lantinga
0479df53ca
Updated copyright for 2023
2023-01-09 09:48:21 -08:00
Sam Lantinga
ce5a23bd57
Applied DragonFly BSD patch
...
https://raw.githubusercontent.com/DragonFlyBSD/DeltaPorts/master/ports/devel/sdl20/dragonfly/patch-include_SDL__endian.h
2022-07-30 16:32:21 -07:00
Ozkan Sezer
b8f30c021b
SDL_endian.h: check for __powerpc__ and __PPC__ in big endian decision.
...
Also remove the _M_PPC check from there.
Reference issue: https://github.com/libsdl-org/SDL/issues/5907
2022-07-12 00:55:00 +03:00
Cameron Cawley
b398a847be
Add SDL_FLOATWORDORDER for older ARM toolchains
2022-05-04 09:52:11 -07:00
Ozkan Sezer
ecc1c871e6
SDL_endian.h: use endian predefs from newer gcc and clang versions.
...
Closes: https://github.com/libsdl-org/SDL/pull/5403
2022-03-14 10:10:40 +03:00
Sam Lantinga
120c76c84b
Updated copyright for 2022
2022-01-03 09:40:21 -08:00
Ozkan Sezer
eb39e20588
SDL_endian.h: remove aarch64 asm.
...
The asm has been reported broken in at least optimized Apple M1 builds;
and besides, the compiler builtins have precedence over the asm anyway.
Closes https://github.com/libsdl-org/SDL/issues/3943
2021-11-25 17:00:50 +03:00
Ozkan Sezer
53aa8eec5f
minor cleanup for watcom _inline keyword.
2021-11-25 17:00:24 +03:00
hgs3
c2464653d0
Remove unnecessary clang-cl check since Clang has __builtin_bswap.
2021-11-18 03:28:00 +03:00
hgs3
6b66542e7b
Fixing compilation errors for VS2019 Clang toolset ( fixes #4702 )
2021-11-18 03:28:00 +03:00
Ozkan Sezer
dd6269b1e0
SDL_endian.h: added proper version check (VS2005+) to MSVC functionality
2021-11-17 17:55:00 +03:00
Sam Lantinga
b687c0ff2c
Integrate fix for Source 2's Win32 build that does '#define __i386__ 1' which causes it to hit the __i386__ case instead of the _MSC_VER case.
2021-09-21 18:15:10 -07:00
Ryan C. Gordon
b8da02e6ef
include: Fix triggering of Clang's -Wexpansion-to-defined in SDL_endian.h
...
It doesn't like #if statements that uses a macro that uses defined(x).
2021-09-18 10:44:32 -04:00
Alex R
eb8f332c26
fix: allow builtins for all archs ( #4756 )
...
* fix: allow builtins for all archs
* fix: typo
2021-09-16 17:34:49 -07:00
Joshua Root
9bf6557585
Correctly check for bswap builtins before using
...
The __clang_major__ and __clang_minor__ macros provide a marketing
version, which is not necessarily comparable for clang distributions
from different vendors[1]. In practice, the versioning scheme for
Apple's clang is indeed completely different to that of the llvm.org
releases. It is thus preferable to check for features directly rather
than comparing versions.
In this specific case, __builtin_bswap16 was being used with older
Apple clang versions that don't support it.
[1] https://clang.llvm.org/docs/LanguageExtensions.html#builtin-macros
2021-08-12 16:03:44 -07:00
nia
98f2e38b26
Use <sys/endian.h> for endian detection on NetBSD
...
Signed-off-by: Nia Alarie <nia@NetBSD.org >
2021-06-12 15:49:36 +03:00
Vladislav Dmitrievich Turbanov
50db4a59b8
* Support for intrinsics in MSW + Clang scenario.
...
Utility polyfill is provided, removed the no-longer-needed
conditionals.
2021-04-09 22:28:07 -07:00
Ozkan Sezer
55a385a333
removed a useless restriction from Watcom version of SDL_Swap32()
...
also did a little whitespace tidy-up.
2021-02-24 20:03:50 +03:00
Ozkan Sezer
b8d2185277
added Watcom i386 inline asm for SDL_Swap64()
2021-02-23 17:37:20 +03:00
Sam Lantinga
ef52560a24
Fixed bug 5539 - Clang 11 fails to compile a CMake build with conflicting types for _m_prefetchw
...
vladius
In SDL_cpuinfo.h it seems like <intrin.h> is not included when __clang__ is defined, as the comment in the file explicitly reads:
"Many of the intrinsics SDL uses are not implemented by clang with Visual Studio"
However, the SDL_endian.h header does include <intrin.h> without any precautions like:
>#ifdef _MSC_VER
>#include <intrin.h>
>#endif
Maybe it should be changed to something like:
>#ifdef _MSC_VER
>#ifndef __clang__
>#include <intrin.h>
>#endif
>#endif
2021-02-10 10:22:20 -05:00
Cameron Gutman
0f0946702d
Use Clang/GCC builtins for SDL byteswapping functions
...
__builtin_bswap32/64 were introduced in GCC 4.3. __builtin_bswap16 was
not available on x86 until GCC 4.8 due to a bug.
__builtin_bswap32/64 were introduced in Clang 2.6. __builtin_bswap16
was introduced in Clang 3.2.
2021-01-04 19:51:56 -06:00
Cameron Gutman
115d66e756
Use MSVC _byteswap intrinsics for SDL byteswapping functions
...
This generates bswap on x86/x64 and rev on ARM
2021-01-02 12:50:01 -06:00
Sam Lantinga
6f9e18da2a
Fixed bug 5441 - Add support for endianness check on FreeBSD: Fixes endianness checking on at least powerpc64le, maybe also other architectures
...
VVD
Patch based on patch from FreeBSD port devel/sdl20:
https://svnweb.freebsd.org/ports/head/devel/sdl20/files/patch-include_SDL__endian.h?view=log
2021-01-03 10:18:39 -08:00
Sam Lantinga
9130f7c377
Updated copyright for 2021
2021-01-02 10:25:38 -08:00
Ozkan Sezer
5b2e011e6d
SDL_endian.h: minor fixes from SDL-1.2 branch
...
( forward-port of changesets 3909:6832b00d3594 and 5657:529d23724144 )
2020-12-30 23:55:02 +03:00
Ozkan Sezer
9e22f62e0d
arm64 implementations of SDL_Swap16/32 (bug #5419.)
...
patch from David Carlier.
2020-12-28 11:50:02 +03:00
Ozkan Sezer
2355dea448
revert 'arm64 implementations of SDL_Swap16/32' for now (bug #5419 )
2020-12-28 08:00:50 +03:00
Ozkan Sezer
2f99bc07e7
arm64 implementations of SDL_Swap16/32 (bug #5419.)
...
patch from David Carlier.
2020-12-28 07:20:20 +03:00
Sam Lantinga
a8780c6a28
Updated copyright date for 2020
2020-01-16 20:49:25 -08:00
Ozkan Sezer
9530ccba0f
SDL_endian.h: Use endian.h for OpenBSD.
...
Patch from OpenBSD CVS, authored by Donovan Watteau.
2019-10-21 22:22:28 +03:00
Ozkan Sezer
7c7801f166
Fix typo with __MIPSEB__ preprocessor check (bug #4836.)
...
Patch from Simon Howard
2019-10-21 10:20:25 +03:00
Sam Lantinga
5e13087b0f
Updated copyright for 2019
2019-01-04 22:01:14 -08:00
Sam Lantinga
e3cc5b2c6b
Updated copyright for 2018
2018-01-03 10:03:25 -08:00
Ozkan Sezer
fbda68ea7b
SDL_endian.h: add SDL_Swap16 and SDL_Swap32 for Watcom/x86 as inline asm
...
Partially fixes Bugzilla #3758 .
2017-08-17 21:32:00 -04:00
Sam Lantinga
45b774e3f7
Updated copyright for 2017
2017-01-01 18:33:28 -08:00
Sam Lantinga
3615633571
Renaming of guard header names to quiet -Wreserved-id-macro
...
Patch contributed by Sylvain
2016-11-20 21:34:54 -08:00
Sam Lantinga
42065e785d
Updated copyright to 2016
2016-01-02 10:10:34 -08:00
Philipp Wiesemann
0e45984fa0
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().
2015-06-21 17:33:46 +02:00