Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/arm/lib/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  copy_page.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *  linux/arch/arm/lib/copypage.S
 *
 *  Copyright (C) 1995-1999 Russell King
 *
 *  ASM optimised string functions
 */

#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h>
#include <asm/cache.h>

#define COPY_COUNT (PAGE_SZ / (2 * L1_CACHE_BYTES) PLD( -1 ))

  .text
  .align 5
/*
 * StrongARM optimised copy_page routine
 * now 1.78bytes/cycle, was 1.60 bytes/cycle (50MHz bus -> 89MB/s)
 * Note that we probably achieve closer to the 100MB/s target with
 * the core clock switching.
 */

ENTRY(copy_page)
  stmfd sp!, {r4, lr} @ 2
 PLD( pld [r1, #0]  )
 PLD( pld [r1, #L1_CACHE_BYTES]  )
  mov r2, #COPY_COUNT   @ 1
  ldmia r1!, {r3, r4, ip, lr} @ 4+1
1: PLD( pld [r1, #2 * L1_CACHE_BYTES])
 PLD( pld [r1, #3 * L1_CACHE_BYTES])
2:
 .rept (2 * L1_CACHE_BYTES / 16 - 1)
  stmia r0!, {r3, r4, ip, lr} @ 4
  ldmia r1!, {r3, r4, ip, lr} @ 4
 .endr
  subs r2, r2, #1   @ 1
  stmia r0!, {r3, r4, ip, lr} @ 4
  ldmiagt r1!, {r3, r4, ip, lr} @ 4
  bgt 1b    @ 1
 PLD( ldmiaeq r1!, {r3, r4, ip, lr} )
 PLD( beq 2b   )
  ldmfd sp!, {r4, pc} @ 3
ENDPROC(copy_page)

Messung V0.5
C=77 H=100 G=89

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.