Home | History | Annotate | Download | only in include
History log of /src/sys/arch/i386/include/asm.h
RevisionDateAuthorComments
 1.47  05-Jan-2025  riastradh i386/asm.h: Missed a spot in previous concatenated-.asciz change.

PR toolchain/58960: Missing support for _NETBSD_REVISIONID on various
ports
 1.46  05-Jan-2025  riastradh x86 machine/asm.h: Avoid juxtaposition for concatenation.

clang asm doesn't seem to like it. Instead of `.asciz "foo" "bar"',
do `.ascii "foo"; .asciz "bar"'.

PR toolchain/58960: Missing support for _NETBSD_REVISIONID on various
ports
 1.45  09-Jun-2024  riastradh i386/asm.h: Respect _NETBSD_REVISIONID.
 1.44  25-Apr-2020  bouyer Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
 1.43  17-Apr-2020  joerg Mark the .ident section as mergable string section to avoid redundant
entries.
 1.42  15-May-2016  chs branches: 1.42.18; 1.42.28;
define ALTENTRY(), needed by dtrace.
 1.41  12-Sep-2013  joerg branches: 1.41.6;
Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.40  16-Jun-2011  joerg branches: 1.40.2; 1.40.12; 1.40.16;
Use minimal alignment for functions in standalone code.
 1.39  20-Dec-2010  joerg branches: 1.39.6;
Consistently use .gnu.warning with .pushsectio and .popsection on all
architectures instead of obsolete STABS frames for linker warnings.
 1.38  03-May-2008  yamt branches: 1.38.14; 1.38.22;
add macros to designate the end of asm functions. ok by Andrew Doran.
 1.37  20-Dec-2007  ad branches: 1.37.6; 1.37.8; 1.37.10;
- Make __cpu_simple_lock and similar real functions and patch at runtime.
- Remove old x86 atomic ops.
- Drop text alignment back to 16 on i386 (really, this time).
- Minor cleanup.
 1.36  12-Dec-2007  yamt restore section after RCSID.
 1.35  14-Nov-2007  ad branches: 1.35.2; 1.35.4; 1.35.6;
Drop _ALIGN_TEXT back to 16. 32 was a bit silly.
 1.34  17-Oct-2007  garbled branches: 1.34.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.33  05-Aug-2007  ad branches: 1.33.2; 1.33.6;
Keep alignment small for _STANDALONE.
 1.32  05-Aug-2007  ad - Align assembly routines on 32-byte boundaries.
- Don't bother doing anything special for CPUVAR() when !MULTIPROCESSOR.
 1.31  09-Feb-2007  ad branches: 1.31.6; 1.31.14; 1.31.16; 1.31.18; 1.31.22;
Merge newlock2 to head.
 1.30  20-Jan-2006  christos branches: 1.30.18;
Add a STRONG_ALIAS macro
 1.29  11-Dec-2005  christos branches: 1.29.2;
merge ktrace-lwp.
 1.28  13-May-2004  yamt branches: 1.28.12;
fix a compile error in the case DDB && !GPROF.
the problem pointed by Jaka Jejcic on current-users@ and
by several others privately.
 1.27  13-May-2004  yamt call mcount in Xspllower.
 1.26  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.25  02-May-2003  yamt branches: 1.25.2;
set symbol to be a function using .type directive in IDTVEC macro
so that ddb backtrace can pick them up after recent ksyms changes.

suggested by Matt Thomas on tech-kern.
ok'ed by Frank van der Linden.
 1.24  03-Mar-2003  fvdl Make CVAR asm reference macro CVAROFF, taking an offset.
 1.23  26-Feb-2003  fvdl Redirect some includes to x86/foo.h
 1.22  22-Nov-2002  fvdl New interrupt code. The basic idea behind it is to hide the differences
in interrupt controllers in struct pic, and try to keep as much
common code as possible. At the lowest (asm) level, this is done
with CPP macros.

The main structure is now struct intrsource, describing an established
interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic).
For quick masking, there may be a maximum of 32 sources per CPU.
Sources can be assigned to any CPU in the MP case, though currently they
all go to the boot CPU.
 1.21  31-May-2002  thorpej branches: 1.21.2;
Move the IDTVEC() macro to <machine/asm.h>, and make it work with
an ISO C preprocessor.
 1.20  13-Jan-2002  drochner branches: 1.20.10;
for ELF, put RCSID string into .ident section,
add __KERNEL_RCSID macro which is undefined in case of NO_KERNEL_RCSIDS
 1.19  14-Dec-2000  mycroft branches: 1.19.4; 1.19.6;
Remove ALTENTRY(). It's dangerous and should not be used.
 1.18  23-Jun-2000  kleink Add a WEAK_ALIAS() macro.
 1.17  09-Nov-1999  marc branches: 1.17.6;
charles was on drugs. There's no such thing as #elifdef.
 1.16  07-Nov-1999  mycroft branches: 1.16.2;
Fix WARN_REFERENCES() here for the ELF case.
 1.15  27-Sep-1999  kleink branches: 1.15.2; 1.15.4; 1.15.6;
For ELF, rename the profiling entry from mcount to __mcount to avoid clashing
with the user's namespace, also within file scope; for binary compatibility,
define a weak alias for the previous name to cover our tracks.
 1.14  23-Aug-1999  kleink Unlike in an i386 a.out assembler, where in an .align n directive n is meant
to be the logarithm to base 2 of the alignment, in an ELF environment n is
the actual alignment boundary; thus, adjust the directives accordingly.

Albeit the wonderful i386 architecture doesn't mind the smaller alignment in
an obvious way, it is likely to have resulted in some performance penalty
during the a.out->ELF transition.
 1.13  23-Dec-1998  christos C_LABEL has no _ if __ELF__
 1.12  02-Dec-1998  thorpej Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES().
 1.11  02-Dec-1998  thorpej Implement WARN_REFERENCES().
 1.10  05-Jul-1997  thorpej Define the ALTENTRY() macro here.
 1.9  04-Dec-1996  fvdl Change asm.h to make it usable for kernel profiling as well.
Make mcount() a prototype in profile.h
 1.8  30-Nov-1996  jtc PROF -> GPROF
 1.7  27-Oct-1994  cgd new RCS ID format.
 1.6  02-Sep-1994  jtc Misc changes to make this file more like the asm.h headers used by other
architectures:
Renamed _C_FUNC() to _C_LABEL()
Renamed _ASM_FUNC() to _ASM_LABEL()
Merged _BEGIN_ENTRY with _ENTRY
Renamed _END_ENTRY to _PROF_PROLOGUE

When assembling with profiling enabled, set up stack frame before calling
mcount() in _PROF_PROLOGUE. Also omit emitting .long 0's, as they are no
longer used by the profiling code.
 1.5  12-Mar-1994  jtc branches: 1.5.2;
Added RCSID macro, for RCS ID's (what else?).
 1.4  07-Jan-1994  pk branches: 1.4.2;
Add .type directive to ENRTY().
Move PIC_ macros over here from SYS.h
 1.3  20-Dec-1993  mycroft Cleanup and garbage collection; nothing significant. From magnum branch.
 1.2  08-Sep-1993  jtc branches: 1.2.2;
STDC -> __STDC__
 1.1  16-Jun-1993  mycroft Move asm.h from /usr/include/sys to /usr/include/machine.
 1.2.2.1  14-Nov-1993  mycroft Do the multiple-inclusion thang.
 1.4.2.2  07-Jan-1994  pk Add .type directive to ENRTY().
Move PIC_ macros over here from SYS.h
 1.4.2.1  07-Jan-1994  pk file asm.h was added on branch magnum on 1994-01-07 00:46:21 +0000
 1.5.2.1  06-Oct-1994  mycroft Update from trunk.
 1.15.6.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.15.4.1  15-Nov-1999  fvdl Sync with -current
 1.15.2.2  05-Jan-2001  bouyer Sync with HEAD
 1.15.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.16.2.2  07-Nov-1999  mycroft Fix WARN_REFERENCES() here for the ELF case.
 1.16.2.1  07-Nov-1999  mycroft file asm.h was added on branch comdex-fall-1999 on 1999-11-07 07:20:27 +0000
 1.17.6.1  25-Jul-2000  kleink Pull up rev. 1.18 (approved by thorpej):
For ELF, add a WEAK_ALIAS() macro.
 1.19.6.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.19.6.1  11-Feb-2002  jdolecek Sync w/ -current.
 1.19.4.3  11-Dec-2002  thorpej Sync with HEAD.
 1.19.4.2  20-Jun-2002  nathanw Catch up to -current.
 1.19.4.1  28-Feb-2002  nathanw Catch up to -current.
 1.20.10.1  14-Jul-2002  gehenna catch up with -current.
 1.21.2.2  31-May-2002  thorpej Move the IDTVEC() macro to <machine/asm.h>, and make it work with
an ISO C preprocessor.
 1.21.2.1  31-May-2002  thorpej file asm.h was added on branch sommerfeld_i386mp_1 on 2002-05-31 18:07:32 +0000
 1.25.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.25.2.1  03-Aug-2004  skrll Sync with HEAD
 1.28.12.5  21-Jan-2008  yamt sync with head
 1.28.12.4  15-Nov-2007  yamt sync with head.
 1.28.12.3  03-Sep-2007  yamt sync with head.
 1.28.12.2  26-Feb-2007  yamt sync with head.
 1.28.12.1  21-Jun-2006  yamt sync with head.
 1.29.2.1  01-Feb-2006  yamt sync with head.
 1.30.18.3  06-Feb-2007  ad Remove now unused SPLLOWER() macro.
 1.30.18.2  26-Jan-2007  ad Add a macro to define a global label.
 1.30.18.1  10-Sep-2006  ad Add updated locking primatives.
 1.31.22.2  21-Nov-2007  joerg Sync with HEAD.
 1.31.22.1  09-Aug-2007  jmcneill Sync with HEAD.
 1.31.18.1  15-Aug-2007  skrll Sync with HEAD.
 1.31.16.1  07-Aug-2007  matt Sync with HEAD.
 1.31.14.1  03-Oct-2007  garbled Sync with HEAD
 1.31.6.4  03-Dec-2007  ad Sync with HEAD.
 1.31.6.3  09-Oct-2007  ad Sync with head.
 1.31.6.2  20-Aug-2007  ad Sync with HEAD.
 1.31.6.1  29-Jul-2007  ad - When zeroing/copying pages, use SSE2 movtni to avoid polluting the cache.
- By default, align assembly routines on 32-byte starting boundaries.
- There are now 8 interrupt priority levels, half of which are softints.
Update intrdefs.h to match.
- Always clear/set spinlock words - removes lots of ifdefs.
- Remove the horrible ci_self150 hack that I introduced.
- Overhaul how TLB shootdown is performed. Inspired by a similar change in
OpenBSD but implemented quite differently. This should be a lot faster
but I have not benchmarked it yet.
 1.33.6.1  18-Nov-2007  bouyer Sync with HEAD
 1.33.2.2  09-Jan-2008  matt sync with HEAD
 1.33.2.1  06-Nov-2007  matt sync with HEAD
 1.34.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.34.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.35.6.2  02-Jan-2008  bouyer Sync with HEAD
 1.35.6.1  13-Dec-2007  bouyer Sync with HEAD
 1.35.4.1  13-Dec-2007  yamt sync with head.
 1.35.2.1  26-Dec-2007  ad Sync with head.
 1.37.10.1  16-May-2008  yamt sync with head.
 1.37.8.1  18-May-2008  yamt sync with head.
 1.37.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.38.22.1  05-Mar-2011  rmind sync with head
 1.38.14.2  27-Aug-2011  jym Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.
 1.38.14.1  10-Jan-2011  jym Sync with HEAD
 1.39.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.40.16.1  18-May-2014  rmind sync with head
 1.40.12.2  03-Dec-2017  jdolecek update from HEAD
 1.40.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.40.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.41.6.1  29-May-2016  skrll Sync with HEAD
 1.42.28.1  20-Apr-2020  bouyer Sync with HEAD
 1.42.18.1  21-Apr-2020  martin Sync with HEAD

RSS XML Feed