summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-07-23 19:49:32 +0000
committeralc <alc@FreeBSD.org>2003-07-23 19:49:32 +0000
commit2e85aa2ad26aea6dbebd0a0979204d6818d9629e (patch)
tree0819b2a52235ad3d736a239e750a127c6cb7ba25 /sys/amd64
parent318967d8e2ff6804bf1d4e5ae5ba15704526fcdd (diff)
downloadFreeBSD-src-2e85aa2ad26aea6dbebd0a0979204d6818d9629e.zip
FreeBSD-src-2e85aa2ad26aea6dbebd0a0979204d6818d9629e.tar.gz
Annotate pmap_changebit() as __always_inline. This function was
written as a template that when inlined is specialized for the caller through constant value propagation and dead code elimination. Thus, the specialized code that is generated for pmap_clear_reference() et al. avoids several conditional branches inside of a loop.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 9226502..4faf884 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -206,7 +206,8 @@ static caddr_t crashdumpmap;
static PMAP_INLINE void free_pv_entry(pv_entry_t pv);
static pv_entry_t get_pv_entry(void);
static void amd64_protection_init(void);
-static __inline void pmap_changebit(vm_page_t m, int bit, boolean_t setem);
+static void pmap_changebit(vm_page_t m, int bit, boolean_t setem)
+ __always_inline;
static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva);
static void pmap_remove_page(struct pmap *pmap, vm_offset_t va);
OpenPOWER on IntegriCloud