fix powerpc setjmp/longjmp to save/restore float regs; enlarge/align jmp_buf

This commit is contained in:
Rich Felker 2012-11-23 14:30:58 -05:00
parent 0375c68fe7
commit a50136dfe1
3 changed files with 37 additions and 1 deletions

View File

@ -1 +1 @@
typedef unsigned long jmp_buf [64];
typedef unsigned long long jmp_buf [56];

View File

@ -35,6 +35,24 @@ longjmp:
lwz 29, 72(3)
lwz 30, 76(3)
lwz 31, 80(3)
lfd 14,88(3)
lfd 15,96(3)
lfd 16,104(3)
lfd 17,112(3)
lfd 18,120(3)
lfd 19,128(3)
lfd 20,136(3)
lfd 21,144(3)
lfd 22,152(3)
lfd 23,160(3)
lfd 24,168(3)
lfd 25,176(3)
lfd 26,184(3)
lfd 27,192(3)
lfd 28,200(3)
lfd 29,208(3)
lfd 30,216(3)
lfd 31,224(3)
#5) put val into return reg r3
mr 3, 4

View File

@ -34,6 +34,24 @@ setjmp:
stw 29, 72(3)
stw 30, 76(3)
stw 31, 80(3)
stfd 14,88(3)
stfd 15,96(3)
stfd 16,104(3)
stfd 17,112(3)
stfd 18,120(3)
stfd 19,128(3)
stfd 20,136(3)
stfd 21,144(3)
stfd 22,152(3)
stfd 23,160(3)
stfd 24,168(3)
stfd 25,176(3)
stfd 26,184(3)
stfd 27,192(3)
stfd 28,200(3)
stfd 29,208(3)
stfd 30,216(3)
stfd 31,224(3)
# 4) set return value to 0
li 3, 0
# 5) return