cpuport.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2018-10-03 Bernard The first version
  9. */
  10. #ifndef CPUPORT_H__
  11. #define CPUPORT_H__
  12. #include <rtconfig.h>
  13. /* Preprocessor Definition */
  14. #if defined(__riscv_flen) && __riscv_flen == 32
  15. #define ARCH_RISCV_FPU
  16. #define ARCH_RISCV_FPU_S
  17. #endif
  18. #if defined(__riscv_flen) && __riscv_flen == 64
  19. #define ARCH_RISCV_FPU
  20. #define ARCH_RISCV_FPU_D
  21. #endif
  22. /* bytes of register width */
  23. #ifdef ARCH_CPU_64BIT
  24. #define STORE sd
  25. #define LOAD ld
  26. #define REGBYTES 8
  27. #else
  28. #define STORE sw
  29. #define LOAD lw
  30. #define REGBYTES 4
  31. #endif
  32. /* Preprocessor Definition */
  33. #ifdef ARCH_RISCV_FPU
  34. #ifdef ARCH_RISCV_FPU_D
  35. #define FSTORE fsd
  36. #define FLOAD fld
  37. #define FREGBYTES 8
  38. #define rv_floatreg_t rt_int64_t
  39. #endif
  40. #ifdef ARCH_RISCV_FPU_S
  41. #define FSTORE fsw
  42. #define FLOAD flw
  43. #define FREGBYTES 4
  44. #define rv_floatreg_t rt_int32_t
  45. #endif
  46. #endif
  47. #endif