[m-dev.] Patches for ia64, hppa and s390
Peter Hawkins
peter at hawkins.emu.id.au
Thu Jul 15 19:34:18 AEST 2004
Hi...
Attached are some patches required for ia64, hppa and s390 machine support.
For ia64, hppa, and s390 I added code to configure.in to prevent the use of
gcc labels and non-local gotos.
ia64 and hppa give Illegal instruction faults for code build using non-local
gotos. I don't know why hppa doesn't work and I haven't looked into it. I
suspect ia64 will never work with non-local gotos since it has a
variable-size register stack (like the register windows on sparc, but
variable in size).
The configure test for non-local gotos goes into an infinite loop on s390, so
I presume non-local gotos won't work without some effort.
Also attached are two patches that add global register support for ia64. They
use only the four static callee-save registers on ia64. Note that this is not
particularly optimal - ia64 has LOTS of registers (around 256 general purpose
registers) , but most are caller-save (about 100) or non-global (about 128).
A better patch would make use of the caller save registers.
=)
Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure.in.diff
Type: text/x-diff
Size: 885 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/developers/attachments/20040715/00a2873e/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 001-mercury-regs-h.diff
Type: text/x-diff
Size: 449 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/developers/attachments/20040715/00a2873e/attachment-0001.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 002-ia64-regs-h.diff
Type: text/x-diff
Size: 2573 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/developers/attachments/20040715/00a2873e/attachment-0002.diff>
More information about the developers
mailing list