qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 4/4] target-m68k: add fscale, fgetman and fgetex


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 4/4] target-m68k: add fscale, fgetman and fgetexp
Date: Mon, 3 Jul 2017 12:26:13 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 07/03/2017 09:23 AM, Laurent Vivier wrote:
+void HELPER(fgetman)(CPUM68KState *env, FPReg *res, FPReg *val)
+{
+    if (floatx80_is_infinity(val->d)) {
+        res->d = floatx80_default_nan(NULL);
+        /* FIXME: set the OPERR bit int he FPSR */
+        return;
+    }
+    if (floatx80_is_zero(val->d) ||
+        floatx80_is_any_nan(val->d)) {
+        *res = *val;
+        return;
+    }
+
+    res->l.upper = (val->l.upper & 0x8000) | 0x3fff;
+    if (floatx80_is_zero_or_denormal(val->d)) {
+        res->l.lower = val->l.lower << 1;

Surely you have to do more than this for denormals? There may be more than one leading zero bit in the mant. Do you actually need to re-normalize? Or does real hardware produce a so-called "unnormal" in this situation?


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]