Carrying between the halves
Adding two 64-bit integers is the grade-school algorithm: add the low halves, and if that overflows, carry the 1 into the high halves. PowerPC has a dedicated instruction pair for exactly this:
addc r4, r4, r6 # low: r4 = a_lo + b_lo, set carry bit
adde r3, r3, r5 # high: r3 = a_hi + b_hi + carry
blr
With a in r3:r4 and b in r5:r6, the addc ("add carrying") sums the low words r4 + r6 and stashes any overflow in the carry bit. Then adde ("add extended") sums the high words r3 + r5 and folds in that carry. The result lands back in the r3:r4 pair, ready to return.
This addc/adde duo is the single most recognizable 64-bit signature. Whenever you see an adde reading the carry from a preceding addc on the neighbouring register, you're almost certainly looking at long long arithmetic.
Your task
Write add_64 to match the target.