1 /* SPDX-License-Identifier: GPL-2.0-only */ 1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 2 /* 3 * Copyright 2013, Michael Ellerman, IBM Corp. 3 * Copyright 2013, Michael Ellerman, IBM Corp. 4 */ 4 */ 5 5 6 #include <ppc-asm.h> 6 #include <ppc-asm.h> 7 7 8 .text 8 .text 9 9 10 FUNC_START(thirty_two_instruction_loop) 10 FUNC_START(thirty_two_instruction_loop) 11 cmpdi r3,0 11 cmpdi r3,0 12 beqlr 12 beqlr 13 addi r4,r3,1 13 addi r4,r3,1 14 addi r4,r4,1 14 addi r4,r4,1 15 addi r4,r4,1 15 addi r4,r4,1 16 addi r4,r4,1 16 addi r4,r4,1 17 addi r4,r4,1 17 addi r4,r4,1 18 addi r4,r4,1 18 addi r4,r4,1 19 addi r4,r4,1 19 addi r4,r4,1 20 addi r4,r4,1 20 addi r4,r4,1 21 addi r4,r4,1 21 addi r4,r4,1 22 addi r4,r4,1 22 addi r4,r4,1 23 addi r4,r4,1 23 addi r4,r4,1 24 addi r4,r4,1 24 addi r4,r4,1 25 addi r4,r4,1 25 addi r4,r4,1 26 addi r4,r4,1 26 addi r4,r4,1 27 addi r4,r4,1 27 addi r4,r4,1 28 addi r4,r4,1 28 addi r4,r4,1 29 addi r4,r4,1 29 addi r4,r4,1 30 addi r4,r4,1 30 addi r4,r4,1 31 addi r4,r4,1 31 addi r4,r4,1 32 addi r4,r4,1 32 addi r4,r4,1 33 addi r4,r4,1 33 addi r4,r4,1 34 addi r4,r4,1 34 addi r4,r4,1 35 addi r4,r4,1 35 addi r4,r4,1 36 addi r4,r4,1 36 addi r4,r4,1 37 addi r4,r4,1 37 addi r4,r4,1 38 addi r4,r4,1 38 addi r4,r4,1 39 addi r4,r4,1 39 addi r4,r4,1 40 addi r4,r4,1 # 28 addi's 40 addi r4,r4,1 # 28 addi's 41 subi r3,r3,1 41 subi r3,r3,1 42 b FUNC_NAME(thirty_two_instructi 42 b FUNC_NAME(thirty_two_instruction_loop) 43 FUNC_END(thirty_two_instruction_loop) 43 FUNC_END(thirty_two_instruction_loop) 44 44 45 FUNC_START(thirty_two_instruction_loop_with_ll 45 FUNC_START(thirty_two_instruction_loop_with_ll_sc) 46 cmpdi r3,0 46 cmpdi r3,0 47 beqlr 47 beqlr 48 addi r5,r5,1 48 addi r5,r5,1 49 addi r5,r5,1 49 addi r5,r5,1 50 addi r5,r5,1 # 5 50 addi r5,r5,1 # 5 51 addi r5,r5,1 51 addi r5,r5,1 52 addi r5,r5,1 52 addi r5,r5,1 53 addi r5,r5,1 53 addi r5,r5,1 54 addi r5,r5,1 54 addi r5,r5,1 55 1: ldarx r6,0,r4 # 10 55 1: ldarx r6,0,r4 # 10 56 addi r5,r5,1 56 addi r5,r5,1 57 addi r5,r5,1 57 addi r5,r5,1 58 addi r5,r5,1 58 addi r5,r5,1 59 addi r5,r5,1 59 addi r5,r5,1 60 addi r5,r5,1 # 15 60 addi r5,r5,1 # 15 61 addi r5,r5,1 61 addi r5,r5,1 62 addi r5,r5,1 62 addi r5,r5,1 63 stdcx. r6,0,r4 63 stdcx. r6,0,r4 64 bne- 1b 64 bne- 1b 65 addi r5,r5,1 # 20 65 addi r5,r5,1 # 20 66 addi r5,r5,1 66 addi r5,r5,1 67 addi r5,r5,1 67 addi r5,r5,1 68 addi r5,r5,1 68 addi r5,r5,1 69 addi r5,r5,1 69 addi r5,r5,1 70 addi r5,r5,1 # 25 70 addi r5,r5,1 # 25 71 addi r5,r5,1 71 addi r5,r5,1 72 addi r5,r5,1 72 addi r5,r5,1 73 addi r5,r5,1 73 addi r5,r5,1 74 addi r5,r5,1 74 addi r5,r5,1 75 addi r5,r5,1 # 30 75 addi r5,r5,1 # 30 76 subi r3,r3,1 76 subi r3,r3,1 77 b FUNC_NAME(thirty_two_instructi 77 b FUNC_NAME(thirty_two_instruction_loop_with_ll_sc) 78 FUNC_END(thirty_two_instruction_loop_with_ll_s 78 FUNC_END(thirty_two_instruction_loop_with_ll_sc)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.