grub_dprintf ("loader", "Jumping to Linux...\n");
/* Boot the kernel. */
- asm volatile ("sethi %hi(grub_ieee1275_entry_fn), %o1\n"
- "ldx [%o1 + %lo(grub_ieee1275_entry_fn)], %o4\n"
- "sethi %hi(grub_ieee1275_original_stack), %o1\n"
- "ldx [%o1 + %lo(grub_ieee1275_original_stack)], %o6\n"
- "sethi %hi(linux_addr), %o1\n"
- "ldx [%o1 + %lo(linux_addr)], %o5\n"
- "mov %g0, %o0\n"
- "mov %g0, %o2\n"
- "mov %g0, %o3\n"
- "jmp %o5\n"
- "mov %g0, %o1\n");
+ asm volatile ("ldx %0, %%o4\n"
+ "ldx %1, %%o6\n"
+ "ldx %2, %%o5\n"
+ "mov %%g0, %%o0\n"
+ "mov %%g0, %%o2\n"
+ "mov %%g0, %%o3\n"
+ "jmp %%o5\n"
+ "mov %%g0, %%o1\n": :
+ "m"(grub_ieee1275_entry_fn),
+ "m"(grub_ieee1275_original_stack),
+ "m"(linux_addr));
return GRUB_ERR_NONE;
}