All pastes #506737 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-24 04:42 UTC
rendered paste body
static 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");
}