diff options
author | kettenis <> | 2023-04-05 11:07:40 +0000 |
---|---|---|
committer | kettenis <> | 2023-04-05 11:07:40 +0000 |
commit | 2db0dca691f89b76656d40a20829357632754405 (patch) | |
tree | a7ae7fa64299b8eb0fee493437fc9f165cd0bb52 | |
parent | d575d6cc26a8d40373901b5ec211ee30a7d15b2d (diff) | |
download | openbsd-2db0dca691f89b76656d40a20829357632754405.tar.gz openbsd-2db0dca691f89b76656d40a20829357632754405.tar.bz2 openbsd-2db0dca691f89b76656d40a20829357632754405.zip |
Sprinkle a few BTI instructions into the arm64 assembly files and pass
-mmark-bti-property to indicate those now have BTI support.
ok jsing@, deraadt@
-rw-r--r-- | src/lib/libcrypto/arch/aarch64/Makefile.inc | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/aarch64/arm64cpuid.S | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/libcrypto/arch/aarch64/Makefile.inc b/src/lib/libcrypto/arch/aarch64/Makefile.inc index b953494234..82a1e4c6e5 100644 --- a/src/lib/libcrypto/arch/aarch64/Makefile.inc +++ b/src/lib/libcrypto/arch/aarch64/Makefile.inc | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.4 2023/01/31 06:17:10 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.5 2023/04/05 11:07:40 kettenis Exp $ |
2 | 2 | ||
3 | # aarch64-specific libcrypto build rules | 3 | # aarch64-specific libcrypto build rules |
4 | 4 | ||
@@ -27,4 +27,5 @@ ${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl | |||
27 | .endfor | 27 | .endfor |
28 | 28 | ||
29 | CFLAGS+= -DOPENSSL_CPUID_OBJ | 29 | CFLAGS+= -DOPENSSL_CPUID_OBJ |
30 | AFLAGS+= -mmark-bti-property | ||
30 | SRCS+= arm64cpuid.S arm64cap.c | 31 | SRCS+= arm64cpuid.S arm64cap.c |
diff --git a/src/lib/libcrypto/arch/aarch64/arm64cpuid.S b/src/lib/libcrypto/arch/aarch64/arm64cpuid.S index d267ad6897..96a9c76fb1 100644 --- a/src/lib/libcrypto/arch/aarch64/arm64cpuid.S +++ b/src/lib/libcrypto/arch/aarch64/arm64cpuid.S | |||
@@ -7,6 +7,7 @@ | |||
7 | .globl _armv7_neon_probe | 7 | .globl _armv7_neon_probe |
8 | .type _armv7_neon_probe,%function | 8 | .type _armv7_neon_probe,%function |
9 | _armv7_neon_probe: | 9 | _armv7_neon_probe: |
10 | bti c | ||
10 | orr v15.16b, v15.16b, v15.16b | 11 | orr v15.16b, v15.16b, v15.16b |
11 | ret | 12 | ret |
12 | .size _armv7_neon_probe,.-_armv7_neon_probe | 13 | .size _armv7_neon_probe,.-_armv7_neon_probe |
@@ -14,6 +15,7 @@ _armv7_neon_probe: | |||
14 | .globl _armv8_aes_probe | 15 | .globl _armv8_aes_probe |
15 | .type _armv8_aes_probe,%function | 16 | .type _armv8_aes_probe,%function |
16 | _armv8_aes_probe: | 17 | _armv8_aes_probe: |
18 | bti c | ||
17 | aese v0.16b, v0.16b | 19 | aese v0.16b, v0.16b |
18 | ret | 20 | ret |
19 | .size _armv8_aes_probe,.-_armv8_aes_probe | 21 | .size _armv8_aes_probe,.-_armv8_aes_probe |
@@ -21,6 +23,7 @@ _armv8_aes_probe: | |||
21 | .globl _armv8_sha1_probe | 23 | .globl _armv8_sha1_probe |
22 | .type _armv8_sha1_probe,%function | 24 | .type _armv8_sha1_probe,%function |
23 | _armv8_sha1_probe: | 25 | _armv8_sha1_probe: |
26 | bti c | ||
24 | sha1h s0, s0 | 27 | sha1h s0, s0 |
25 | ret | 28 | ret |
26 | .size _armv8_sha1_probe,.-_armv8_sha1_probe | 29 | .size _armv8_sha1_probe,.-_armv8_sha1_probe |
@@ -28,6 +31,7 @@ _armv8_sha1_probe: | |||
28 | .globl _armv8_sha256_probe | 31 | .globl _armv8_sha256_probe |
29 | .type _armv8_sha256_probe,%function | 32 | .type _armv8_sha256_probe,%function |
30 | _armv8_sha256_probe: | 33 | _armv8_sha256_probe: |
34 | bti c | ||
31 | sha256su0 v0.4s, v0.4s | 35 | sha256su0 v0.4s, v0.4s |
32 | ret | 36 | ret |
33 | .size _armv8_sha256_probe,.-_armv8_sha256_probe | 37 | .size _armv8_sha256_probe,.-_armv8_sha256_probe |
@@ -35,6 +39,7 @@ _armv8_sha256_probe: | |||
35 | .globl _armv8_pmull_probe | 39 | .globl _armv8_pmull_probe |
36 | .type _armv8_pmull_probe,%function | 40 | .type _armv8_pmull_probe,%function |
37 | _armv8_pmull_probe: | 41 | _armv8_pmull_probe: |
42 | bti c | ||
38 | pmull v0.1q, v0.1d, v0.1d | 43 | pmull v0.1q, v0.1d, v0.1d |
39 | ret | 44 | ret |
40 | .size _armv8_pmull_probe,.-_armv8_pmull_probe | 45 | .size _armv8_pmull_probe,.-_armv8_pmull_probe |
@@ -42,6 +47,7 @@ _armv8_pmull_probe: | |||
42 | .globl _armv8_sha512_probe | 47 | .globl _armv8_sha512_probe |
43 | .type _armv8_sha512_probe,%function | 48 | .type _armv8_sha512_probe,%function |
44 | _armv8_sha512_probe: | 49 | _armv8_sha512_probe: |
50 | bti c | ||
45 | sha512su0 v0.2d,v0.2d | 51 | sha512su0 v0.2d,v0.2d |
46 | ret | 52 | ret |
47 | .size _armv8_sha512_probe,.-_armv8_sha512_probe | 53 | .size _armv8_sha512_probe,.-_armv8_sha512_probe |