Staging
v0.8.1
https://github.com/torvalds/linux
Raw File
Tip revision: fdf0eaf11452d72945af31804e2a1048ee1b574c authored by Linus Torvalds on 16 July 2023, 22:10:37 UTC
Linux 6.5-rc2
Tip revision: fdf0eaf
loop.S
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright 2013, Michael Ellerman, IBM Corp.
 */

#include <ppc-asm.h>

	.text

FUNC_START(thirty_two_instruction_loop)
	cmpdi	r3,0
	beqlr
	addi	r4,r3,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1
	addi	r4,r4,1	# 28 addi's
	subi	r3,r3,1
	b	FUNC_NAME(thirty_two_instruction_loop)
FUNC_END(thirty_two_instruction_loop)

FUNC_START(thirty_two_instruction_loop_with_ll_sc)
	cmpdi	r3,0
	beqlr
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1		# 5
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
1:	ldarx	r6,0,r4		# 10
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1		# 15
	addi	r5,r5,1
	addi	r5,r5,1
	stdcx.	r6,0,r4
	bne-	1b
	addi	r5,r5,1		# 20
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1		# 25
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1
	addi	r5,r5,1		# 30
	subi	r3,r3,1
	b	FUNC_NAME(thirty_two_instruction_loop_with_ll_sc)
FUNC_END(thirty_two_instruction_loop_with_ll_sc)
back to top