nios2-opts.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /* Definitions for option handling for Nios II.
  2. Copyright (C) 2013-2015 Free Software Foundation, Inc.
  3. This file is part of GCC.
  4. GCC is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 3, or (at your option)
  7. any later version.
  8. GCC is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with GCC; see the file COPYING3. If not see
  14. <http://www.gnu.org/licenses/>. */
  15. #ifndef NIOS2_OPTS_H
  16. #define NIOS2_OPTS_H
  17. /* Enumerate the possible -mgpopt choices. */
  18. enum nios2_gpopt_type
  19. {
  20. gpopt_unspecified = -1,
  21. gpopt_none,
  22. gpopt_local,
  23. gpopt_global,
  24. gpopt_data,
  25. gpopt_all
  26. };
  27. /* Enumeration of all FPU insn codes. */
  28. #define N2FPU_ALL_CODES \
  29. N2FPU_CODE(fadds) N2FPU_CODE(fsubs) N2FPU_CODE(fmuls) N2FPU_CODE(fdivs) \
  30. N2FPU_CODE(fmins) N2FPU_CODE(fmaxs) \
  31. N2FPU_CODE(fnegs) N2FPU_CODE(fabss) N2FPU_CODE(fsqrts) \
  32. N2FPU_CODE(fsins) N2FPU_CODE(fcoss) N2FPU_CODE(ftans) N2FPU_CODE(fatans) \
  33. N2FPU_CODE(fexps) N2FPU_CODE(flogs) \
  34. N2FPU_CODE(fcmpeqs) N2FPU_CODE(fcmpnes) \
  35. N2FPU_CODE(fcmplts) N2FPU_CODE(fcmples) \
  36. N2FPU_CODE(fcmpgts) N2FPU_CODE(fcmpges) \
  37. \
  38. N2FPU_CODE(faddd) N2FPU_CODE(fsubd) N2FPU_CODE(fmuld) N2FPU_CODE(fdivd) \
  39. N2FPU_CODE(fmind) N2FPU_CODE(fmaxd) \
  40. N2FPU_CODE(fnegd) N2FPU_CODE(fabsd) N2FPU_CODE(fsqrtd) \
  41. N2FPU_CODE(fsind) N2FPU_CODE(fcosd) N2FPU_CODE(ftand) N2FPU_CODE(fatand) \
  42. N2FPU_CODE(fexpd) N2FPU_CODE(flogd) \
  43. N2FPU_CODE(fcmpeqd) N2FPU_CODE(fcmpned) \
  44. N2FPU_CODE(fcmpltd) N2FPU_CODE(fcmpled) \
  45. N2FPU_CODE(fcmpgtd) N2FPU_CODE(fcmpged) \
  46. \
  47. N2FPU_CODE(floatis) N2FPU_CODE(floatus) \
  48. N2FPU_CODE(floatid) N2FPU_CODE(floatud) \
  49. N2FPU_CODE(round) N2FPU_CODE(fixsi) N2FPU_CODE(fixsu) \
  50. N2FPU_CODE(fixdi) N2FPU_CODE(fixdu) \
  51. N2FPU_CODE(fextsd) N2FPU_CODE(ftruncds) \
  52. \
  53. N2FPU_CODE(fwrx) N2FPU_CODE(fwry) \
  54. N2FPU_CODE(frdxlo) N2FPU_CODE(frdxhi) N2FPU_CODE(frdy)
  55. enum n2fpu_code {
  56. #define N2FPU_CODE(name) n2fpu_ ## name,
  57. N2FPU_ALL_CODES
  58. #undef N2FPU_CODE
  59. n2fpu_code_num
  60. };
  61. /* An enumeration to indicate the custom code status; if values within 0--255
  62. are registered to an FPU insn, or custom insn. */
  63. enum nios2_ccs_code
  64. {
  65. CCS_UNUSED,
  66. CCS_FPU,
  67. CCS_BUILTIN_CALL
  68. };
  69. #endif