Define RAISE_FP_EXCEPTION with a HEX_EVENT_FPTRAP exception.
Signed-off-by: Brian Cain <[email protected]>
---
target/hexagon/arch.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/target/hexagon/arch.c b/target/hexagon/arch.c
index 3c417358e06..5ee87b320b6 100644
--- a/target/hexagon/arch.c
+++ b/target/hexagon/arch.c
@@ -20,6 +20,7 @@
#include "cpu.h"
#include "fma_emu.h"
#include "arch.h"
+#include "internal.h"
#include "macros.h"
#define SF_BIAS 127
@@ -213,10 +214,14 @@ void arch_fpop_start(CPUHexagonState *env)
*/
#define RAISE_FP_EXCEPTION do {} while (0)
#else
- /*
- * To be implemented.
- */
-#define RAISE_FP_EXCEPTION do { g_assert_not_reached(); } while (0)
+#define RAISE_FP_EXCEPTION \
+ do { \
+ CPUState *cs = env_cpu(env); \
+ cs->exception_index = HEX_EVENT_FPTRAP; \
+ env->cause_code = HEX_CAUSE_FPTRAP_CAUSE_BADFLOAT; \
+ do_raise_exception(env, cs->exception_index, \
+ env->gpr[HEX_REG_PC], 0); \
+ } while (0)
#endif
#define SOFTFLOAT_TEST_FLAG(FLAG, MYF, MYE) \
--
2.34.1