loongarchcap.c 581 B

12345678910111213141516171819202122
  1. /*
  2. * Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License 2.0 (the "License"). You may not use
  5. * this file except in compliance with the License. You can obtain a copy
  6. * in the file LICENSE in the source distribution or at
  7. * https://www.openssl.org/source/license.html
  8. */
  9. #include "loongarch_arch.h"
  10. unsigned int OPENSSL_loongarchcap_P = 0;
  11. void OPENSSL_cpuid_setup(void)
  12. {
  13. unsigned int reg;
  14. __asm__ volatile(
  15. "cpucfg %0, %1 \n\t"
  16. : "+&r"(reg)
  17. : "r"(LOONGARCH_CFG2)
  18. );
  19. OPENSSL_loongarchcap_P = reg;
  20. }