We have a largish batch LE C application that runs in POSIX mode. For performance optimization, we're rewriting a couple of routines in assembler. So far so good.
Here's the kicker: the application is 31-bit, but needs to use 64-bit registers (for large integer math). We're having a devil of a time grokking what the linkage conventions should be. We found the Assembler Services Guide where they detail the prolog and epilog code for a 31-bit program calling a 31-bit program that will save off and restore the high order bytes of the general registers (using IHASAVER). But we can't seem to find how that interrelates with the CEEENTRY macro that seems to be required when calling from LE C to assembler (or is it required?). Can anyone offer a pointer to how to do this the "right" way? We can just do STMG into a local savearea, but it won't be "right" from LE's perspective. We've already convinced ourselves that LE gets angry if we don't restore the top 32 bits properly. Do not anger the LE, for its wrath is not pretty! -- ...phsiii ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html