Thread (6 messages) flat view 6 messages, 4 authors, 2020-11-10

Re: [PATCH] compat/bswap.h: detect ARM64 when using MSVC

From: Sebastian Schuberth <hidden>
Date: 2020-11-10 16:44:37

On Tue, Nov 10, 2020 at 2:58 PM Johannes Schindelin
[off-list ref] wrote:
quoted
-#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
+#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM64))
I Cc:ed Sebastian, to confirm my hunch: Looking a bit above that hunk, I
see that this merely imitates the way things are done for GCC:

    #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
I believe my intention was not necessarily to imitate the way things
are done for GCC, but to independently be on the safe side by checking
that this code is only used on x86-style / little-endian architecture.
quoted
As far as I know, Windows has always run on little-endian hardware.
I think that depends on your point of view... IIRC an early version of
Windows NT (or was it still VMS Plus?) ran on DEC Alpha, which I seem to
_vaguely_ remember was big-endian.
IMO, strictly speaking, from a semantic point of view this is not
about which OS we are running on, but about which compiler is being
used. So the question here is: Can MSVC compile for a non-little
endian target platform (incl. things like cross-compilation)? And
AFAIK the answer is yes, it could in the past / still can nowadays.
Short version: while I managed to convince myself that _currently_ there
are no big-endian platforms that we can support via MSVC, I would like to
stay within the boundaries of caution and _not_ drop those `defined(_M_*)`
parts.
Same here, I'd prefer to keep these for explicitness, and for
consistency with the GCC check.

-- 
Sebastian Schuberth
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help