[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