Hello, > However the chart preceding these statements indicates this: > f0, f2, f4, f6 parameter passing and return values (volatile) > f1, f3, f5, f7 general purpose (volatile) > f8-f15 general purpose (saved)
The chart is correct. Older zSeries ABI documents came with the last two (saved)/(volatile) exchanged. The person who fixed that ... > The chart really says this, but it does not match the above verbiage > below the chart: > f8-f15 are saved (verbiage says f1, f3, f5 and f7) > f0-f7 are volatile (verbiage says f0, f2, f4, f6, f8-f15) ... unfortunately forgot to fix the text below the chart as well. > 1. Has the ABI changed for floating point between s/390 and zSeries > versions? Yes. The 31 bit and 64 bit ABIs aren't compatible. For floating point its obvious (more argument registers etc.). But also the convention for the general purpose registers can't match. You have to keep in mind that on 31bit we can't pass 64 bit values in a single register it has to be a pair of registers. > 2. What is correct usage and volatility for zSeries (or is the s/390 > really wrong)? Described above. Its a bug in the 64 bit ABI document. > 3. How does the inconsistency in the zSeries ELF ABI get fixed? I've to ask around to clarify this. These documents were created by IBM quite some time ago and were handed over to the Linux Standards Base Group. I don't know who to contact to get this fixed but I'll try to figure this out. Thanks for pointing this out! Bye, -Andreas- ---------------------------------------------------------------------- For LINUX-390 subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: INFO LINUX-390 or visit http://www.marist.edu/htbin/wlvindex?LINUX-390
