diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2014-06-10 08:23:07 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-06-11 03:03:45 -0400 |
commit | 0a6121cf337d8f5183ef1f8a8bca0734f14f4bb1 (patch) | |
tree | fd47c9217937ea385476d5a63f0eb3bb98905b1a /tools | |
parent | 3df48c981d5a9610e02e9270b1bc4274fb536710 (diff) |
selftests/powerpc: Fix instruction loop for ABIv2 (LE)
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/powerpc/pmu/loop.S | 73 |
1 files changed, 35 insertions, 38 deletions
diff --git a/tools/testing/selftests/powerpc/pmu/loop.S b/tools/testing/selftests/powerpc/pmu/loop.S index 8820e3df1444..20c1f0876c47 100644 --- a/tools/testing/selftests/powerpc/pmu/loop.S +++ b/tools/testing/selftests/powerpc/pmu/loop.S | |||
@@ -3,44 +3,41 @@ | |||
3 | * Licensed under GPLv2. | 3 | * Licensed under GPLv2. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <ppc-asm.h> | ||
7 | |||
6 | .text | 8 | .text |
7 | 9 | ||
8 | .global thirty_two_instruction_loop | 10 | FUNC_START(thirty_two_instruction_loop) |
9 | .type .thirty_two_instruction_loop,@function | 11 | cmpdi r3,0 |
10 | .section ".opd","aw",@progbits | ||
11 | thirty_two_instruction_loop: | ||
12 | .quad .thirty_two_instruction_loop, .TOC.@tocbase, 0 | ||
13 | .previous | ||
14 | .thirty_two_instruction_loop: | ||
15 | cmpwi %r3,0 | ||
16 | beqlr | 12 | beqlr |
17 | addi %r4,%r3,1 | 13 | addi r4,r3,1 |
18 | addi %r4,%r4,1 | 14 | addi r4,r4,1 |
19 | addi %r4,%r4,1 | 15 | addi r4,r4,1 |
20 | addi %r4,%r4,1 | 16 | addi r4,r4,1 |
21 | addi %r4,%r4,1 | 17 | addi r4,r4,1 |
22 | addi %r4,%r4,1 | 18 | addi r4,r4,1 |
23 | addi %r4,%r4,1 | 19 | addi r4,r4,1 |
24 | addi %r4,%r4,1 | 20 | addi r4,r4,1 |
25 | addi %r4,%r4,1 | 21 | addi r4,r4,1 |
26 | addi %r4,%r4,1 | 22 | addi r4,r4,1 |
27 | addi %r4,%r4,1 | 23 | addi r4,r4,1 |
28 | addi %r4,%r4,1 | 24 | addi r4,r4,1 |
29 | addi %r4,%r4,1 | 25 | addi r4,r4,1 |
30 | addi %r4,%r4,1 | 26 | addi r4,r4,1 |
31 | addi %r4,%r4,1 | 27 | addi r4,r4,1 |
32 | addi %r4,%r4,1 | 28 | addi r4,r4,1 |
33 | addi %r4,%r4,1 | 29 | addi r4,r4,1 |
34 | addi %r4,%r4,1 | 30 | addi r4,r4,1 |
35 | addi %r4,%r4,1 | 31 | addi r4,r4,1 |
36 | addi %r4,%r4,1 | 32 | addi r4,r4,1 |
37 | addi %r4,%r4,1 | 33 | addi r4,r4,1 |
38 | addi %r4,%r4,1 | 34 | addi r4,r4,1 |
39 | addi %r4,%r4,1 | 35 | addi r4,r4,1 |
40 | addi %r4,%r4,1 | 36 | addi r4,r4,1 |
41 | addi %r4,%r4,1 | 37 | addi r4,r4,1 |
42 | addi %r4,%r4,1 | 38 | addi r4,r4,1 |
43 | addi %r4,%r4,1 | 39 | addi r4,r4,1 |
44 | addi %r4,%r4,1 # 28 addi's | 40 | addi r4,r4,1 # 28 addi's |
45 | subi %r3,%r3,1 | 41 | subi r3,r3,1 |
46 | b .thirty_two_instruction_loop | 42 | b FUNC_NAME(thirty_two_instruction_loop) |
43 | FUNC_END(thirty_two_instruction_loop) | ||