diff --git a/lldb/test/Shell/Register/Core/Inputs/aarch64-freebsd-multithread.core b/lldb/test/Shell/Register/Core/Inputs/aarch64-freebsd-multithread.core new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@ +#include +#include +#include + +std::atomic_int start_counter{3}; + +void pseudobarrier_wait() { + start_counter--; + while (start_counter > 0); +} + +void fcommon(uint32_t a, uint32_t b, uint32_t c, uint32_t d, double fa, double fb, double fc, double fd, bool segv) { + if (segv) { + int *foo = nullptr; + *foo = 0; + } + while (1); +} + +void f1() { + volatile uint32_t a = 0x01010101; + volatile uint32_t b = 0x02020202; + volatile uint32_t c = 0x03030303; + volatile uint32_t d = 0x04040404; + volatile double fa = 2.0; + volatile double fb = 4.0; + volatile double fc = 8.0; + volatile double fd = 16.0; + + pseudobarrier_wait(); + std::this_thread::sleep_for(std::chrono::milliseconds(200)); + fcommon(a, b, c, d, fa, fb, fc, fd, true); +} + +void f2() { + volatile uint32_t a = 0x11111111; + volatile uint32_t b = 0x12121212; + volatile uint32_t c = 0x13131313; + volatile uint32_t d = 0x14141414; + volatile double fa = 3.0; + volatile double fb = 6.0; + volatile double fc = 9.0; + volatile double fd = 12.0; + + pseudobarrier_wait(); + fcommon(a, b, c, d, fa, fb, fc, fd, false); +} + +void f3() { + volatile uint32_t a = 0x21212121; + volatile uint32_t b = 0x22222222; + volatile uint32_t c = 0x23232323; + volatile uint32_t d = 0x24242424; + volatile double fa = 5.0; + volatile double fb = 10.0; + volatile double fc = 15.0; + volatile double fd = 20.0; + + pseudobarrier_wait(); + fcommon(a, b, c, d, fa, fb, fc, fd, false); +} + +int main() { + std::thread t1{f1}; + std::thread t2{f2}; + std::thread t3{f3}; + + t3.join(); + t2.join(); + t1.join(); + + return 0; +} diff --git a/lldb/test/Shell/Register/Core/Inputs/x86-32-freebsd-multithread.core b/lldb/test/Shell/Register/Core/Inputs/x86-32-freebsd-multithread.core new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@