Thanks Bill for the guidance.  I've looked into the ABI's for ppc64 and x86_64.

Attached is a patch to fix cd for correctly passing floating point values under 
linux_ppc64, linux_x86_64, and darwin_x86_64.

On linux ppc64, I tested with RHEL on a power7.  Single precision floating 
point numbers are now correctly passed.  The first 13 of both single and double 
precision numbers are passed via registers, and the rest are correctly pushed 
to stack with other arguments.

On x86_64, I tested with both linux and darwin.  The patch lifts the 
restriction of 8 floating point scalars.  Extra single or double precision 
floating point numbers are correctly pushed to stack.  Now you will never have 
to see the cd domain error "7 0 - system limit - linux64 max 8 float/double 
scalars".  We can remove this line from our dictionary.

I imagine it would take minimal changes to apply to other x86_64 systems.  
Though I don't have the OS to test, but I'd be glad to explain and help out.


For information about J forums see

Reply via email to