summaryrefslogtreecommitdiffstats
path: root/crypto/loongarch_arch.h
diff options
context:
space:
mode:
authorzhuchen <zhuchen@loongson.cn>2022-09-29 19:50:52 +0800
committerPauli <pauli@openssl.org>2022-10-12 18:02:12 +1100
commit7f2d6188c7b16ef7a4deeeedb56f42014156b9f8 (patch)
treeae1c24c61748f8b9c70dda5f65467a86e22cffba /crypto/loongarch_arch.h
parente1e93f7a07dfc7a8dddd4ddbb79d1d9bc9760d32 (diff)
Add LoongArch64 cpuid and OPENSSL_loongarchcap_P
Loongarch64 architecture defines 128 bit vector extension lsx and 256 bit vector extension lasx. The cpucfg instruction can be used to obtain whether the CPU has a corresponding extension. This part of code is added to prepare for the subsequent addition of corresponding vector instruction optimization. Signed-off-by: zhuchen <zhuchen@loongson.cn> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19364)
Diffstat (limited to 'crypto/loongarch_arch.h')
-rw-r--r--crypto/loongarch_arch.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/crypto/loongarch_arch.h b/crypto/loongarch_arch.h
new file mode 100644
index 0000000000..53caf53ef3
--- /dev/null
+++ b/crypto/loongarch_arch.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+#ifndef OSSL_CRYPTO_LOONGARCH_ARCH_H
+# define OSSL_CRYPTO_LOONGARCH_ARCH_H
+
+extern unsigned int OPENSSL_loongarchcap_P;
+# define LOONGARCH_CFG2 0x02
+# define LOONGARCH_CFG2_LSX (1<<6)
+# define LOONGARCH_CFG2_LASX (1<<7)
+
+#endif