Module Name: src Committed By: ryo Date: Fri May 15 09:08:10 UTC 2020
Modified Files: src/sys/arch/aarch64/aarch64: cpuswitch.S vectors.S Log Message: use ldp if possible To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/aarch64/aarch64/cpuswitch.S cvs rdiff -u -r1.15 -r1.16 src/sys/arch/aarch64/aarch64/vectors.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/cpuswitch.S diff -u src/sys/arch/aarch64/aarch64/cpuswitch.S:1.18 src/sys/arch/aarch64/aarch64/cpuswitch.S:1.19 --- src/sys/arch/aarch64/aarch64/cpuswitch.S:1.18 Mon Apr 13 06:02:03 2020 +++ src/sys/arch/aarch64/aarch64/cpuswitch.S Fri May 15 09:08:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpuswitch.S,v 1.18 2020/04/13 06:02:03 maxv Exp $ */ +/* $NetBSD: cpuswitch.S,v 1.19 2020/05/15 09:08:10 ryo Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include "opt_ddb.h" #include "opt_kasan.h" -RCSID("$NetBSD: cpuswitch.S,v 1.18 2020/04/13 06:02:03 maxv Exp $") +RCSID("$NetBSD: cpuswitch.S,v 1.19 2020/05/15 09:08:10 ryo Exp $") ARMV8_DEFINE_OPTIONS @@ -85,8 +85,12 @@ ENTRY_NP(cpu_switchto) adrl x4, _C_LABEL(aarch64_pac_enabled) ldr w4, [x4] cbz w4, 1f +#if L_MD_IA_KERN_LO + 8 == L_MD_IA_KERN_HI + ldp x5, x6, [x1, #L_MD_IA_KERN_LO] +#else ldr x5, [x1, #L_MD_IA_KERN_LO] ldr x6, [x1, #L_MD_IA_KERN_HI] +#endif msr APIAKeyLo_EL1, x5 msr APIAKeyHi_EL1, x6 1: @@ -152,8 +156,12 @@ ENTRY_NP(cpu_switchto_softint) adrl x4, _C_LABEL(aarch64_pac_enabled) ldr w4, [x4] cbz w4, 1f +#if L_MD_IA_KERN_LO + 8 == L_MD_IA_KERN_HI + ldp x5, x6, [x0, #L_MD_IA_KERN_LO] +#else ldr x5, [x0, #L_MD_IA_KERN_LO] ldr x6, [x0, #L_MD_IA_KERN_HI] +#endif msr APIAKeyLo_EL1, x5 msr APIAKeyHi_EL1, x6 1: @@ -191,8 +199,12 @@ ENTRY_NP(cpu_switchto_softint) adrl x4, _C_LABEL(aarch64_pac_enabled) ldr w4, [x4] cbz w4, 1f +#if L_MD_IA_KERN_LO + 8 == L_MD_IA_KERN_HI + ldp x5, x6, [x19, #L_MD_IA_KERN_LO] +#else ldr x5, [x19, #L_MD_IA_KERN_LO] ldr x6, [x19, #L_MD_IA_KERN_HI] +#endif msr APIAKeyLo_EL1, x5 msr APIAKeyHi_EL1, x6 1: @@ -373,8 +385,12 @@ ENTRY_NP(el0_trap_exit) adrl x4, _C_LABEL(aarch64_pac_enabled) ldr w4, [x4] cbz w4, 1f +#if L_MD_IA_USER_LO + 8 == L_MD_IA_USER_HI + ldp x5, x6, [x9, #L_MD_IA_USER_LO] +#else ldr x5, [x9, #L_MD_IA_USER_LO] ldr x6, [x9, #L_MD_IA_USER_HI] +#endif msr APIAKeyLo_EL1, x5 msr APIAKeyHi_EL1, x6 1: Index: src/sys/arch/aarch64/aarch64/vectors.S diff -u src/sys/arch/aarch64/aarch64/vectors.S:1.15 src/sys/arch/aarch64/aarch64/vectors.S:1.16 --- src/sys/arch/aarch64/aarch64/vectors.S:1.15 Thu Apr 16 08:59:16 2020 +++ src/sys/arch/aarch64/aarch64/vectors.S Fri May 15 09:08:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: vectors.S,v 1.15 2020/04/16 08:59:16 skrll Exp $ */ +/* $NetBSD: vectors.S,v 1.16 2020/05/15 09:08:10 ryo Exp $ */ #include <aarch64/asm.h> #include "assym.h" @@ -91,8 +91,12 @@ ENTRY_NBTI(\func) adrl x4, _C_LABEL(aarch64_pac_enabled) ldr w4, [x4] cbz w4, 1f +#if L_MD_IA_KERN_LO + 8 == L_MD_IA_KERN_HI + ldp x5, x6, [x1, #L_MD_IA_KERN_LO] +#else ldr x5, [x1, #L_MD_IA_KERN_LO] ldr x6, [x1, #L_MD_IA_KERN_HI] +#endif msr APIAKeyLo_EL1, x5 msr APIAKeyHi_EL1, x6 1: