On 10/25/22 04:01, Philippe Mathieu-Daudé wrote:
On 21/10/22 09:30, Richard Henderson wrote:
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  target/s390x/helper.h          | 32 ++++++-------
  target/s390x/tcg/fpu_helper.c  | 88 ++++++++++++++--------------------
  target/s390x/tcg/translate.c   | 76 ++++++++++++++++++++---------
  target/s390x/tcg/insn-data.def | 30 ++++++------
  4 files changed, 121 insertions(+), 105 deletions(-)

diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index d1ffbb8710..8023bbab2f 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -305,6 +305,18 @@ static TCGv_i64 load_freg32_i64(int reg)
      return r;
  }
+static TCGv_i128 load_freg_128(int reg)
+{
+    TCGv_i64 h = load_freg(reg);
+    TCGv_i64 l = load_freg(reg + 2);
+    TCGv_i128 r = tcg_temp_new_i128();

Maybe rename as load_freg_new_128() to make emphasis on the returned
TCGv need to be freed?

It's no different from the other load_freg* functions just above. As with those, the result is assigned to one of the DisasOps slots, and all of those slots are freed at the end of each instruction.

r~

Reply via email to