aboutsummaryrefslogtreecommitdiff
path: root/powerpc/pmu/ebb/busy_loop.S
diff options
context:
space:
mode:
Diffstat (limited to 'powerpc/pmu/ebb/busy_loop.S')
-rw-r--r--powerpc/pmu/ebb/busy_loop.S271
1 files changed, 0 insertions, 271 deletions
diff --git a/powerpc/pmu/ebb/busy_loop.S b/powerpc/pmu/ebb/busy_loop.S
deleted file mode 100644
index c7e4093..0000000
--- a/powerpc/pmu/ebb/busy_loop.S
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Copyright 2014, Michael Ellerman, IBM Corp.
- * Licensed under GPLv2.
- */
-
-#include <ppc-asm.h>
-
- .text
-
-FUNC_START(core_busy_loop)
- stdu %r1, -168(%r1)
- std r14, 160(%r1)
- std r15, 152(%r1)
- std r16, 144(%r1)
- std r17, 136(%r1)
- std r18, 128(%r1)
- std r19, 120(%r1)
- std r20, 112(%r1)
- std r21, 104(%r1)
- std r22, 96(%r1)
- std r23, 88(%r1)
- std r24, 80(%r1)
- std r25, 72(%r1)
- std r26, 64(%r1)
- std r27, 56(%r1)
- std r28, 48(%r1)
- std r29, 40(%r1)
- std r30, 32(%r1)
- std r31, 24(%r1)
-
- li r3, 0x3030
- std r3, -96(%r1)
- li r4, 0x4040
- std r4, -104(%r1)
- li r5, 0x5050
- std r5, -112(%r1)
- li r6, 0x6060
- std r6, -120(%r1)
- li r7, 0x7070
- std r7, -128(%r1)
- li r8, 0x0808
- std r8, -136(%r1)
- li r9, 0x0909
- std r9, -144(%r1)
- li r10, 0x1010
- std r10, -152(%r1)
- li r11, 0x1111
- std r11, -160(%r1)
- li r14, 0x1414
- std r14, -168(%r1)
- li r15, 0x1515
- std r15, -176(%r1)
- li r16, 0x1616
- std r16, -184(%r1)
- li r17, 0x1717
- std r17, -192(%r1)
- li r18, 0x1818
- std r18, -200(%r1)
- li r19, 0x1919
- std r19, -208(%r1)
- li r20, 0x2020
- std r20, -216(%r1)
- li r21, 0x2121
- std r21, -224(%r1)
- li r22, 0x2222
- std r22, -232(%r1)
- li r23, 0x2323
- std r23, -240(%r1)
- li r24, 0x2424
- std r24, -248(%r1)
- li r25, 0x2525
- std r25, -256(%r1)
- li r26, 0x2626
- std r26, -264(%r1)
- li r27, 0x2727
- std r27, -272(%r1)
- li r28, 0x2828
- std r28, -280(%r1)
- li r29, 0x2929
- std r29, -288(%r1)
- li r30, 0x3030
- li r31, 0x3131
-
- li r3, 0
-0: addi r3, r3, 1
- cmpwi r3, 100
- blt 0b
-
- /* Return 1 (fail) unless we get through all the checks */
- li r3, 1
-
- /* Check none of our registers have been corrupted */
- cmpwi r4, 0x4040
- bne 1f
- cmpwi r5, 0x5050
- bne 1f
- cmpwi r6, 0x6060
- bne 1f
- cmpwi r7, 0x7070
- bne 1f
- cmpwi r8, 0x0808
- bne 1f
- cmpwi r9, 0x0909
- bne 1f
- cmpwi r10, 0x1010
- bne 1f
- cmpwi r11, 0x1111
- bne 1f
- cmpwi r14, 0x1414
- bne 1f
- cmpwi r15, 0x1515
- bne 1f
- cmpwi r16, 0x1616
- bne 1f
- cmpwi r17, 0x1717
- bne 1f
- cmpwi r18, 0x1818
- bne 1f
- cmpwi r19, 0x1919
- bne 1f
- cmpwi r20, 0x2020
- bne 1f
- cmpwi r21, 0x2121
- bne 1f
- cmpwi r22, 0x2222
- bne 1f
- cmpwi r23, 0x2323
- bne 1f
- cmpwi r24, 0x2424
- bne 1f
- cmpwi r25, 0x2525
- bne 1f
- cmpwi r26, 0x2626
- bne 1f
- cmpwi r27, 0x2727
- bne 1f
- cmpwi r28, 0x2828
- bne 1f
- cmpwi r29, 0x2929
- bne 1f
- cmpwi r30, 0x3030
- bne 1f
- cmpwi r31, 0x3131
- bne 1f
-
- /* Load junk into all our registers before we reload them from the stack. */
- li r3, 0xde
- li r4, 0xad
- li r5, 0xbe
- li r6, 0xef
- li r7, 0xde
- li r8, 0xad
- li r9, 0xbe
- li r10, 0xef
- li r11, 0xde
- li r14, 0xad
- li r15, 0xbe
- li r16, 0xef
- li r17, 0xde
- li r18, 0xad
- li r19, 0xbe
- li r20, 0xef
- li r21, 0xde
- li r22, 0xad
- li r23, 0xbe
- li r24, 0xef
- li r25, 0xde
- li r26, 0xad
- li r27, 0xbe
- li r28, 0xef
- li r29, 0xdd
-
- ld r3, -96(%r1)
- cmpwi r3, 0x3030
- bne 1f
- ld r4, -104(%r1)
- cmpwi r4, 0x4040
- bne 1f
- ld r5, -112(%r1)
- cmpwi r5, 0x5050
- bne 1f
- ld r6, -120(%r1)
- cmpwi r6, 0x6060
- bne 1f
- ld r7, -128(%r1)
- cmpwi r7, 0x7070
- bne 1f
- ld r8, -136(%r1)
- cmpwi r8, 0x0808
- bne 1f
- ld r9, -144(%r1)
- cmpwi r9, 0x0909
- bne 1f
- ld r10, -152(%r1)
- cmpwi r10, 0x1010
- bne 1f
- ld r11, -160(%r1)
- cmpwi r11, 0x1111
- bne 1f
- ld r14, -168(%r1)
- cmpwi r14, 0x1414
- bne 1f
- ld r15, -176(%r1)
- cmpwi r15, 0x1515
- bne 1f
- ld r16, -184(%r1)
- cmpwi r16, 0x1616
- bne 1f
- ld r17, -192(%r1)
- cmpwi r17, 0x1717
- bne 1f
- ld r18, -200(%r1)
- cmpwi r18, 0x1818
- bne 1f
- ld r19, -208(%r1)
- cmpwi r19, 0x1919
- bne 1f
- ld r20, -216(%r1)
- cmpwi r20, 0x2020
- bne 1f
- ld r21, -224(%r1)
- cmpwi r21, 0x2121
- bne 1f
- ld r22, -232(%r1)
- cmpwi r22, 0x2222
- bne 1f
- ld r23, -240(%r1)
- cmpwi r23, 0x2323
- bne 1f
- ld r24, -248(%r1)
- cmpwi r24, 0x2424
- bne 1f
- ld r25, -256(%r1)
- cmpwi r25, 0x2525
- bne 1f
- ld r26, -264(%r1)
- cmpwi r26, 0x2626
- bne 1f
- ld r27, -272(%r1)
- cmpwi r27, 0x2727
- bne 1f
- ld r28, -280(%r1)
- cmpwi r28, 0x2828
- bne 1f
- ld r29, -288(%r1)
- cmpwi r29, 0x2929
- bne 1f
-
- /* Load 0 (success) to return */
- li r3, 0
-
-1: ld r14, 160(%r1)
- ld r15, 152(%r1)
- ld r16, 144(%r1)
- ld r17, 136(%r1)
- ld r18, 128(%r1)
- ld r19, 120(%r1)
- ld r20, 112(%r1)
- ld r21, 104(%r1)
- ld r22, 96(%r1)
- ld r23, 88(%r1)
- ld r24, 80(%r1)
- ld r25, 72(%r1)
- ld r26, 64(%r1)
- ld r27, 56(%r1)
- ld r28, 48(%r1)
- ld r29, 40(%r1)
- ld r30, 32(%r1)
- ld r31, 24(%r1)
- addi %r1, %r1, 168
- blr