simops.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef SIMOPS_H
  2. #define SIMOPS_H
  3. int OP_380 (void);
  4. int OP_480 (void);
  5. int OP_501 (void);
  6. int OP_700 (void);
  7. int OP_720 (void);
  8. int OP_10720 (void);
  9. int OP_740 (void);
  10. int OP_760 (void);
  11. int OP_10760 (void);
  12. int OP_1C0 (void);
  13. int OP_240 (void);
  14. int OP_600 (void);
  15. int OP_1A0 (void);
  16. int OP_180 (void);
  17. int OP_E0 (void);
  18. int OP_2E0 (void);
  19. int OP_6E0 (void);
  20. int OP_1E0 (void);
  21. int OP_260 (void);
  22. int OP_7E0 (void);
  23. int OP_C0 (void);
  24. int OP_220 (void);
  25. int OP_A0 (void);
  26. int OP_660 (void);
  27. int OP_80 (void);
  28. int OP_160 (void);
  29. int OP_200 (void);
  30. int OP_640 (void);
  31. int OP_2A0 (void);
  32. int OP_A007E0 (void);
  33. int OP_2C0 (void);
  34. int OP_C007E0 (void);
  35. int OP_280 (void);
  36. int OP_8007E0 (void);
  37. int OP_100 (void);
  38. int OP_680 (void);
  39. int OP_140 (void);
  40. int OP_6C0 (void);
  41. int OP_120 (void);
  42. int OP_6A0 (void);
  43. int OP_20 (void);
  44. int OP_7C0 (void);
  45. int OP_47C0 (void);
  46. int OP_87C0 (void);
  47. int OP_C7C0 (void);
  48. int OP_16007E0 (void);
  49. int OP_16087E0 (void);
  50. int OP_12007E0 (void);
  51. int OP_10007E0 (void);
  52. int OP_E607E0 (void);
  53. int OP_22207E0 (void);
  54. int OP_E407E0 (void);
  55. int OP_E207E0 (void);
  56. int OP_E007E0 (void);
  57. int OP_20007E0 (void);
  58. int OP_1C207E0 (void);
  59. int OP_1C007E0 (void);
  60. int OP_18207E0 (void);
  61. int OP_18007E0 (void);
  62. int OP_2C207E0 (void);
  63. int OP_2C007E0 (void);
  64. int OP_28207E0 (void);
  65. int OP_28007E0 (void);
  66. int OP_24207E0 (void);
  67. int OP_24007E0 (void);
  68. int OP_107E0 (void);
  69. int OP_10780 (void);
  70. int OP_1B0780 (void);
  71. int OP_130780 (void);
  72. int OP_B0780 (void);
  73. int OP_30780 (void);
  74. int OP_22007E0 (void);
  75. int OP_307F0 (void);
  76. int OP_107F0 (void);
  77. int OP_307E0 (void);
  78. int v850_float_compare(SIM_DESC sd, int cmp, sim_fpu wop1, sim_fpu wop2, int double_op_p);
  79. /* MEMORY ACCESS */
  80. unsigned32 load_data_mem(SIM_DESC sd, SIM_ADDR addr, int len);
  81. void store_data_mem(SIM_DESC sd, SIM_ADDR addr, int len, unsigned32 data);
  82. unsigned long Add32 (unsigned long a1, unsigned long a2, int * carry);
  83. /* FPU */
  84. /*
  85. FPU: update FPSR flags
  86. invalid, inexact, overflow, underflow
  87. */
  88. extern void check_invalid_snan (SIM_DESC sd, sim_fpu_status, unsigned int);
  89. #define check_cvt_fi(sd, status, double_op_p) \
  90. update_fpsr (sd, status, FPSR_XEV | FPSR_XEI, double_op_p)
  91. #define check_cvt_if(sd, status, double_op_p) \
  92. update_fpsr (sd, status, FPSR_XEI, double_op_p)
  93. #define check_cvt_ff(sd, status, double_op_p) \
  94. update_fpsr (sd, status, FPSR_XEV | FPSR_XEI | FPSR_XEO | FPSR_XEU, double_op_p)
  95. extern void update_fpsr (SIM_DESC sd, sim_fpu_status, unsigned int, unsigned int);
  96. /*
  97. Exception
  98. */
  99. void SignalException (SIM_DESC sd);
  100. void SignalExceptionFPE (SIM_DESC sd, unsigned int double_op_p);
  101. int mpu_load_mem_test (SIM_DESC sd, unsigned int addr, int len, int base_reg);
  102. int mpu_store_mem_test (SIM_DESC sd, unsigned int addr, int len, int base_reg);
  103. void v850_sar (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p);
  104. void v850_shl (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p);
  105. void v850_rotl (SIM_DESC sd, unsigned int, unsigned int, unsigned int *);
  106. void v850_bins (SIM_DESC sd, unsigned int, unsigned int, unsigned int, unsigned int *);
  107. void v850_shr (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p);
  108. void v850_satadd (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p);
  109. void v850_satsub (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p);
  110. void v850_div (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p, unsigned int *op3p);
  111. void v850_divu (SIM_DESC sd, unsigned int op0, unsigned int op1, unsigned int *op2p, unsigned int *op3p);
  112. #endif