Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879/* 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,11: 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)