arch_intrinsics.h 837 B

123456789101112131415161718192021222324252627
  1. /*
  2. * Copyright 2017-2022 The OpenSSL Project Authors. All Rights Reserved.
  3. * Copyright 2016 Cryptography Research, Inc.
  4. *
  5. * Licensed under the Apache License 2.0 (the "License"). You may not use
  6. * this file except in compliance with the License. You can obtain a copy
  7. * in the file LICENSE in the source distribution or at
  8. * https://www.openssl.org/source/license.html
  9. *
  10. * Originally written by Mike Hamburg
  11. */
  12. #ifndef OSSL_CRYPTO_EC_CURVE448_ARCH_64_INTRINSICS_H
  13. # define OSSL_CRYPTO_EC_CURVE448_ARCH_64_INTRINSICS_H
  14. # include "internal/constant_time.h"
  15. # define ARCH_WORD_BITS 64
  16. # define word_is_zero(a) constant_time_is_zero_64(a)
  17. static ossl_inline uint128_t widemul(uint64_t a, uint64_t b)
  18. {
  19. return ((uint128_t) a) * b;
  20. }
  21. #endif /* OSSL_CRYPTO_EC_CURVE448_ARCH_64_INTRINSICS_H */