RFC: updating CPU identification macros

Keith Marshall <[email protected]> Tue, 31 May 2016 18:03:01 +0100
Newsgroups gmane.comp.gnu.mingw.devel
Organization MinGW Project
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Guys,

As I've noted at https://sourceforge.net/p/mingw/bugs/2301/, in both
<windows.h> and <winnt.h> I see:

  #if defined(__i686__) && !defined(_M_IX86)
  #define _M_IX86 600
  #elif defined(__i586__) && !defined(_M_IX86)
  #define _M_IX86 500
  #elif defined(__i486__) && !defined(_M_IX86)
  #define _M_IX86 400
  #elif defined(__i386__) && !defined(_M_IX86)
  #define _M_IX86 300
  #endif

This may have been okay when Anders Norlander first wrote it,
(although why he chose to duplicate it -- unnecessarily, as it happens
- -- in the two headers noted above is something of a puzzle), but I
doubt that it is good enough today.

I've indicated how I propose to update this, on the 2301 ticket, but
I'd particularly appreciate your thoughts on which, if any, of the
other Microsoft predefined macros, as documented at:
https://msdn.microsoft.com/en-us/library/b0084kay(v=vs.140).aspx
we should consider adding.  Also, how much of:

  #if defined(_M_IX86) && !defined(_X86_)
  #define _X86_
  #elif defined(_M_ALPHA) && !defined(_ALPHA_)
  #define _ALPHA_
  #elif defined(_M_PPC) && !defined(_PPC_)
  #define _PPC_
  #elif defined(_M_MRX000) && !defined(_MIPS_)
  #define _MIPS_
  #elif defined(_M_M68K) && !defined(_68K_)
  #define _68K_
  #endif

remains relevant today?  (Indeed, did Microsoft /ever/ support the
Motorola M68K processor?)

Please add your comments on the 2301 ticket.

- -- 
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBAgAGBQJXTcPFAAoJEMCtNsY0flo/OEIP/2lDYl1YIzfE5/MxVXrIoj9l
npT5dUYE7ht40oPAzwkAOrB0Z7YFpsbgpVMiA1eEMtySaDz/v1ODrzrGp7t8R4YA
EGK87dKt34gT2TGudhyt5ER3xTvqynMFneIyApcLcP/Ul+0wmenP0FoMEpvGZt19
9kgl29zGBaIwFccPII8CFPARRrGycxr607nWBdpDIz/8zCsrU5tGLk3nnMZa6WB9
jOu8uzNQcKGWnpYdet/DWiRqLETxyCwAiY5mnLrWiIZw6qPDKd9U2vKjB4OB9BhU
FNzaCpU4Q70Rugzthh386M1VPUgD+5TZD4rrQ2cuUaLrgL/zgr5oKNzKX5d8dIfj
TmJuvuNnpWFzK1p5cQn5w6oZRhFzM0b+zOPXT81vVEcdQ8ysNHrGjLLV70UTziEw
Kk5yJndHqBPbLqCZC3whT24rHTlbp2/wKK8ZxRi7ZE9r+1gu86Y8SG+eWkTwn+5Y
QAnkSAMXpqGZwXR5afGjrYnxc/Clw3e3EZ8KhCvS6ovUj7hwlr5PetFD1ckumNAT
WuHOFO82zCruiXA5Ko6eHOaHhnXn8tFEWXuDwWWbqZoDNA2rMMCivdJ8kq+Gmld/
aVe/v/9vuduc/N6x23bnCG5LfZTIf6lY/tzAyv3eQE7FVwMLqzi/nz8kYhQUv86j
mNhuv1KX6ZqLZKFk4NyO
=NRJa
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e