arch_intrinsics.h 798 B

123456789101112131415161718192021222324252627
  1. /*
  2. * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
  3. * Copyright 2016 Cryptography Research, Inc.
  4. *
  5. * Licensed under the OpenSSL license (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 HEADER_ARCH_32_ARCH_INTRINSICS_H
  13. # define HEADER_ARCH_32_ARCH_INTRINSICS_H
  14. #include "internal/constant_time_locl.h"
  15. # define ARCH_WORD_BITS 32
  16. #define word_is_zero(a) constant_time_is_zero_32(a)
  17. static ossl_inline uint64_t widemul(uint32_t a, uint32_t b)
  18. {
  19. return ((uint64_t)a) * b;
  20. }
  21. #endif /* HEADER_ARCH_32_ARCH_INTRINSICS_H */