Browse Source

glibc, newlib: don't save/restore tp on get/setcontext

Thread-local storage shouldn't be affected by these calls.
pull/12/head
Andrew Waterman 11 years ago
parent
commit
c4923f58a8
  1. 1
      glibc/sysdeps/riscv/__longjmp.S
  2. 1
      glibc/sysdeps/riscv/setjmp.S
  3. 1
      glibc/sysdeps/unix/sysv/linux/riscv/getcontext.S
  4. 1
      glibc/sysdeps/unix/sysv/linux/riscv/setcontext.S
  5. 2
      glibc/sysdeps/unix/sysv/linux/riscv/swapcontext.S
  6. 2
      newlib/newlib/libc/machine/riscv/setjmp.S

1
glibc/sysdeps/riscv/__longjmp.S

@ -35,7 +35,6 @@ ENTRY (__longjmp)
REG_L s10,11*SZREG(a0)
REG_L s11,12*SZREG(a0)
REG_L sp, 13*SZREG(a0)
REG_L tp, 14*SZREG(a0)
#ifdef __riscv_hard_float
REG_L a3, 15*SZREG(a0)

1
glibc/sysdeps/riscv/setjmp.S

@ -43,7 +43,6 @@ ENTRY (__sigsetjmp)
REG_S s10,11*SZREG(a0)
REG_S s11,12*SZREG(a0)
REG_S sp, 13*SZREG(a0)
REG_S tp, 14*SZREG(a0)
#ifdef __riscv_hard_float
frsr a3

1
glibc/sysdeps/unix/sysv/linux/riscv/getcontext.S

@ -30,7 +30,6 @@ LEAF (__getcontext)
REG_S ra, MCONTEXT_PC(a0)
REG_S ra, ( 1 * SZREG + MCONTEXT_GREGS)(a0)
REG_S sp, ( 2 * SZREG + MCONTEXT_GREGS)(a0)
REG_S tp, ( 4 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s0, ( 8 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s1, ( 9 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)

1
glibc/sysdeps/unix/sysv/linux/riscv/setcontext.S

@ -65,7 +65,6 @@ LEAF (__setcontext)
REG_L t1, MCONTEXT_PC(t0)
REG_L ra, ( 1 * SZREG + MCONTEXT_GREGS)(t0)
REG_L sp, ( 2 * SZREG + MCONTEXT_GREGS)(t0)
REG_L tp, ( 4 * SZREG + MCONTEXT_GREGS)(t0)
REG_L s0, ( 8 * SZREG + MCONTEXT_GREGS)(t0)
REG_L s1, ( 9 * SZREG + MCONTEXT_GREGS)(t0)
REG_L a0, (10 * SZREG + MCONTEXT_GREGS)(t0)

2
glibc/sysdeps/unix/sysv/linux/riscv/swapcontext.S

@ -31,7 +31,6 @@ LEAF (__swapcontext)
REG_S ra, MCONTEXT_PC(a0)
REG_S ra, ( 1 * SZREG + MCONTEXT_GREGS)(a0)
REG_S sp, ( 2 * SZREG + MCONTEXT_GREGS)(a0)
REG_S tp, ( 4 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s0, ( 8 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s1, ( 9 * SZREG + MCONTEXT_GREGS)(a0)
REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
@ -99,7 +98,6 @@ LEAF (__swapcontext)
REG_L t1, MCONTEXT_PC(t0)
REG_L ra, ( 1 * SZREG + MCONTEXT_GREGS)(t0)
REG_L sp, ( 2 * SZREG + MCONTEXT_GREGS)(t0)
REG_L tp, ( 4 * SZREG + MCONTEXT_GREGS)(t0)
REG_L s0, ( 8 * SZREG + MCONTEXT_GREGS)(t0)
REG_L s1, ( 9 * SZREG + MCONTEXT_GREGS)(t0)
REG_L a0, (10 * SZREG + MCONTEXT_GREGS)(t0)

2
newlib/newlib/libc/machine/riscv/setjmp.S

@ -25,7 +25,6 @@ setjmp:
REG_S s10,11*SZREG(a0)
REG_S s11,12*SZREG(a0)
REG_S sp, 13*SZREG(a0)
REG_S tp, 14*SZREG(a0)
#ifdef __riscv_hard_float
frsr a3
@ -66,7 +65,6 @@ longjmp:
REG_L s10,11*SZREG(a0)
REG_L s11,12*SZREG(a0)
REG_L sp, 13*SZREG(a0)
REG_L tp, 14*SZREG(a0)
#ifdef __riscv_hard_float
REG_L a3, 15*SZREG(a0)

Loading…
Cancel
Save