OpenCloudOS-Kernel/arch/mips/mm
Paul Burton 6baaeadae9
MIPS: Provide unroll() macro, use it for cache ops
Currently we have a lot of duplication in asm/r4kcache.h to handle
manually unrolling loops of cache ops for various line sizes, and we
have to explicitly handle the difference in cache op immediate width
between MIPSr6 & earlier ISA revisions with further duplication.

Introduce an unroll() macro in asm/unroll.h which expands to a switch
statement which is used to call a function or expand a preprocessor
macro a compile-time constant number of times in a row - effectively
explicitly unrolling a loop. We make use of this here to remove the
cache op duplication & will use it further in later patches.

A nice side effect of this is that calculating the cache op offset
immediate is now the compiler's responsibility, so we're no longer
sensitive to the width change of that immediate in MIPSr6 & will be
similarly agnostic to immediate width in any future supported ISA.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
2019-10-09 12:47:56 -07:00
..
Makefile MIPS: Select R3k-style TLB in Kconfig 2019-09-03 14:20:43 +01:00
c-octeon.c MIPS: Delete unused flush_cache_sigtramp() 2019-02-07 12:59:45 -08:00
c-r3k.c MIPS: Delete unused flush_cache_sigtramp() 2019-02-07 12:59:45 -08:00
c-r4k.c MIPS: Provide unroll() macro, use it for cache ops 2019-10-09 12:47:56 -07:00
c-tx39.c MIPS: Delete unused flush_cache_sigtramp() 2019-02-07 12:59:45 -08:00
cache.c MIPS: remove the _dma_cache_wback_inv export 2019-06-03 16:00:08 +02:00
cerr-sb1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cex-gen.S MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
cex-oct.S MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
cex-sb1.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
context.c MIPS: Export mm switching functions used by KVM 2019-02-05 11:44:44 -08:00
dma-noncoherent.c dma-mapping: remove arch_dma_mmap_pgprot 2019-08-29 16:43:22 +02:00
extable.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
fault.c signal: Remove the task parameter from force_sig_fault 2019-05-29 09:31:43 -05:00
highmem.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hugetlbpage.c mm/hugetlb: add size parameter to huge_pte_offset() 2017-07-06 16:24:34 -07:00
init.c MIPS: Detect bad _PFN_SHIFT values 2019-09-20 14:55:07 -07:00
ioremap.c MIPS: Fix ioremap() RAM check 2018-07-05 14:43:21 -07:00
mmap.c mips: use generic mmap top-down layout and brk randomization 2019-09-24 15:54:12 -07:00
page-funcs.S MIPS: Export {copy, clear}_page functions alongside their definitions 2017-01-03 16:48:39 +01:00
page.c arch: mips: mm: page: Remove unused function 2018-06-24 09:27:27 -07:00
pgtable-32.c MIPS: Add partial 32-bit huge page support 2019-07-21 14:30:05 -07:00
pgtable-64.c MIPS: Add 48-bit VA space (and 4-level page tables) for 4K pages. 2017-04-10 11:56:06 +02:00
pgtable.c MIPS: Move pgd_alloc() out of header 2017-02-02 15:06:26 +00:00
sc-debugfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sc-ip22.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sc-mips.c MIPS: Ingenic: Fix bugs when detecting X1000's L2 cache. 2019-08-05 18:30:33 -07:00
sc-r5k.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sc-rm7k.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb-funcs.S MIPS: Consistently declare TLB functions 2018-08-10 17:27:53 -07:00
tlb-r3k.c MIPS: mm: Remove local_flush_tlb_mm() 2019-02-04 10:56:24 -08:00
tlb-r4k.c MIPS: MemoryMapID (MMID) Support 2019-02-04 10:56:41 -08:00
tlbex-fault.S MIPS: Add DWARF unwinding to assembly 2017-09-06 11:01:52 +02:00
tlbex.c MIPS: tlbex: Remove cpu_has_local_ebase 2019-09-03 14:20:54 +01:00
uasm-micromips.c mips: bpf: implement jitting of BPF_ALU | BPF_ARSH | BPF_X 2018-12-07 13:30:48 -08:00
uasm-mips.c MIPS: uasm: Add div, mul and sel instructions for mipsr6 2019-03-19 15:26:06 -07:00
uasm.c MIPS: uasm: Add div, mul and sel instructions for mipsr6 2019-03-19 15:26:06 -07:00