arch/sparc/lib/Memcpy_utils.S

Source file repositories/reference/linux-study-clean/arch/sparc/lib/Memcpy_utils.S

File Facts

System
Linux kernel
Corpus path
arch/sparc/lib/Memcpy_utils.S
Extension
.S
Size
9694 bytes
Lines
355
Domain
Architecture Layer
Bucket
arch/sparc
Inferred role
Architecture Layer: arch/sparc
Status
atlas-only

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __ASM_MEMCPY_UTILS
#define __ASM_MEMCPY_UTILS

#include <linux/linkage.h>
#include <asm/asi.h>
#include <asm/visasm.h>

ENTRY(__restore_asi_fp)
	VISExitHalf
	retl
	 wr	%g0, ASI_AIUS, %asi
ENDPROC(__restore_asi_fp)

ENTRY(__restore_asi)
	retl
	 wr	%g0, ASI_AIUS, %asi
ENDPROC(__restore_asi)

ENTRY(memcpy_retl_o2)
	ba,pt	%xcc, __restore_asi
	 mov	%o2, %o0
ENDPROC(memcpy_retl_o2)
ENTRY(memcpy_retl_o2_plus_1)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 1, %o0
ENDPROC(memcpy_retl_o2_plus_1)
ENTRY(memcpy_retl_o2_plus_3)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 3, %o0
ENDPROC(memcpy_retl_o2_plus_3)
ENTRY(memcpy_retl_o2_plus_4)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 4, %o0
ENDPROC(memcpy_retl_o2_plus_4)
ENTRY(memcpy_retl_o2_plus_5)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 5, %o0
ENDPROC(memcpy_retl_o2_plus_5)
ENTRY(memcpy_retl_o2_plus_6)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 6, %o0
ENDPROC(memcpy_retl_o2_plus_6)
ENTRY(memcpy_retl_o2_plus_7)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 7, %o0
ENDPROC(memcpy_retl_o2_plus_7)
ENTRY(memcpy_retl_o2_plus_8)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 8, %o0
ENDPROC(memcpy_retl_o2_plus_8)
ENTRY(memcpy_retl_o2_plus_15)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 15, %o0
ENDPROC(memcpy_retl_o2_plus_15)
ENTRY(memcpy_retl_o2_plus_15_8)
	 add	%o2, 15, %o2
	ba,pt	%xcc, __restore_asi
	 add	%o2, 8, %o0
ENDPROC(memcpy_retl_o2_plus_15_8)
ENTRY(memcpy_retl_o2_plus_16)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 16, %o0
ENDPROC(memcpy_retl_o2_plus_16)
ENTRY(memcpy_retl_o2_plus_24)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 24, %o0
ENDPROC(memcpy_retl_o2_plus_24)
ENTRY(memcpy_retl_o2_plus_31)
	ba,pt	%xcc, __restore_asi
	 add	%o2, 31, %o0

Annotation

Implementation Notes