diff options
| author | jsing <> | 2026-05-07 15:50:47 +0000 |
|---|---|---|
| committer | jsing <> | 2026-05-07 15:50:47 +0000 |
| commit | 1b757b3ca51ec9acc27a25eaa755ecb44f25dc40 (patch) | |
| tree | 656427b5c1059febcb616a24336646b0fc500310 /src/lib/libcrypto/crypto_assembly.h | |
| parent | d5995c0b31900e33301c3f83f267bbb2fe2ee113 (diff) | |
| download | openbsd-1b757b3ca51ec9acc27a25eaa755ecb44f25dc40.tar.gz openbsd-1b757b3ca51ec9acc27a25eaa755ecb44f25dc40.tar.bz2 openbsd-1b757b3ca51ec9acc27a25eaa755ecb44f25dc40.zip | |
Use macros for global functions and objects within SHA assembly.
This lets us remove some of the repetitive statements and allows for them
to be adjusted for various platforms.
ok kenjiro@ tb@
Diffstat (limited to 'src/lib/libcrypto/crypto_assembly.h')
| -rw-r--r-- | src/lib/libcrypto/crypto_assembly.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/lib/libcrypto/crypto_assembly.h b/src/lib/libcrypto/crypto_assembly.h index 22102d3fac..e42ed947dd 100644 --- a/src/lib/libcrypto/crypto_assembly.h +++ b/src/lib/libcrypto/crypto_assembly.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: crypto_assembly.h,v 1.4 2026/05/07 15:41:37 jsing Exp $ */ | 1 | /* $OpenBSD: crypto_assembly.h,v 1.5 2026/05/07 15:50:47 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2026 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2026 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -37,6 +37,11 @@ | |||
| 37 | #define CRYPTO_ASSEMBLY_SECTION_TEXT __TEXT,__text | 37 | #define CRYPTO_ASSEMBLY_SECTION_TEXT __TEXT,__text |
| 38 | #define CRYPTO_ASSEMBLY_SECTION_RODATA __DATA,__const | 38 | #define CRYPTO_ASSEMBLY_SECTION_RODATA __DATA,__const |
| 39 | 39 | ||
| 40 | #define CRYPTO_ASSEMBLY_SYMBOL_NAME(name) _name | ||
| 41 | #define CRYPTO_ASSEMBLY_TYPE_FUNCTION(name) | ||
| 42 | #define CRYPTO_ASSEMBLY_TYPE_OBJECT(name) | ||
| 43 | #define CRYPTO_ASSEMBLY_OBJECT_SIZE(name) | ||
| 44 | |||
| 40 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name@PAGE | 45 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name@PAGE |
| 41 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) name@PAGEOFF | 46 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) name@PAGEOFF |
| 42 | 47 | ||
| @@ -44,8 +49,25 @@ | |||
| 44 | #define CRYPTO_ASSEMBLY_SECTION_TEXT .text | 49 | #define CRYPTO_ASSEMBLY_SECTION_TEXT .text |
| 45 | #define CRYPTO_ASSEMBLY_SECTION_RODATA .rodata | 50 | #define CRYPTO_ASSEMBLY_SECTION_RODATA .rodata |
| 46 | 51 | ||
| 52 | #define CRYPTO_ASSEMBLY_SYMBOL_NAME(name) name | ||
| 53 | #define CRYPTO_ASSEMBLY_TYPE_FUNCTION(name) .type name,@function | ||
| 54 | #define CRYPTO_ASSEMBLY_TYPE_OBJECT(name) .type name,@object | ||
| 55 | #define CRYPTO_ASSEMBLY_OBJECT_SIZE(name) .size name,.-name | ||
| 56 | |||
| 47 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name | 57 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name |
| 48 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) :lo12:name | 58 | #define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) :lo12:name |
| 49 | #endif | 59 | #endif |
| 50 | 60 | ||
| 61 | #define CRYPTO_ASSEMBLY_GLOBAL_FUNCTION(name) \ | ||
| 62 | .global CRYPTO_ASSEMBLY_SYMBOL_NAME(name) CRYPTO_ASSEMBLY_SEPARATOR \ | ||
| 63 | CRYPTO_ASSEMBLY_TYPE_FUNCTION(name) CRYPTO_ASSEMBLY_SEPARATOR \ | ||
| 64 | CRYPTO_ASSEMBLY_SYMBOL_NAME(name) | ||
| 65 | |||
| 66 | #define CRYPTO_ASSEMBLY_OBJECT_START(name) \ | ||
| 67 | CRYPTO_ASSEMBLY_TYPE_OBJECT(name) CRYPTO_ASSEMBLY_SEPARATOR \ | ||
| 68 | name | ||
| 69 | |||
| 70 | #define CRYPTO_ASSEMBLY_OBJECT_END(name) \ | ||
| 71 | CRYPTO_ASSEMBLY_OBJECT_SIZE(name) | ||
| 72 | |||
| 51 | #endif | 73 | #endif |
