| /* 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) |