Module Name: src
Committed By: skrll
Date: Sun May 10 14:05:59 UTC 2020
Modified Files:
src/lib/libc/arch/aarch64: genassym.cf
src/lib/libc/arch/aarch64/gen: _setjmp.S setjmp.S
src/sys/arch/aarch64/include: setjmp.h
Log Message:
Don't futz with tpidr_el0 in {set,long}jmp as it breaks TLS as seen in
qemu
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/arch/aarch64/genassym.cf
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/aarch64/gen/_setjmp.S
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/arch/aarch64/gen/setjmp.S
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/aarch64/include/setjmp.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/arch/aarch64/genassym.cf
diff -u src/lib/libc/arch/aarch64/genassym.cf:1.1 src/lib/libc/arch/aarch64/genassym.cf:1.2
--- src/lib/libc/arch/aarch64/genassym.cf:1.1 Sun Aug 10 05:47:36 2014
+++ src/lib/libc/arch/aarch64/genassym.cf Sun May 10 14:05:59 2020
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.1 2014/08/10 05:47:36 matt Exp $
+# $NetBSD: genassym.cf,v 1.2 2020/05/10 14:05:59 skrll Exp $
#-
# Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -53,7 +53,6 @@ define _JB_X27 sizeof(_BSD_JBSLOT_T_ [_
define _JB_X28 sizeof(_BSD_JBSLOT_T_ [_JB_X29])
define _JB_X29 sizeof(_BSD_JBSLOT_T_ [_JB_X29])
define _JB_X30 sizeof(_BSD_JBSLOT_T_ [_JB_X30])
-define _JB_TPIDR sizeof(_BSD_JBSLOT_T_ [_JB_TPIDR])
define _JB_D8 sizeof(_BSD_JBSLOT_T_ [_JB_D8])
define _JB_D9 sizeof(_BSD_JBSLOT_T_ [_JB_D9])
define _JB_D10 sizeof(_BSD_JBSLOT_T_ [_JB_D10])
Index: src/lib/libc/arch/aarch64/gen/_setjmp.S
diff -u src/lib/libc/arch/aarch64/gen/_setjmp.S:1.3 src/lib/libc/arch/aarch64/gen/_setjmp.S:1.4
--- src/lib/libc/arch/aarch64/gen/_setjmp.S:1.3 Tue Nov 28 13:09:05 2017
+++ src/lib/libc/arch/aarch64/gen/_setjmp.S Sun May 10 14:05:59 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: _setjmp.S,v 1.3 2017/11/28 13:09:05 ryo Exp $ */
+/* $NetBSD: _setjmp.S,v 1.4 2020/05/10 14:05:59 skrll Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -63,9 +63,6 @@ ENTRY(_setjmp)
stp x27, x28, [x0, #_JB_X27]
stp x29, x30, [x0, #_JB_X29]
- mrs x5, tpidr_el0
- str x5, [x0, #_JB_TPIDR]
-
stp d8, d9, [x0, #_JB_D8]
stp d10, d11, [x0, #_JB_D10]
stp d12, d13, [x0, #_JB_D12]
@@ -93,9 +90,6 @@ ENTRY(_longjmp)
ldp x25, x26, [x0, #_JB_X25]
ldp x27, x28, [x0, #_JB_X27]
- ldr x2, [x0, #_JB_TPIDR]
- msr tpidr_el0, x2
-
ldp d8, d9, [x0, #_JB_D8]
ldp d10, d11, [x0, #_JB_D10]
ldp d12, d13, [x0, #_JB_D12]
Index: src/lib/libc/arch/aarch64/gen/setjmp.S
diff -u src/lib/libc/arch/aarch64/gen/setjmp.S:1.2 src/lib/libc/arch/aarch64/gen/setjmp.S:1.3
--- src/lib/libc/arch/aarch64/gen/setjmp.S:1.2 Tue Nov 28 13:09:05 2017
+++ src/lib/libc/arch/aarch64/gen/setjmp.S Sun May 10 14:05:59 2020
@@ -1,4 +1,4 @@
-/*.$NetBSD: setjmp.S,v 1.2 2017/11/28 13:09:05 ryo Exp $.*/
+/*.$NetBSD: setjmp.S,v 1.3 2020/05/10 14:05:59 skrll Exp $.*/
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -61,9 +61,6 @@ ENTRY(__setjmp14)
stp x27, x28, [x0, #_JB_X27]
stp x29, x30, [x0, #_JB_X29]
- mrs x5, tpidr_el0
- str x5, [x0, #_JB_TPIDR]
-
stp d8, d9, [x0, #_JB_D8]
stp d10, d11, [x0, #_JB_D10]
stp d12, d13, [x0, #_JB_D12]
@@ -100,9 +97,6 @@ ENTRY(__longjmp14)
ldp x25, x26, [x0, #_JB_X25]
ldp x27, x28, [x0, #_JB_X27]
- ldr x2, [x0, #_JB_TPIDR]
- msr tpidr_el0, x2
-
ldp d8, d9, [x0, #_JB_D8]
ldp d10, d11, [x0, #_JB_D10]
ldp d12, d13, [x0, #_JB_D12]
Index: src/sys/arch/aarch64/include/setjmp.h
diff -u src/sys/arch/aarch64/include/setjmp.h:1.1 src/sys/arch/aarch64/include/setjmp.h:1.2
--- src/sys/arch/aarch64/include/setjmp.h:1.1 Sun Aug 10 05:47:38 2014
+++ src/sys/arch/aarch64/include/setjmp.h Sun May 10 14:05:59 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: setjmp.h,v 1.1 2014/08/10 05:47:38 matt Exp $ */
+/* $NetBSD: setjmp.h,v 1.2 2020/05/10 14:05:59 skrll Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -50,7 +50,6 @@
#define _JB_X28 11
#define _JB_X29 12
#define _JB_X30 13
-#define _JB_TPIDR 14
#define _JB_D8 16
#define _JB_D9 17
#define _JB_D10 18