arch/sparc/kernel/una_asm_64.S

Source file repositories/reference/linux-study-clean/arch/sparc/kernel/una_asm_64.S

File Facts

System
Linux kernel
Corpus path
arch/sparc/kernel/una_asm_64.S
Extension
.S
Size
3122 bytes
Lines
148
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

.text

	.globl	__do_int_store
__do_int_store:
	rd	%asi, %o4
	wr	%o3, 0, %asi
	mov	%o2, %g3
	cmp	%o1, 2
	be,pn	%icc, 2f
	 cmp	%o1, 4
	be,pt	%icc, 1f
	 srlx	%g3, 24, %g2
	srlx	%g3, 56, %g1
	srlx	%g3, 48, %g7
4:	stba	%g1, [%o0] %asi
	srlx	%g3, 40, %g1
5:	stba	%g7, [%o0 + 1] %asi
	srlx	%g3, 32, %g7
6:	stba	%g1, [%o0 + 2] %asi
7:	stba	%g7, [%o0 + 3] %asi
	srlx	%g3, 16, %g1
8:	stba	%g2, [%o0 + 4] %asi
	srlx	%g3, 8, %g7
9:	stba	%g1, [%o0 + 5] %asi
10:	stba	%g7, [%o0 + 6] %asi
	ba,pt	%xcc, 0f
11:	 stba	%g3, [%o0 + 7] %asi
1:	srl	%g3, 16, %g7
12:	stba	%g2, [%o0] %asi
	srl	%g3, 8, %g2
13:	stba	%g7, [%o0 + 1] %asi
14:	stba	%g2, [%o0 + 2] %asi
	ba,pt	%xcc, 0f
15:	 stba	%g3, [%o0 + 3] %asi
2:	srl	%g3, 8, %g2
16:	stba	%g2, [%o0] %asi
17:	stba	%g3, [%o0 + 1] %asi
0:
	wr	%o4, 0x0, %asi
	retl
	 mov	0, %o0
	.size	__do_int_store, .-__do_int_store

	.section	__ex_table,"a"
	.word		4b, __retl_efault
	.word		5b, __retl_efault
	.word		6b, __retl_efault
	.word		7b, __retl_efault
	.word		8b, __retl_efault
	.word		9b, __retl_efault
	.word		10b, __retl_efault
	.word		11b, __retl_efault
	.word		12b, __retl_efault
	.word		13b, __retl_efault
	.word		14b, __retl_efault
	.word		15b, __retl_efault
	.word		16b, __retl_efault
	.word		17b, __retl_efault
	.previous

	.globl	do_int_load
do_int_load:
	rd	%asi, %o5
	wr	%o4, 0, %asi
	cmp	%o1, 8
	bge,pn	%icc, 9f
	 cmp	%o1, 4
	be,pt	%icc, 6f
4:	 lduba	[%o2] %asi, %g2
5:	lduba	[%o2 + 1] %asi, %g3

Annotation

Implementation Notes