From f40842d9b2abcc604316b966f3bb7d9f8c456c2e Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Wed, 26 May 2021 17:44:19 +1000 Subject: [PATCH] tests/fpu: Test FPU unavailable interrupt following a load This adds a load before a floating-point load which should generate a floating-point unavailable interrupt, to test for the bug where unavailability interrupts can get dropped while loadstore1 is executing instructions. Signed-off-by: Paul Mackerras --- tests/fpu/fpu.c | 4 +++- tests/test_fpu.bin | Bin 30416 -> 30416 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/fpu/fpu.c b/tests/fpu/fpu.c index 52f21d0..500e92d 100644 --- a/tests/fpu/fpu.c +++ b/tests/fpu/fpu.c @@ -106,9 +106,11 @@ int fooiw; int do_fp_op(long arg) { + unsigned long tmp; + switch (arg) { case 0: - asm("lfd 31,0(%0)" : : "b" (&foo)); + asm("ld %0,0(%1); lfd 31,0(%1)" : "=&r" (tmp) : "b" (&foo)); break; case 1: asm("stfd 31,0(%0)" : : "b" (&foow) : "memory"); diff --git a/tests/test_fpu.bin b/tests/test_fpu.bin index 50831cb20db40951fb7b0e508677cfddb62e46c6..dee8fbd85688699b9adc077133670fe8eea299ae 100755 GIT binary patch delta 5591 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 delta 5594 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