1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00

Add .register directives for gcc3.

Add macros to atomically increment an integer variable in the data
section and to atomically set a bit in a tte.  Note that the latter
does not return the new value.
Rewrite RESUME_SPILLFILL_MAGIC to use more sensical calculations, and
to preserve all alternate globals religiously.  Must now be called on
alternate globals.
Defer switching to the kernel stack until inside the syscall, trap,
interrupt wrappers.  Splitting the windows is all that's really urgent.
Adapt to new trap types.
Add %xcc where appropriate in order to not use v8 opcodes inadvertantly
(which work fine).
Modify the low level tlb fault handlers to operate on a tsb made up of
ttes, not sttes.  This effectively makes the tsb twice as large.
After atomically updating tte bits in memory, also set the bit in the
register that holds the data which will be loaded into the tlb.  The
macro returns the old value.
Use the preloaded mmu global which holds the address of the current
user tsb.
Add back a low level protection fault handler instead of just punting
into the vm system.  This effectively saves a soft fault per COW fault.
Add a trace to intr_enqueue.
Pass arguments to the trap, interrupt, syscall wrappers in the out
registers instead of some on the stack, some in registers.
Use the preloaded alternate global pcb register.
This commit is contained in:
Jake Burkholder 2001-12-29 07:59:04 +00:00
parent 1b217abc65
commit 26a7438b6f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=88644
2 changed files with 1638 additions and 1376 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff