OSDN Git Service

selftests/powerpc: Move core_busy_loop() into asm
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 23 Jul 2014 07:31:33 +0000 (17:31 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 28 Jul 2014 04:11:29 +0000 (14:11 +1000)
commit6873def90016cc1cde03c38e10a80146d980b48a
treecb09eb8cd3d070889e7df20ae259210afe4afba5
parent6861b44aa0403033f6a4af128980e018e78c3fc3
selftests/powerpc: Move core_busy_loop() into asm

There is at least one bug in core_busy_loop(), we use r0, but it's
not in the clobber list. We were getting away with this it seems but
that was luck.

It's also fishy to be touching the stack, even if we do it below the
stack pointer. It seems we get away with it, but looking at the
generated code that may just be luck.

So move it into assembler, do all the stack handling by hand. We create
a stack frame to save the non-volatiles in, so we can muck around with
them.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
tools/testing/selftests/powerpc/pmu/ebb/Makefile
tools/testing/selftests/powerpc/pmu/ebb/busy_loop.S [new file with mode: 0644]
tools/testing/selftests/powerpc/pmu/ebb/ebb.c
tools/testing/selftests/powerpc/pmu/ebb/ebb.h