On 10/28/22 03:03, Helge Deller wrote:
The fid instruction (Floating-Point Identify) puts the FPU model and
revision into the Status Register. Since those values shouldn't be 0,
store values there which a PCX-L2 (for 32-bit) or a PCX-W2 (for 64-bit)
would return. Noticed while trying to install MPE/iX.

Signed-off-by: Helge Deller <del...@gmx.de>

---
v2: Add ULL to integer constants, enhanced commit message.

diff --git a/target/hppa/insns.decode b/target/hppa/insns.decode
index c7a7e997f9..3ba5f9885a 100644
--- a/target/hppa/insns.decode
+++ b/target/hppa/insns.decode
@@ -388,10 +388,8 @@ fmpyfadd_d      101110 rm1:5 rm2:5 ... 0 1 ..0 0 0 neg:1 
t:5    ra3=%rc32

  # Floating point class 0

-# FID.  With r = t = 0, which via fcpy puts 0 into fr0.
-# This is machine/revision = 0, which is reserved for simulator.
-fcpy_f          001100 00000 00000 00000 000000 00000   \
-                &fclass01 r=0 t=0
+# FID.  Basically like fcpy with r = t = 0. Puts machine/revision into fr0.
+fid_f           001100 00000 00000 000 00 000000 00000

Need to remove the r = t = 0 comment, because that was for (ab)using trand_fcpy_f to store zero into f0. Now you have a proper trans_fid_f function instead.

Otherwise,
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>


r~

Reply via email to