rendered paste bodystatic void test_hv(void)
{
uint64_t i, j, fn;
int ret;
for (j = 8; j <= 63; j++)
{
printk(KERN_INFO "hhv: Testing from (j=%lu) 0x%lx to 0x%lx\n",
j, 1UL << j, (1UL << j) | 0xffff);
for (i = 0; i < 0xffff; i++)
{
fn = (1UL << j) | i;
__asm__ volatile("li %%r3, 0;\n" \
"li %%r4, 0;\n" \
"li %%r5, 0;\n" \
"li %%r6, 0;\n" \
"li %%r7, 0;\n" \
"li %%r8, 0;\n" \
"li %%r9, 0;\n" \
"li %%r10, 0;\n" \
"mr %%r11, %1;\n" \
"sc 1;\n" \
"extsw %%r3, %%r3;\n" \
"mr %0,%%r3;\n"
"nop;\n"
: "=r" (ret)
: "r" (fn)
: "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11");
if (ret != -20)
printk(KERN_INFO "hhv: Func %lu exists (%d)\n", fn, ret);
}
}
printk(KERN_INFO "hhv: END\n");
}