diff --git a/sys/powerpc/powerpc/swtch32.S b/sys/powerpc/powerpc/swtch32.S index 12b1bc03a399..e8394625bcf5 100644 --- a/sys/powerpc/powerpc/swtch32.S +++ b/sys/powerpc/powerpc/swtch32.S @@ -187,6 +187,8 @@ ENTRY(savectx) stmw %r12,PCB_CONTEXT(%r3) /* Save the non-volatile GP regs */ mfcr %r4 /* Save the condition register */ stw %r4,PCB_CR(%r3) + mflr %r4 /* Save the link register */ + stw %r4,PCB_LR(%r3) blr /* diff --git a/sys/powerpc/powerpc/swtch64.S b/sys/powerpc/powerpc/swtch64.S index b785281b2888..d2f686372b1d 100644 --- a/sys/powerpc/powerpc/swtch64.S +++ b/sys/powerpc/powerpc/swtch64.S @@ -255,6 +255,8 @@ ENTRY(savectx) mfcr %r4 /* Save the condition register */ std %r4,PCB_CR(%r3) std %r2,PCB_TOC(%r3) /* Save the TOC pointer */ + mflr %r4 /* Save the link register */ + std %r4,PCB_LR(%r3) blr /*