diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-23 00:40:54 +0000 |
commit | 529c593ece216e4aaffd36bd940cb94f1fa63129 (patch) | |
tree | 78f1c0b805f5656aa7b0417a043c5346f700a2cf /arch/ia64/lib/flush.S | |
parent | 0bd079751d25808d1972baee5c4eaa1db2227257 (diff) |
Merge with 2.3.43. I did ignore all modifications to the qlogicisp.c
driver due to the Origin A64 hacks.
Diffstat (limited to 'arch/ia64/lib/flush.S')
-rw-r--r-- | arch/ia64/lib/flush.S | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/ia64/lib/flush.S b/arch/ia64/lib/flush.S new file mode 100644 index 000000000..0195ae5f5 --- /dev/null +++ b/arch/ia64/lib/flush.S @@ -0,0 +1,37 @@ +/* + * Cache flushing routines. + * + * Copyright (C) 1999 Hewlett-Packard Co + * Copyright (C) 1999 David Mosberger-Tang <davidm@hpl.hp.com> + */ +#include <asm/page.h> + + .text + .psr abi64 + .psr lsb + .lsb + + .align 16 + .global ia64_flush_icache_page + .proc ia64_flush_icache_page +ia64_flush_icache_page: + alloc r2=ar.pfs,1,0,0,0 + mov r3=ar.lc // save ar.lc + mov r8=PAGE_SIZE/64-1 // repeat/until loop + ;; + mov ar.lc=r8 + add r8=32,in0 + ;; +.Loop1: fc in0 // issuable on M0 only + add in0=64,in0 + fc r8 + add r8=64,r8 + br.cloop.sptk.few .Loop1 + ;; + sync.i + ;; + srlz.i + ;; + mov ar.lc=r3 // restore ar.lc + br.ret.sptk.few rp + .endp ia64_flush_icache_page |