avr32: Clean up and optimize the TLB operations
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Tue, 15 May 2007 13:06:41 +0000 (15:06 +0200)
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Wed, 2 Jul 2008 09:01:28 +0000 (11:01 +0200)
commitb13d618b44fefea7529bd467e55423d353a599fc
treee5e7d404d0c8711087e00d12be6931a8982897f5
parentd7ff2a4a28ceadc03df2f5a20897165fda306382
avr32: Clean up and optimize the TLB operations

This and the following patches aim to optimize the code dealing with
page tables and TLB operations. Each patch reduces the time it takes
to gzip a 16 MB file slightly, but I expect things like fork() and
mmap() will improve somewhat more.

This patch deals with the low-level TLB operations:

  * Remove unused _TLBEHI_I define
  * Use gcc builtins instead of inline assembly
  * Remove a few unnecessary pipeline flushes and nops
  * Introduce NR_TLB_ENTRIES define and use it instead of hardcoding it
    to 32 a few places throughout the code.
  * Use sysreg bitops instead of hardcoded shifts and masks
  * Make a few needlessly global functions static

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
arch/avr32/mm/tlb.c
include/asm-avr32/tlbflush.h