From e3783458068d1d402355e7d7186c787521aefc91 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sat, 27 Oct 2018 04:48:31 +0100 Subject: [PATCH] add f128 sv_proc_t redirect --- riscv/sv_insn_redirect.cc | 67 +++++++++++++++++++++++++++++++++++++++ riscv/sv_insn_redirect.h | 14 ++++++++ 2 files changed, 81 insertions(+) diff --git a/riscv/sv_insn_redirect.cc b/riscv/sv_insn_redirect.cc index 4d34c03..24e03c0 100644 --- a/riscv/sv_insn_redirect.cc +++ b/riscv/sv_insn_redirect.cc @@ -833,3 +833,70 @@ bool (sv_proc_t::f32_lt_quiet)( float32_t a, float32_t b ) } +// -------- + +float128_t (sv_proc_t::f128_add)( float128_t a, float128_t b ) +{ + return ::f128_add(a, b); +} + +float128_t (sv_proc_t::f128_sub)( float128_t a, float128_t b ) +{ + return ::f128_sub(a, b); +} + +float128_t (sv_proc_t::f128_mul)( float128_t a, float128_t b ) +{ + return ::f128_mul(a, b); +} + +float128_t (sv_proc_t::f128_mulAdd)( float128_t a, float128_t b , float128_t c) +{ + return ::f128_mulAdd(a, b, c); +} + +float128_t (sv_proc_t::f128_div)( float128_t a, float128_t b ) +{ + return ::f128_div(a, b); +} + +float128_t (sv_proc_t::f128_rem)( float128_t a, float128_t b ) +{ + return ::f128_rem(a, b); +} + +float128_t (sv_proc_t::f128_sqrt)( float128_t a ) +{ + return ::f128_sqrt(a); +} + +bool (sv_proc_t::f128_eq)( float128_t a, float128_t b ) +{ + return ::f128_eq(a, b); +} + +bool (sv_proc_t::f128_le)( float128_t a, float128_t b ) +{ + return ::f128_le(a, b); +} + +bool (sv_proc_t::f128_lt)( float128_t a, float128_t b ) +{ + return ::f128_lt(a, b); +} + +bool (sv_proc_t::f128_eq_signaling)( float128_t a, float128_t b ) +{ + return ::f128_eq_signaling(a, b); +} + +bool (sv_proc_t::f128_le_quiet)( float128_t a, float128_t b ) +{ + return ::f128_le_quiet(a, b); +} + +bool (sv_proc_t::f128_lt_quiet)( float128_t a, float128_t b ) +{ + return ::f128_lt_quiet(a, b); +} + diff --git a/riscv/sv_insn_redirect.h b/riscv/sv_insn_redirect.h index 24d5163..db21918 100644 --- a/riscv/sv_insn_redirect.h +++ b/riscv/sv_insn_redirect.h @@ -241,6 +241,20 @@ public: bool f32_lt_quiet( float32_t, float32_t ); + float128_t f128_add( float128_t, float128_t ); + float128_t f128_sub( float128_t, float128_t ); + float128_t f128_mul( float128_t, float128_t ); + float128_t f128_mulAdd( float128_t, float128_t, float128_t ); + float128_t f128_div( float128_t, float128_t ); + float128_t f128_rem( float128_t, float128_t ); + float128_t f128_sqrt( float128_t ); + bool f128_eq( float128_t, float128_t ); + bool f128_le( float128_t, float128_t ); + bool f128_lt( float128_t, float128_t ); + bool f128_eq_signaling( float128_t, float128_t ); + bool f128_le_quiet( float128_t, float128_t ); + bool f128_lt_quiet( float128_t, float128_t ); + #include "sv_insn_decl.h" }; -- 2.30.2