On 29/10/26, Brian Cain wrote:
> 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
> 

Reviewed-by: Anton Johansson <[email protected]>

Reply via email to