On 29.12.2011 04:36, Manabu Ori wrote:
I believe lwarx hint would be no harm for recent PowerPC processors.
What I tested are:
(1) Built postgres on POWER6 + RHEL5, which got lwarx hint
included. Then copy these src tree to POWER5 + RHEL4 and
run "make test", finished successfully.
(2) Lwarx test in configure failed on POWER5 + RHEL4.
Note that POWER6 understands lwarx hint and POWER5 doesn't.
RHEL5 binutils supports lwarx hint and RHEL4 binutils doesn't.
The only concern is for very old PowerPC.
Referring to Power Instruction Set Architecture manual(*1), on
some processors that precede PowerISA v2.00, executing lwarx with
hint will cause the illegal instruction error.
Lwarx test in configure should fail on these kind of processors,
guessing from my test(2).
The Linux kernel does this (arch/powerpc/include/asm/ppc-opcode.h):
127 /*
128 * Only use the larx hint bit on 64bit CPUs. e500v1/v2 based CPUs will
treat a
129 * larx with EH set as an illegal instruction.
130 */
131 #ifdef CONFIG_PPC64
132 #define __PPC_EH(eh) (((eh) & 0x1) << 0)
133 #else
134 #define __PPC_EH(eh) 0
135 #endif
We can't copy-paste code from Linux directly, and I'm not sure I like
that particular phrasing of the macro, but perhaps we should steal the
idea and only use the hint on 64-bit PowerPC processors? I presume all
the processors that support the hint are 64-bit, so the question is, is
there any 64-bit PowerPC processors that would get upset about it? It's
quite arbitrary to tie it to the word length, but if it works as a
dividing line in practice, I'm fine with it.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers