tbl = mfspr(SPRN_ATBL);
tbu1 = mfspr(SPRN_ATBU);
} else {
- __asm__ __volatile__("mftbu %0" : "=r"(tbu0));
- __asm__ __volatile__("mftb %0" : "=r"(tbl) );
- __asm__ __volatile__("mftbu %0" : "=r"(tbu1));
+ tbu0 = mfspr(SPRN_TBRU);
+ tbl = mfspr(SPRN_TBRL);
+ tbu1 = mfspr(SPRN_TBRU);
}
} while (tbu0 != tbu1);
pid = fork();
if (!pid)
atb_child();
- else {
+ else if (pid != -1) {
int status;
- wait(&status);
- if (!WIFEXITED(status))
+ pid = wait(&status);
+ if (pid == -1 || !WIFEXITED(status))
arch_flags &= ~ARCH_FLAG_1;
else
arch_flags |= ARCH_FLAG_1;