interface.
To: None <port-mips@netbsd.org>
From: Noriyuki Soda <soda@sra.co.jp>
List: port-mips
Date: 03/24/1999 22:06:00
Nishimura-san and Mr. Castor changed the inteface of <machine/asm.h>
in this January.
Because NetBSD-1.4 code freeze will come soon. we call for approval
the changes to the interface.
Unlike the old interface, the new interface of <machine/asm.h> is
compatible with other mips platforms like Ultrix, SONY NEWS-OS, Linux,
and perhaps SGI (I don't have access to SGI IRIX, but perhaps
Nishimura-san or Mr. Castor checked the compatibility with SGI).
This is the reason to the following changes.
Proposal:
------------------------------------------------------------------------
CHANGES TO MACRO NAMES
old one new one
leaf routine LEAF LEAF (not changed)
non-profiled leaf routine NLEAF LEAF_NONPROFILE (*)
alternate entry to leaf routine ALEAF XLEAF
non-leaf routine NON_LEAF NESTED
non-profiled non-leaf routine NNON_LEAF NESTED_NONPROFILE (*)
NEW MACROS
alternate entry to non-leaf routine XNESTED
import external symbol IMPORT
export definition of symbol EXPORT
COMPATIBILITY
Old macros (NLEAF, ALEAF, NON_LEAF, NNON_LEAF) will remain
until NetBSD-1.4 release shipped, but will be removed after
the release.
(*) LEAF_NONPROFILE and NESTED_NONPROFILE are BSD specific and not
part of the standard, so we can choose other names for these.
------------------------------------------------------------------------
Are these changes OK ?
Please reply to this message, as soon as possible.
1. OK
2. Not OK
3. postpone this discussion after NetBSD-1.4 release.
4. postpone this discussion after NetBSD-1.4 release,
and remove the new macros in <machine/asm.h> for now.
My vote is 1.
BTW, current <mips/asm.h> seems to have some minor problems.
I'll fix the following problems, if there is no objection.
a. ALIAS() macro is not part of standard and not needed.
XLEAF() or XNESTED() should be used instead.
b. XLEAF() and XNESTED() should use AENT() instead of .aent
c. _END_LABEL() macro is not needed (it is only used by
VECTOR_END), and wrong. (doubley defined
if !defined(__NO_LEADING_UNDERSCORES__) && !defined(__STDC__),
and wrongly defined if defined(__NO_LEADING_UNDERSCORES__))
d. ALEAF(), NLEAF(), NON_LEAF(), NNON_LEAF() should be defined
by XLEAF(), LEAF_NONPROFILE(), NESTED(), NESTED_NONPROFILE().
--
soda