/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright 2014, Michael Ellerman, IBM Corp.
 */

#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
