Staging
v0.8.1
https://github.com/torvalds/linux
Raw File
Tip revision: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab authored by Linus Torvalds on 27 November 2023, 03:59:33 UTC
Linux 6.7-rc3
Tip revision: 2cc14f5
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