(grub_longjmp): Restore r31.
* include/grub/powerpc/setjmp.h (grub_jmp_buf): Reserve space for r31.
+2013-11-18 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/lib/powerpc/setjmp.S (grub_setjmp): Save r31.
+ (grub_longjmp): Restore r31.
+ * include/grub/powerpc/setjmp.h (grub_jmp_buf): Reserve space for r31.
+
2013-11-18 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkrescue.c (make_image_fwdisk_abs): Insert all partmap
stw 28, 60(3)
stw 29, 64(3)
stw 30, 68(3)
+ stw 31, 72(3)
mflr 4
- stw 4, 72(3)
- mfcr 4
stw 4, 76(3)
+ mfcr 4
+ stw 4, 80(3)
li 3, 0
blr
lwz 28, 60(3)
lwz 29, 64(3)
lwz 30, 68(3)
- lwz 5, 72(3)
- mtlr 5
+ lwz 31, 72(3)
lwz 5, 76(3)
+ mtlr 5
+ lwz 5, 80(3)
mtcr 5
mr. 3, 4
bne 1f
#ifndef GRUB_SETJMP_CPU_HEADER
#define GRUB_SETJMP_CPU_HEADER 1
-typedef unsigned long grub_jmp_buf[20];
+typedef unsigned long grub_jmp_buf[21];
int grub_setjmp (grub_jmp_buf env) RETURNS_TWICE;
void grub_longjmp (grub_jmp_buf env, int val) __attribute__ ((noreturn));