[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: exotic CPU hardware
From: |
Paul Eggert |
Subject: |
Re: exotic CPU hardware |
Date: |
Sat, 5 Dec 2020 11:41:17 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 |
On 12/4/20 12:47 PM, Bruno Haible wrote:
The currently sold Unisys ClearPath Dorado
machines contain Xeon processors.
They're Xeon processors but they come with Unisys-supplied firmware that emulate
the older architectures, which means that C programs on these platforms should
follow the old rules. Five or ten years ago Unisys found that this performed
better than the chips they were designing themselves. Unisys did this for both
their Dorado and Libra mainframes (quite different ISAs: the former is
ones'-complement, the latter signed-magnitude), at about the same time.
Come to think of it, IBM has also done something similar, for its IBM i
(formerly AS/400, formerly System/38) line, which originally used 48-bit words.
Starting around 2000 they switched it to use IBM's POWER chips with 64-bit
words. A difference is that IBM i programs have always been translated as needed
by the runtime from a machine-independent format, instead of being interpreted
by an emulator.
From a Gnulib viewpoint, the main problem with IBM i C is that the preferred
pointers size is 128 bits and there is no intptr_t type; although POSIX and the
C standard allow this, it'd break a lot of GNU code. In practice, anybody
running GNUish code on the IBM i would run it under PASE, which can execute AIX
programs in a mostly binary-compatible way (with 64-bit pointers and with intptr_t).
We might as well document this, if only to state more clearly what platforms
Gnulib (and most GNU apps) clearly don't support. I installed the attached,
which adds a section "Exotic platforms" and documents the IBM i and the two
Unisys platforms. I didn't bother mentioning platforms like the old x86 where
int is 16 bits and there are near and far pointers, as the GNU coding standards
explicitly reject tiny-int platforms.
0001-doc-mention-intptr_t-etc.-and-IBM-i.patch
Description: Text Data
- indsize: New module, Bruno Haible, 2020/12/03
- Re: indsize: New module, Paul Eggert, 2020/12/03
- Re: indsize: New module, Bruno Haible, 2020/12/03
- Re: indsize: New module, Paul Eggert, 2020/12/03
- Re: indsize: New module, Bruno Haible, 2020/12/03
- Re: indsize: New module, Paul Eggert, 2020/12/04
- Re: exotic CPU hardware, Bruno Haible, 2020/12/04
- Re: exotic CPU hardware, Jeffrey Walton, 2020/12/04
- Re: exotic CPU hardware,
Paul Eggert <=
- Re: exotic CPU hardware, Paul Eggert, 2020/12/05