Everhart, Glenn (FUSA) From: system@SendSpamHere.ORG Sent: Wednesday, April 14, 1999 6:00 AM To: Info-VAX@Mvb.Saic.Com Subject: Re: LIB$ESTABLISH on Alpha ? In article <1999Apr13.184515.750@tachyon.com>, wayne@tachyon.xxx595714killspam-4e37 (Wayne Sewell) writes: >In article , hshubs@mindspring.com (Howard S Shubs) writes: >> In article <7f059b$qiu$1@charm.magnus.acs.ohio-state.edu>, >> JONESD@er6.eng.ohio-state.edu (David Jones) wrote: >> >>>If you are calling LIB$ESTABLISH from MACRO, I think if you change it >>>to a MOVL to (FP) the alpha compiler will correctly handle it. >> >> I can't imagine calling LIB$ESTABLISH from MACRO-32. Seems like a most >> round-about method of doing something incredibly simple, or am I missing >> something? >> -- > >You are correct. It is pointless. David's comment above applies to both vax >*and* alpha. A macro-32 program on either architecture can always stuff the >address of the condition handler directly into the frame, using a single vax >instruction or alpha equivalent. Perhaps the person who wrote the macro >portion of the software that started this thread did not know about this. Except that it is not a matter of simply 'stuffing' an address into a frame on the Alpha. The procedure descriptor for the procedure must maintain two additional quadwords, PDSC$Q_{STACK/REG}_HANDLER and PDSC$Q_{STACK/REG)_HAN- DLER_DATA, as well as, denote the presence of these fields in PDSC$W_FLAGS field. Thus, the compiler must make provisions for an exception handler at compile time. Of course, nothing (short of an appreciation for the calling standard) will stop you from making run-time changes to these fields to ef- fect dynamic modifications of the condition handler. There are requirements imposed by the calling standard for the storage of the procedure's frame pointer and/or linkage pointer such that the excep- tion handling code can search back through the stack, locate the procedure descriptor and determine if a handler at that depth exists. -- VAXman- OpenVMS APE certification number: AAA-0001 VAXman@TMESIS.COM