mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.4 KiB
115 lines
3.4 KiB
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
|