Alpha AXP MSCGEM OTS C run-time library notes. - The following OTS source files were obtained from Kent Glossop on 27-Jan-1993. I believe the version number is X1.0-4. div.s divdat.s extv.s extvvol.s extzv.s extzvvol.s insv.s insvvol.s ots_as.hs ots_defs.hs scmpeql.s scmpeqlp.s scmpleq.s scmpleqp.s scmplss.s scmplssp.s sfill.s sloc.s smove.s smovem.s strans.s szero.s - The six strcmp/cpy/len functions were obtained through Rich Peterson on 25-Jan-1993. strcmp.s strcmp_.s strcpy.s strcpy_.s strlen.s strlen_.s - For now, and in the interest of maintenance, we have left the source files intact in spite of the fact that they don't follow conventions of all other NT/Alpha assembler code. - The following files had a non-ascii 0xa9 character instead of a (c) in the copyright line. These have been fixed so slm works right. scmpeql.s scmpeqlp.s scmpleq.s scmpleqp.s scmplss.s scmplssp.s sloc.s strans.s - The goal is to provide compatible C runtime support for both acc and GEM compilers through the existing NT C libraries. - Both compilers, header files, runtime libraries, and object files are compatible with each other now, with these exceptions: o The setjmp/longjmp functions are not compatible since the data in the jump buffer differs between the two compilers. SEH is 100% compatible, however. o Calls to setjmp would actually work with acc even if setjmp.h was not included. With GEM, the include file is required for proper operation. o As of 930205, small structures are still passed and returned by value incompatibly between the two compilers. This will be fixed by upgrading acc to follow the GEM calling standard, and/or by using a GEM switch to be acc compatible. o The above is not quite correct: as of 930217, GEM is using an option to follow the acc convention, not the calling standard convention. It looks like both acc and GEM will have options to handle small structures both ways. - The str functions will conflict with the portable versions in the ..\string directory. The portable ones should be #ifdef'ed out for Alpha. - The two or three different versions of divide routines may get sorted out later when we have a chance to do better performance work. - A _OtsUnwindRfp was added to jmpuwind.s. This may not be used by GEM/C, but will be used by GEM/Pascal. 930728 - _OtsUnwindRfp is permanent and is also used by C for gotos out of finally handlers and by the GEM C specific handler function. All DLLs that exported RtlUnwind now also export RtlUnwindRfp. - Both compilers pass and return small structures in registers. This change was made some months ago. The object file magic number was changed at the same time to eliminate any calling standard mismatch. - The contents of the jump buffer is not the same between the two compilers but a jump buffer type field is set by setjmp and there is only one longjmp function so there are now no interoperability problems between the two compilers. - A new set of OTS source files was obtained from Patsy Griffin on 1-Jun-1993. The version number is V1.0. The only changes are in div.s (renamed otsdiv.s for NT) and divdat.s. These implement a faster division algorithm, similar to the one already used in fastdiv.s for acc. tvb