diff options
Diffstat (limited to 'jmp.S')
-rw-r--r-- | jmp.S | 60 |
1 files changed, 60 insertions, 0 deletions
@@ -175,6 +175,66 @@ DEFUN(jmp_restore) mov r0, r1 bx r3 +#elif __PPC64__ + +DEFUN(jmp_save) + mflr %r11 + mfcr %r12 + std %r1, 0(%r3) + std %r2, 8(%r3) + std %r11, 16(%r3) + std %r12, 24(%r3) + std %r13, 32(%r3) + std %r14, 40(%r3) + std %r15, 48(%r3) + std %r16, 56(%r3) + std %r17, 64(%r3) + std %r18, 72(%r3) + std %r19, 80(%r3) + std %r20, 88(%r3) + std %r21, 96(%r3) + std %r22, 104(%r3) + std %r23, 112(%r3) + std %r24, 120(%r3) + std %r25, 128(%r3) + std %r26, 136(%r3) + std %r27, 144(%r3) + std %r28, 152(%r3) + std %r29, 160(%r3) + std %r30, 168(%r3) + std %r31, 176(%r3) + li %r3, 0 + blr + +DEFUN(jmp_restore) + ld %r31, 176(%r3) + ld %r30, 168(%r3) + ld %r29, 160(%r3) + ld %r28, 152(%r3) + ld %r27, 144(%r3) + ld %r26, 136(%r3) + ld %r25, 128(%r3) + ld %r24, 120(%r3) + ld %r23, 112(%r3) + ld %r22, 104(%r3) + ld %r21, 96(%r3) + ld %r20, 88(%r3) + ld %r17, 64(%r3) + ld %r19, 80(%r3) + ld %r18, 72(%r3) + ld %r16, 56(%r3) + ld %r15, 48(%r3) + ld %r14, 40(%r3) + ld %r13, 32(%r3) + ld %r12, 24(%r3) + ld %r11, 16(%r3) + ld %r2, 8(%r3) + ld %r1, 0(%r3) + mtcr %r12 + mtlr %r11 + mr %r3, %r4 + blr + #else #error port me! #endif |