target_riscv.cmake 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # SPDX-License-Identifier: Apache-2.0
  2. set(riscv_mabi "lp")
  3. set(riscv_march "rv")
  4. if(CONFIG_64BIT)
  5. string(CONCAT riscv_mabi ${riscv_mabi} "64")
  6. string(CONCAT riscv_march ${riscv_march} "64ima")
  7. list(APPEND TOOLCHAIN_C_FLAGS -mcmodel=medany)
  8. list(APPEND TOOLCHAIN_LD_FLAGS -mcmodel=medany)
  9. else()
  10. string(CONCAT riscv_mabi "i" ${riscv_mabi} "32")
  11. string(CONCAT riscv_march ${riscv_march} "32ima")
  12. endif()
  13. if(CONFIG_FPU)
  14. if(CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION)
  15. if(CONFIG_FLOAT_HARD)
  16. string(CONCAT riscv_mabi ${riscv_mabi} "d")
  17. endif()
  18. string(CONCAT riscv_march ${riscv_march} "fd")
  19. else()
  20. if(CONFIG_FLOAT_HARD)
  21. string(CONCAT riscv_mabi ${riscv_mabi} "f")
  22. endif()
  23. string(CONCAT riscv_march ${riscv_march} "f")
  24. endif()
  25. endif()
  26. if(CONFIG_COMPRESSED_ISA)
  27. string(CONCAT riscv_march ${riscv_march} "c")
  28. endif()
  29. list(APPEND TOOLCHAIN_C_FLAGS -mabi=${riscv_mabi} -march=${riscv_march})
  30. list(APPEND TOOLCHAIN_LD_FLAGS NO_SPLIT -mabi=${riscv_mabi} -march=${riscv_march})