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

Reply via email to