X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=loadcpu.c;h=68e04291905f21426c0c67579f1904da96bb9881;hp=ca39f7f62b97bef962305457dff00619fc38d493;hb=f7bd9b51138dbccb7cc2fd27f07ef66d5d2d79cf;hpb=6a4401aa1b7662df406f0751b5f6437cf8325579 diff --git a/loadcpu.c b/loadcpu.c index ca39f7f..68e0429 100644 --- a/loadcpu.c +++ b/loadcpu.c @@ -4,6 +4,31 @@ #include #include +static void *spin_snb(void *uu) +{ + char __attribute__((aligned(32))) m[2][32]; + + asm("vpxor %%xmm1, %%xmm1, %%xmm1;\n" + "vpxor %%xmm2, %%xmm2, %%xmm2;\n" + "0:\n" + "vmovaps (%0), %%ymm0;\n" + "vmovaps %%ymm1, (%1);\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "vmovaps (%0), %%ymm0;\n" + "vmovaps %%xmm1, (%1);\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "vmovaps (%0), %%ymm0;\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "jmp 0b;\n" + : + : "r" (&m[0]), "r" (&m[1]) + : "rax", "rcx"); + abort(); +} + static void *spin(void *uu) { while(1) {